protected virtual void LoadManualSkillActivation() { DicManualSkillTarget.Clear(); foreach (KeyValuePair <string, ManualSkillTarget> ActiveManualSkill in ManualSkillTarget.LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll"))) { DicManualSkillTarget.Add(ActiveManualSkill.Key, ActiveManualSkill.Value); } foreach (KeyValuePair <string, ManualSkillTarget> ActiveManualSkill in ManualSkillTarget.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Battle Map", "*.dll"))) { DicManualSkillTarget.Add(ActiveManualSkill.Key, ActiveManualSkill.Value); } List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, ManualSkillTarget> ActiveManualSkill in ManualSkillTarget.LoadFromAssembly(ActiveAssembly)) { DicManualSkillTarget.Add(ActiveManualSkill.Key, ActiveManualSkill.Value); } } ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Battle Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, ManualSkillTarget> ActiveManualSkill in ManualSkillTarget.LoadFromAssembly(ActiveAssembly, this)) { DicManualSkillTarget.Add(ActiveManualSkill.Key, ActiveManualSkill.Value); } } }
protected virtual void LoadUnits() { foreach (KeyValuePair <string, Unit> ActiveUnit in Unit.LoadFromAssemblyFiles(Directory.GetFiles("Units", "*.dll"))) { DicUnitType.Add(ActiveUnit.Key, ActiveUnit.Value); } var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Units", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in RoslynWrapper.GetCompiledAssembliesFromFolder("Units", "*.csx", SearchOption.TopDirectoryOnly)) { foreach (KeyValuePair <string, Unit> ActiveUnit in Unit.LoadFromAssembly(ActiveAssembly)) { DicUnitType.Add(ActiveUnit.Key, ActiveUnit.Value); } } foreach (KeyValuePair <string, Unit> ActiveUnit in Unit.LoadFromAssemblyFiles(Directory.GetFiles("Units/Battle Map", "*.dll"), this)) { DicUnitType.Add(ActiveUnit.Key, ActiveUnit.Value); } foreach (Assembly ActiveAssembly in RoslynWrapper.GetCompiledAssembliesFromFolder("Units/Battle Map", " *.csx", SearchOption.TopDirectoryOnly)) { foreach (KeyValuePair <string, Unit> ActiveUnit in Unit.LoadFromAssembly(ActiveAssembly, this)) { DicUnitType.Add(ActiveUnit.Key, ActiveUnit.Value); } } }
public virtual void LoadAutomaticSkillActivation() { DicAutomaticSkillTarget.Clear(); foreach (KeyValuePair <string, AutomaticSkillTargetType> ActiveAutomaticSkill in AutomaticSkillTargetType.LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll"), typeof(AutomaticSkillTargetType))) { DicAutomaticSkillTarget.Add(ActiveAutomaticSkill.Key, ActiveAutomaticSkill.Value); } foreach (KeyValuePair <string, AutomaticSkillTargetType> ActiveAutomaticSkill in AutomaticSkillTargetType.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Battle Map", "*.dll"), typeof(AutomaticSkillTargetType), GlobalBattleContext)) { DicAutomaticSkillTarget.Add(ActiveAutomaticSkill.Key, ActiveAutomaticSkill.Value); } List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, AutomaticSkillTargetType> ActiveAutomaticSkill in AutomaticSkillTargetType.LoadFromAssembly(ActiveAssembly, typeof(AutomaticSkillTargetType))) { DicAutomaticSkillTarget.Add(ActiveAutomaticSkill.Key, ActiveAutomaticSkill.Value); } } ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Battle Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, AutomaticSkillTargetType> ActiveAutomaticSkill in AutomaticSkillTargetType.LoadFromAssembly(ActiveAssembly, typeof(AutomaticSkillTargetType), GlobalBattleContext)) { DicAutomaticSkillTarget.Add(ActiveAutomaticSkill.Key, ActiveAutomaticSkill.Value); } } }
public virtual void LoadEffects() { foreach (KeyValuePair <string, BaseEffect> ActiveEffect in BaseEffect.LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll"), typeof(SkillEffect), new UnitEffectParams(GlobalBattleContext))) { DicEffect.Add(ActiveEffect.Key, ActiveEffect.Value); } foreach (KeyValuePair <string, BaseEffect> ActiveEffect in BaseEffect.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Battle Map", "*.dll"), typeof(SkillEffect), new UnitEffectParams(GlobalBattleContext))) { DicEffect.Add(ActiveEffect.Key, ActiveEffect.Value); } List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, BaseEffect> ActiveEffect in BaseEffect.LoadFromAssembly(ActiveAssembly, typeof(SkillEffect), new UnitEffectParams(GlobalBattleContext))) { DicEffect.Add(ActiveEffect.Key, ActiveEffect.Value); } } ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Battle Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, BaseEffect> ActiveEffect in BaseEffect.LoadFromAssembly(ActiveAssembly, typeof(SkillEffect), new UnitEffectParams(GlobalBattleContext))) { DicEffect.Add(ActiveEffect.Key, ActiveEffect.Value); } } }
public override void LoadAutomaticSkillActivation() { base.LoadAutomaticSkillActivation(); AutomaticSkillTargetType.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Deathmatch Map", "*.dll"), typeof(AutomaticSkillTargetType), GlobalDeathmatchContext); var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Deathmatch Map", " *.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { AutomaticSkillTargetType.LoadFromAssembly(ActiveAssembly, typeof(AutomaticSkillTargetType), GlobalDeathmatchContext); } }
public static void LoadAllRequirements() { DicRequirement.Clear(); LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll", SearchOption.AllDirectories), typeof(BaseSkillRequirement)); var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.AllDirectories); foreach (Assembly ActiveAssembly in ListAssembly) { LoadFromAssembly(ActiveAssembly, typeof(BaseSkillRequirement)); } }
protected override void LoadManualSkillActivation() { base.LoadManualSkillActivation(); ManualSkillTarget.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Deathmatch Map", "*.dll"), GlobalDeathmatchContext); var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Deathmatch Map", " *.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { ManualSkillTarget.LoadFromAssembly(ActiveAssembly, GlobalDeathmatchContext); } }
public static Dictionary <string, AutomaticSkillTargetType> LoadAllTargetTypes() { Dictionary <string, AutomaticSkillTargetType> DicTargetType = LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll", SearchOption.AllDirectories), typeof(AutomaticSkillTargetType)); List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.AllDirectories); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, AutomaticSkillTargetType> ActiveRequirement in LoadFromAssembly(ActiveAssembly, typeof(AutomaticSkillTargetType))) { DicTargetType.Add(ActiveRequirement.Key, ActiveRequirement.Value); } } return(DicTargetType); }
public static Dictionary <string, BaseSkillRequirement> LoadAllRequirements() { Dictionary <string, BaseSkillRequirement> DicRequirement = LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll", SearchOption.AllDirectories), typeof(BaseSkillRequirement)); var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.AllDirectories); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in LoadFromAssembly(ActiveAssembly, typeof(BaseSkillRequirement))) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } } return(DicRequirement); }
private void LoadSkillRequirements() { DicRequirement.Add(BaseSkillRequirement.OnCreatedRequirementName, new OnCreatedRequirement()); Dictionary <string, BaseSkillRequirement> DicRequirementCore = BaseSkillRequirement.LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll"), typeof(UnitSkillRequirement), GlobalBattleContext); foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in DicRequirementCore) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } Dictionary <string, BaseSkillRequirement> DicRequirementBattleMap = BaseSkillRequirement.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Battle Map", "*.dll"), typeof(UnitSkillRequirement), GlobalBattleContext); foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in DicRequirementBattleMap) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { Dictionary <string, BaseSkillRequirement> DicRequirementCoreAssembly = BaseSkillRequirement.LoadFromAssembly(ActiveAssembly, typeof(UnitSkillRequirement), GlobalBattleContext); foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in DicRequirementCoreAssembly) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } } ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Battle Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { Dictionary <string, BaseSkillRequirement> DicRequirementBattleMapAssembly = BaseSkillRequirement.LoadFromAssembly(ActiveAssembly, typeof(UnitSkillRequirement), GlobalBattleContext); foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in DicRequirementBattleMapAssembly) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } } foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in BaseSkillRequirement.LoadAllRequirements()) { if (!DicRequirement.ContainsKey(ActiveRequirement.Key)) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } } }
protected virtual void LoadManualSkillActivation() { ManualSkillTarget.DicManualSkillTarget.Clear(); ManualSkillTarget.LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll")); ManualSkillTarget.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Battle Map", "*.dll")); var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { ManualSkillTarget.LoadFromAssembly(ActiveAssembly); } ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Battle Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { ManualSkillTarget.LoadFromAssembly(ActiveAssembly, this); } }
public virtual void LoadAutomaticSkillActivation() { AutomaticSkillTargetType.DicTargetType.Clear(); AutomaticSkillTargetType.LoadFromAssemblyFiles(Directory.GetFiles("Effects", "*.dll"), typeof(AutomaticSkillTargetType)); AutomaticSkillTargetType.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Battle Map", "*.dll"), typeof(AutomaticSkillTargetType), GlobalBattleContext); var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { AutomaticSkillTargetType.LoadFromAssembly(ActiveAssembly, typeof(AutomaticSkillTargetType)); } ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Battle Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { AutomaticSkillTargetType.LoadFromAssembly(ActiveAssembly, typeof(AutomaticSkillTargetType), GlobalBattleContext); } }
protected override void LoadManualSkillActivation() { base.LoadManualSkillActivation(); foreach (KeyValuePair <string, ManualSkillTarget> ActiveManualSkill in ManualSkillTarget.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Deathmatch Map", "*.dll"), GlobalDeathmatchContext)) { DicManualSkillTarget.Add(ActiveManualSkill.Key, ActiveManualSkill.Value); } List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Deathmatch Map", " *.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, ManualSkillTarget> ActiveManualSkill in ManualSkillTarget.LoadFromAssembly(ActiveAssembly, GlobalDeathmatchContext)) { DicManualSkillTarget.Add(ActiveManualSkill.Key, ActiveManualSkill.Value); } } }
public override void LoadEffects() { base.LoadEffects(); foreach (KeyValuePair <string, BaseEffect> ActiveEffect in BaseEffect.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Deathmatch Map", "*.dll"), typeof(DeathmatchEffect), new DeathmatchParams(GlobalDeathmatchContext))) { DicEffect.Add(ActiveEffect.Key, ActiveEffect.Value); } List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Deathmatch Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, BaseEffect> ActiveEffect in BaseEffect.LoadFromAssembly(ActiveAssembly, typeof(DeathmatchEffect), new DeathmatchParams(GlobalDeathmatchContext))) { DicEffect.Add(ActiveEffect.Key, ActiveEffect.Value); } } }
public static Dictionary <string, Unit> LoadAllUnits() { Dictionary <string, Unit> DicUnitType = new Dictionary <string, Unit>(); foreach (KeyValuePair <string, Unit> ActiveUnit in LoadFromAssemblyFiles(Directory.GetFiles("Units", "*.dll", SearchOption.AllDirectories))) { DicUnitType.Add(ActiveUnit.Key, ActiveUnit.Value); } List <Assembly> ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Units", "*.csx", SearchOption.AllDirectories); foreach (Assembly ActiveAssembly in ListAssembly) { foreach (KeyValuePair <string, Unit> ActiveUnit in LoadFromAssembly(ActiveAssembly, typeof(Unit))) { DicUnitType.Add(ActiveUnit.Key, ActiveUnit.Value); } } return(DicUnitType); }
public override void LoadSkillRequirements() { base.LoadSkillRequirements(); Dictionary <string, BaseSkillRequirement> DicRequirementCore = BaseSkillRequirement.LoadFromAssemblyFiles(Directory.GetFiles("Effects/Deathmatch Map", "*.dll"), typeof(UnitSkillRequirement), GlobalDeathmatchContext); foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in DicRequirementCore) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } var ListAssembly = RoslynWrapper.GetCompiledAssembliesFromFolder("Effects/Deathmatch Map", "*.csx", SearchOption.TopDirectoryOnly); foreach (Assembly ActiveAssembly in ListAssembly) { Dictionary <string, BaseSkillRequirement> DicRequirementCoreAssembly = BaseSkillRequirement.LoadFromAssembly(ActiveAssembly, typeof(UnitSkillRequirement), GlobalDeathmatchContext); foreach (KeyValuePair <string, BaseSkillRequirement> ActiveRequirement in DicRequirementCoreAssembly) { DicRequirement.Add(ActiveRequirement.Key, ActiveRequirement.Value); } } }
public static void Execute() { if (_initialized) throw new InvalidOperationException("Compilador só pode ser executado no Pre-Start!"); _initialized = true; //plugin loader PluginLoaderEntryPoint.Initialize(); if (BootstrapperSection.Instance.Kompiler.ForceRecompilation) { //se forçar a recompilação, remove o assembly existente. KompilerDbService.RemoveExistingCompiledAssemblyFromDb(); } AddReferences(PluginStorage.GetAssemblies().ToArray()); byte[] buffer = new byte[0]; string msg; try { //todo: usar depdendency injection IKompiler kompiler; if (BootstrapperSection.Instance.Kompiler.Roslyn) { kompiler = new RoslynWrapper(); } else { kompiler = new CodeDomWrapper(); } if (BootstrapperSection.Instance.Kompiler.LoadFromDb) { Trace.TraceInformation("Compiling from DB..."); var source = KompilerDbService.LoadSourceCodeFromDb(); msg = kompiler.CompileFromSource(source, out buffer); } else { var localRootFolder = BootstrapperSection.Instance.DumpToLocal.Folder; Trace.TraceInformation("Compiling from Local File System: {0}", localRootFolder); msg = kompiler.CompileFromFolder(localRootFolder, out buffer); } } catch (Exception ex) { msg = ex.Message; Trace.TraceInformation("Erro durante a compilação do projeto no banco de dados. \r\n" + ex.Message); } if (string.IsNullOrWhiteSpace(msg) && buffer.Length > 0) { Trace.TraceInformation("[Kompiler]: DB Compilation Result: SUCCESS"); if (!BootstrapperSection.Instance.Kompiler.ForceRecompilation) { //só salva no banco se compilação forçada for False KompilerDbService.SaveCompiledCustomAssembly(buffer); } PluginLoaderEntryPoint.SaveAndLoadAssembly(CompiledAssemblyName + ".dll", buffer); } else { Trace.TraceInformation("[Kompiler]: DB Compilation Result: Bytes:{0}, Msg:{1}", buffer.Length, msg); } }