public BattleManager(IConfigurationFactory factory, IBattleGroup group)
 {
     _events = factory.GetEvents();
     _msgCollector = ServiceLocator.GetServiceLocator().GetService<IMsgCollector>();
     _group = group;
     _args = new BattleEventArgs(group);
     //建立戰鬥程序
     InitailBattleProcess();
 }
        public ConfigurationFactory()
        {
            DragonQuestEngineConfigurationSection config = ConfigurationManager.GetSection("dragonQuestEngine") as DragonQuestEngineConfigurationSection;

            if (config != null)
            {
                events = new BattleEvents();

                foreach (ProviderSettings moduleElement in config.Modules)
                {
                    IBattleState state = Activator.CreateInstance(Type.GetType(moduleElement.Type)) as IBattleState;
                    state.Initail(events);
                }
            }
        }
 public abstract void Initail(BattleEvents events);
 public override void Initail(BattleEvents events)
 {
     events.DropItemState += Execute;
 }
 public override void Initail(BattleEvents events)
 {
     events.CharactorVictoryState += Execute;
 }
 public override void Initail(BattleEvents events)
 {
     events.MonsterDieState += Execute;
 }
 public override void Initail(BattleEvents events)
 {
     events.RaiseExpState += Execute;
 }