public TranslatedAlbumContract(Album album) : base(album, ContentLanguagePreference.Default) { TranslatedArtistString = TranslatedStringWithDefault.Create(n => album.ArtistString[n]); var names = album.Names.Select(n => new LocalizedStringWithId(n.Value, n.Language)).ToArray(); Names = new NameManager<LocalizedStringWithId> { Names = names, SortNames = new TranslatedString(album.Names.SortNames) }; }
private static void AddNewDisable(Ability item) { MyAbilities.OffensiveAbilities.Add(NameManager.Name(item) + "disable", item); if (!Disables.DisablesTogglerCreated) { Disables.DisablesTogglerCreated = true; MainMenu.Menu.AddItem( new MenuItem("disablesToggler", "Disables:").SetValue( new AbilityToggler(new Dictionary <string, bool>()))); MainMenu.Menu.Item("disablesToggler").GetValue <AbilityToggler>().Add(NameManager.Name(item)); MainMenu.AbilitiesMenu.AddSubMenu(Disables.DisablesMenu); } else { MainMenu.Menu.Item("disablesToggler").GetValue <AbilityToggler>().Add(NameManager.Name(item)); } var menu = DisableMenu.Create(NameManager.Name(item), item); Disables.DisablesMenuDictionary.Add(NameManager.Name(item), menu); Disables.DisablesMenu.AddSubMenu(menu); }
public NullableType GetNullable(CType pUnderlyingType) { if (pUnderlyingType is NullableType nt) { Debug.Fail("Attempt to make nullable of nullable"); return(nt); } NullableType pNullableType = _typeTable.LookupNullable(pUnderlyingType); if (pNullableType == null) { Name pName = NameManager.GetPredefinedName(PredefinedName.PN_NUB); pNullableType = _typeFactory.CreateNullable(pName, pUnderlyingType, _BSymmgr, this); pNullableType.InitFromParent(); _typeTable.InsertNullable(pUnderlyingType, pNullableType); } return(pNullableType); }
public PointerType GetPointer(CType baseType) { PointerType pPointer = _typeTable.LookupPointer(baseType); if (pPointer == null) { // No existing type. Create a new one. Name namePtr = NameManager.GetPredefinedName(PredefinedName.PN_PTR); pPointer = _typeFactory.CreatePointer(namePtr, baseType); pPointer.InitFromParent(); _typeTable.InsertPointer(baseType, pPointer); } else { Debug.Assert(pPointer.HasErrors() == baseType.HasErrors()); } Debug.Assert(pPointer.GetReferentType() == baseType); return(pPointer); }
public ParameterModifierType GetParameterModifier(CType paramType, bool isOut) { Name name = NameManager.GetPredefinedName(isOut ? PredefinedName.PN_OUTPARAM : PredefinedName.PN_REFPARAM); ParameterModifierType pParamModifier = _typeTable.LookupParameterModifier(name, paramType); if (pParamModifier == null) { // No existing parammod symbol. Create a new one. pParamModifier = _typeFactory.CreateParameterModifier(name, paramType); pParamModifier.isOut = isOut; pParamModifier.InitFromParent(); _typeTable.InsertParameterModifier(name, paramType, pParamModifier); } else { Debug.Assert(pParamModifier.HasErrors() == paramType.HasErrors()); } Debug.Assert(pParamModifier.GetParameterType() == paramType); return(pParamModifier); }
public void Draw() { gameGraphic.Draw(state); switch (state.gameState) { case GameState.LOGO: break; case GameState.MENU: break; case GameState.PLAYING: songPlayer.Draw(); break; case GameState.EDITING: songPlayer.Draw(); break; case GameState.NAME: NameManager.Draw(); break; case GameState.CREDITS: Credits.Draw(); break; case GameState.CONTROL: break; case GameState.MORE: break; default: break; } }
static void Main(string[] args) { ILogger _logger = new ConsoleLogger(); try { if (args.Length == 2 && args[0].ToLower() == "name-sorter" && args[1].ToLower() == "./unsorted-names-list.txt") { string fileSource = Path.GetFileName(args[1]); INameManager nameManager = new NameManager(); nameManager.SortAllNames(fileSource); } else { Console.WriteLine("please provide a valid input"); } } catch (Exception ex) { _logger.Log(ex.Message); } Console.ReadLine(); }
public static void UpdateHeroes() { var list = Ensage.Common.Objects.Heroes.GetByTeam(AbilityMain.Me.Team); var herolist = new List <Hero>(Heroes); foreach (var hero in list.Where(x => x.IsValid && !x.IsIllusion && x.IsVisible)) { var name = NameManager.Name(hero); var spells = hero.Spellbook.Spells.ToList(); if (!herolist.Contains(hero)) { // if (name == "npc_dota_hero_ogre_magi") // { // Game.PrintMessage( // "[ABILITY#]: SpellOverlay is temporary disabled for OgreMagi due to Ensage.Core issues", // MessageType.ChatMessage); // } Heroes.Add(hero); } // if (name == "npc_dota_hero_ogre_magi") // { // continue; // } var abilitylist = spells.Where(x => x.AbilityType != AbilityType.Attribute && x.AbilityType != AbilityType.Hidden) .ToList(); if (AbilityDictionary.ContainsKey(name)) { AbilityDictionary[name] = abilitylist; continue; } AbilityDictionary.Add(name, abilitylist); } }
public static void Drawing_OnDraw(EventArgs args) { if (!Game.IsInGame || !allies.Any() || !enemies.Any() || !IncomingDamages.Any() || AbilityMain.Me == null || !AbilityMain.Me.IsValid || !MainMenu.GankDamageMenu.Item("enableGankDamage").GetValue <bool>()) { return; } if (MainMenu.GankDamageMenu.Item("enableGankDamageAllies").GetValue <bool>()) { foreach (var ally in allies.Where(x => x != null && IncomingDamages.ContainsKey(NameManager.Name(x)))) { var health = ally.Health; var maxHealth = ally.MaximumHealth; var allyName = NameManager.Name(ally); var hpleft = Math.Max(health - IncomingDamages[allyName], 0); var hpperc = hpleft / maxHealth; var dmgperc = Math.Min(IncomingDamages[allyName], health) / maxHealth; Vector2 hbarpos; HpBar.HpBarPositionDictionary.TryGetValue(allyName, out hbarpos); if (hbarpos.X + 20 > HUDInfo.ScreenSizeX() || hbarpos.X - 20 < 0 || hbarpos.Y + 100 > HUDInfo.ScreenSizeY() || hbarpos.Y - 30 < 0) { continue; } var hpvarx = HpBar.SizeX; var hpbary = HpBar.SizeY; var position = hbarpos + new Vector2(hpvarx * hpperc, 0); Drawing.DrawRect( position, new Vector2(hpvarx * dmgperc, (float)(hpbary * 0.4)), (hpleft > 0) ? new Color(190, 150, 130, 100) : new Color(225, 70, 70, 200)); Drawing.DrawRect(position, new Vector2(hpvarx * dmgperc, (float)(hpbary * 0.4)), Color.Black, true); } } if (!MainMenu.GankDamageMenu.Item("enableGankDamageEnemies").GetValue <bool>()) { return; } foreach (var enemy in enemies.Where(x => x != null && IncomingDamages.ContainsKey(NameManager.Name(x)))) { var health = enemy.Health; var maxHealth = enemy.MaximumHealth; var enemyName = NameManager.Name(enemy); var hpleft = Math.Max(health - IncomingDamages[enemyName], 0); var hpperc = hpleft / maxHealth; var dmgperc = Math.Min(IncomingDamages[enemyName], health) / maxHealth; Vector2 hbarpos; HpBar.HpBarPositionDictionary.TryGetValue(enemyName, out hbarpos); if (hbarpos.X + 20 > HUDInfo.ScreenSizeX() || hbarpos.X - 20 < 0 || hbarpos.Y + 100 > HUDInfo.ScreenSizeY() || hbarpos.Y - 30 < 0) { continue; } var hpvarx = HpBar.SizeX; var hpbary = HpBar.SizeY; var position = hbarpos + new Vector2(hpvarx * hpperc, 0); Drawing.DrawRect( position, new Vector2(hpvarx * dmgperc, (float)(hpbary * 0.4)), (hpleft > 0) ? new Color(150, 225, 150, 80) : new Color(70, 225, 150, 225)); Drawing.DrawRect(position, new Vector2(hpvarx * dmgperc, (float)(hpbary * 0.4)), Color.Black, true); } }
public SymFactory( SYMTBL symtable, NameManager namemgr) : base(symtable, namemgr) { }
public async Task <object> SelectPersonnelWithCurriculum(string curri_id) { DBConnector d = new DBConnector(); if (!d.SQLConnect()) { return(WebApiApplication.CONNECTDBERRSTRING); } List <User_curriculum_with_brief_detail> result = new List <User_curriculum_with_brief_detail>(); d.iCommand.CommandText = GetSelectWithCurriculumCommand(curri_id); try { System.Data.Common.DbDataReader res = await d.iCommand.ExecuteReaderAsync(); if (res.HasRows) { DataTable data = new DataTable(); data.Load(res); foreach (DataRow item in data.Rows) { string usrtype = item.ItemArray[data.Columns[User_type.FieldName.USER_TYPE_NAME].Ordinal].ToString(); if (usrtype == "อาจารย์") { result.Add(new User_curriculum_with_brief_detail { user_id = Convert.ToInt32(item.ItemArray[data.Columns[USER_ID].Ordinal]), t_name = NameManager.GatherPreName(item.ItemArray[data.Columns[Teacher.FieldName.T_PRENAME].Ordinal].ToString()) + item.ItemArray[data.Columns[Teacher.FieldName.T_NAME].Ordinal].ToString(), curri_id = item.ItemArray[data.Columns[Cu_curriculum.FieldName.CURRI_ID].Ordinal].ToString(), file_name_pic = MiscUtils.GatherProfilePicturePath(item.ItemArray[data.Columns[User_list.FieldName.FILE_NAME_PIC].Ordinal].ToString()), type = usrtype }); } else { result.Add(new User_curriculum_with_brief_detail { user_id = Convert.ToInt32(item.ItemArray[data.Columns[USER_ID].Ordinal]), t_name = item.ItemArray[data.Columns[Teacher.FieldName.T_PRENAME].Ordinal].ToString() + item.ItemArray[data.Columns[Teacher.FieldName.T_NAME].Ordinal].ToString(), curri_id = item.ItemArray[data.Columns[Cu_curriculum.FieldName.CURRI_ID].Ordinal].ToString(), file_name_pic = MiscUtils.GatherProfilePicturePath(item.ItemArray[data.Columns[User_list.FieldName.FILE_NAME_PIC].Ordinal].ToString()), type = usrtype }); } } data.Dispose(); } else { //Reserved for return error string } res.Close(); } catch (Exception ex) { //Handle error from sql execution return(ex.Message); } finally { //Whether it success or not it must close connection in order to end block d.SQLDisconnect(); } return(result); }
public void RegenerateFleetShipNames() { FleetShipNames = ""; StringBuilder sb = new StringBuilder(); if (Ships.Count > 0) { foreach (StrategicShip s in Ships) { sb.AppendLine(s.DesignClass.HullDesignation.Prefix + " " + s.ShipName); if (s.isDamaged) { sb.Append(" [D]"); } } } else { for (int i = 1; i < 40; i++) { sb.AppendLine(HullDes.DesDictionary[HullDes.HullTypes[Random.Range(0, 2)]].Prefix + " " + NameManager.GrabShipName()); } } FleetShipNames = sb.ToString(); StrategicUIManager.UpdateUI(); }
// Returns true if the argument could be converted to a string. public bool ErrArgToString(out string psz, ErrArg parg, out bool fUserStrings) { fUserStrings = false; psz = null; bool result = true; switch (parg.eak) { case ErrArgKind.Ids: ErrId(out psz, parg.ids); break; case ErrArgKind.SymKind: ErrSK(out psz, parg.sk); break; case ErrArgKind.Type: BeginString(); ErrAppendType(parg.pType, null); EndString(out psz); fUserStrings = true; break; case ErrArgKind.Sym: BeginString(); ErrAppendSym(parg.sym, null); EndString(out psz); fUserStrings = true; break; case ErrArgKind.Name: if (parg.name == NameManager.GetPredefinedName(PredefinedName.PN_INDEXERINTERNAL)) { psz = "this"; } else { psz = parg.name.Text; } break; case ErrArgKind.Str: psz = parg.psz; break; case ErrArgKind.SymWithType: { SubstContext ctx = new SubstContext(parg.swtMemo.ats, null); BeginString(); ErrAppendSym(parg.swtMemo.sym, ctx, true); EndString(out psz); fUserStrings = true; break; } case ErrArgKind.MethWithInst: { SubstContext ctx = new SubstContext(parg.mpwiMemo.ats, parg.mpwiMemo.typeArgs); BeginString(); ErrAppendSym(parg.mpwiMemo.sym, ctx, true); EndString(out psz); fUserStrings = true; break; } default: result = false; break; } return(result); }
public static Name GetMethodName(NameManager namemgr, OperatorKind op) { Debug.Assert(HasMethodName(op)); return(namemgr.GetPredefName(GetMethodName(op))); }
public static void Drawing_OnDraw(EventArgs args) { if (!Game.IsInGame || AbilityMain.Me == null || !AbilityMain.Me.IsValid || EnemyHeroes.Heroes == null) { return; } var enumerable = EnemyHeroes.UsableHeroes; if (!enumerable.Any()) { return; } foreach (var hero in enumerable) { float dmg; if (!Dictionaries.InDamageDictionary.TryGetValue(hero.Handle, out dmg)) { dmg = 0; } float outdmg; if (!Dictionaries.OutDamageDictionary.TryGetValue(hero.Handle, out outdmg)) { outdmg = 0; } var hp = Math.Max(hero.Health - dmg, 0); var lhp = Math.Max(hp - outdmg, 0); var hpperc = hp / hero.MaximumHealth; var dmgperc = Math.Min(dmg, hero.Health) / hero.MaximumHealth; Vector2 hbarpos; HpBar.HpBarPositionDictionary.TryGetValue(NameManager.Name(hero), out hbarpos); if (hbarpos.X + 20 > HUDInfo.ScreenSizeX() || hbarpos.X - 20 < 0 || hbarpos.Y + 100 > HUDInfo.ScreenSizeY() || hbarpos.Y - 30 < 0) { continue; } var hpvarx = HpBar.SizeX; var hpbary = HpBar.SizeY; var position = hbarpos + new Vector2(hpvarx * hpperc, (float)(hpbary * 0.4)); if (MainMenu.DamageIndicatorMenu.Item("abilityDamageIndicatorDrawDamage").GetValue <bool>()) { if (dmg > 0) { Drawing.DrawRect( position, new Vector2(hpvarx * dmgperc, (float)(hpbary / 1.6)), (lhp > 0) ? new Color(225, 200, 150, 95) : new Color(70, 225, 70, 105)); Drawing.DrawRect( position, new Vector2(hpvarx * dmgperc, (float)(hpbary / 1.6)), Color.Black, true); } if (outdmg > 0) { var outdmgperc = Math.Min(outdmg, hp) / hero.MaximumHealth; var pos = position + new Vector2(-hpvarx * outdmgperc, 0); Drawing.DrawRect( pos, new Vector2(hpvarx * outdmgperc, (float)(hpbary / 1.6)), (lhp > 0) ? new Color(100, 0, 0, 200) : new Color(0, 120, 0, 200)); Drawing.DrawRect( pos, new Vector2(hpvarx * outdmgperc, (float)(hpbary / 1.6)), Color.Black, true); } } if (MainMenu.DamageIndicatorMenu.Item("abilityDamageIndicatorDrawHits").GetValue <bool>()) { double hits; if (!Dictionaries.HitsDictionary.TryGetValue(hero.Handle.ToString(), out hits)) { continue; } var textt = hits.ToString(CultureInfo.InvariantCulture) + ((hits > 1) ? " hits" : " hit"); var hpbarpositionX = HUDInfo.GetHPbarPosition(hero).X; var s = ((hits > 0) ? textt : "KILL"); var h = "(" + Math.Floor(hero.Health - dmg - outdmg) + ")"; var isi = MainMenu.DamageIndicatorMenu.Item("abilityDamageIndicatorTextSize").GetValue <Slider>().Value; var textSize = Drawing.MeasureText( s, "Arial", new Vector2(hpbary + 4 + isi, 1), FontFlags.AntiAlias); var textPos = new Vector2( (int) (hpbarpositionX + 4 + (HpBar.SizeX * ((float)hero.Health * 1000 / hero.MaximumHealth)) / 1000), (int)(HUDInfo.GetHPbarPosition(hero).Y - 2)); Drawing.DrawText( s, textPos, new Vector2(hpbary + 4 + isi, 1), (hits > 0) ? Color.White : new Color(100, 225, 110), FontFlags.AntiAlias); Drawing.DrawText( h, textPos + new Vector2(textSize.X + 2, 1), new Vector2(hpbary + 2 + isi, 1), (hits > 0) ? Color.LightGoldenrodYellow : Color.YellowGreen, FontFlags.AntiAlias); } } }
public async Task <object> Select(oCurriculum_academic curriacadata) { //System.Globalization.CultureInfo en = new System.Globalization.CultureInfo("en-US"); DBConnector d = new DBConnector(); if (!d.SQLConnect()) { return(WebApiApplication.CONNECTDBERRSTRING); } List <Evaluation_overall_result> result = new List <Evaluation_overall_result>(); string temp1tablename = "#temp1"; string createtabletemp1 = string.Format("create table {0}(" + "[row_num] int identity(1, 1) not null," + "[assessor_type] int null," + "[{1}] int null," + "[{2}] int null," + "[{3}] date null," + "[{4}] TIME(0) null," + "[caption1] varchar(2100) null," + "[caption2] varchar(2100) null," + "[{5}] float null," + "primary key([row_num])) " + "alter table {0} " + "alter column[caption1] varchar(2100) collate database_default " + "alter table {0} " + "alter column[caption2] varchar(2100) collate database_default ", temp1tablename, Indicator.FieldName.INDICATOR_NUM, Sub_indicator.FieldName.SUB_INDICATOR_NUM, Self_evaluation.FieldName.DATE, Self_evaluation.FieldName.TIME, Self_evaluation.FieldName.EVALUATION_SCORE); string insertintotemp1_1 = string.Format("insert into {0} " + "select 0 as assess_data_type," + "{1}.{2},{3},null,null,{4},{5},null from {1}, {6} " + "where {1}.{7} = (select max({7}) from {1} where {7} <= {8}) " + "and {1}.{7} = {6}.{9} " + "and {1}.{2} = {6}.{10} order by {1}.{2} ", temp1tablename, Indicator.FieldName.TABLE_NAME, Indicator.FieldName.INDICATOR_NUM, Sub_indicator.FieldName.SUB_INDICATOR_NUM, Indicator.FieldName.INDICATOR_NAME_E, Sub_indicator.FieldName.SUB_INDICATOR_NAME, Sub_indicator.FieldName.TABLE_NAME, Indicator.FieldName.ACA_YEAR, curriacadata.aca_year, Sub_indicator.FieldName.ACA_YEAR, Sub_indicator.FieldName.INDICATOR_NUM); string insertintotemp1_2 = string.Format("insert into {0} " + "select 1 as assessor_type," + "{1}," + "null as sub_indicator_num," + "max({2}) as {2}," + "max({14}) as {14}," + "max({3})," + "max({4})," + "null " + "from {6},{7} where {8} = '{9}' and {10} = {11} " + "and {12} = {13} " + "group by {1} ", temp1tablename, Indicator.FieldName.INDICATOR_NUM, Self_evaluation.FieldName.DATE, Teacher.FieldName.T_PRENAME, Teacher.FieldName.T_NAME, Self_evaluation.FieldName.EVALUATION_SCORE, Self_evaluation.FieldName.TABLE_NAME /****6****/, User_list.FieldName.TABLE_NAME, Self_evaluation.FieldName.CURRI_ID, curriacadata.curri_id, Self_evaluation.FieldName.ACA_YEAR, curriacadata.aca_year, Self_evaluation.FieldName.TEACHER_ID, User_list.FieldName.USER_ID, Self_evaluation.FieldName.TIME); string insertintotemp1_3 = string.Format("insert into {0} " + "select 2 as assessor_type," + "{1}," + "null as sub_indicator_num," + "max({2}) as {2}," + "max({14}) as {14}," + "max({3})," + "max({4})," + "null " + "from {6},{7} where {8} = '{9}' and {10} = {11} " + "and {12} = {13} " + "group by {1} ", temp1tablename, Indicator.FieldName.INDICATOR_NUM, Others_evaluation.FieldName.DATE, Teacher.FieldName.T_PRENAME, Teacher.FieldName.T_NAME, Others_evaluation.FieldName.EVALUATION_SCORE, Others_evaluation.FieldName.TABLE_NAME /****6****/, User_list.FieldName.TABLE_NAME, Others_evaluation.FieldName.CURRI_ID, curriacadata.curri_id, Others_evaluation.FieldName.ACA_YEAR, curriacadata.aca_year, Others_evaluation.FieldName.ASSESSOR_ID, User_list.FieldName.USER_ID, Others_evaluation.FieldName.TIME); string insertintotemp1_4 = string.Format("insert into {0}(assessor_type,{1},{2},{3}) " + "select 3 as assessor_type," + "{1}," + "{2}," + "{3} " + "from {4} where {5} = '{6}' and {7} = {8} ", temp1tablename, Indicator.FieldName.INDICATOR_NUM, Sub_indicator.FieldName.SUB_INDICATOR_NUM, Self_evaluation.FieldName.EVALUATION_SCORE, Self_evaluation.FieldName.TABLE_NAME, Self_evaluation.FieldName.CURRI_ID, curriacadata.curri_id, Self_evaluation.FieldName.ACA_YEAR, curriacadata.aca_year); string insertintotemp1_5 = string.Format("insert into {0}(assessor_type,{1},{2},{3}) " + "select 4 as assessor_type," + "{1}," + "{2}," + "{3} " + "from {4} where {5} = '{6}' and {7} = {8} ", temp1tablename, Indicator.FieldName.INDICATOR_NUM, Sub_indicator.FieldName.SUB_INDICATOR_NUM, Others_evaluation.FieldName.EVALUATION_SCORE, Others_evaluation.FieldName.TABLE_NAME, Others_evaluation.FieldName.CURRI_ID, curriacadata.curri_id, Others_evaluation.FieldName.ACA_YEAR, curriacadata.aca_year); string selectcmd = string.Format("select * from {0} ", temp1tablename); d.iCommand.CommandText = string.Format("BEGIN {0} {1} {2} {3} {4} {5} {6} END", createtabletemp1, insertintotemp1_1, insertintotemp1_2, insertintotemp1_3, insertintotemp1_4, insertintotemp1_5, selectcmd); try { //Retrieve self_evaluation data System.Data.Common.DbDataReader res = await d.iCommand.ExecuteReaderAsync(); if (res.HasRows) { DataTable data = new DataTable(); data.Load(res); foreach (DataRow item in data.Rows) { int assess_type = Convert.ToInt32(item.ItemArray[data.Columns["assessor_type"].Ordinal]); //Type 0:Retrieve indicator name/sub indicator name if (assess_type == 0) { int indnum = Convert.ToInt32(item.ItemArray[data.Columns[Indicator.FieldName.INDICATOR_NUM].Ordinal]); if (result.FirstOrDefault(t => t.indicator_num == indnum) == null) { result.Add(new Evaluation_overall_result { indicator_num = indnum, indicator_name = item.ItemArray[data.Columns["caption1"].Ordinal].ToString(), }); //Force add sub_indicator_num = 0 with sub_indicator_name as indicator_name result.First(t => t.indicator_num == indnum).sub_indicator_result.Add(new Sub_indicator_result { sub_indicator_num = 0, sub_indicator_name = item.ItemArray[data.Columns["caption1"].Ordinal].ToString() }); } result.First(t => t.indicator_num == indnum).sub_indicator_result.Add(new Sub_indicator_result { sub_indicator_num = Convert.ToInt32(item.ItemArray[data.Columns[Sub_indicator.FieldName.SUB_INDICATOR_NUM].Ordinal]), sub_indicator_name = item.ItemArray[data.Columns["caption2"].Ordinal].ToString() }); } //Type 1:Retrieve self assessment time and the name of assessor else if (assess_type == 1) { Evaluation_overall_result target = result.First(t => t.indicator_num == Convert.ToInt32(item.ItemArray[data.Columns[Indicator.FieldName.INDICATOR_NUM].Ordinal])); string h, m; DateTime timeofday = Convert.ToDateTime(item.ItemArray[data.Columns[Self_evaluation.FieldName.TIME].Ordinal].ToString(), System.Globalization.CultureInfo.CurrentCulture); h = timeofday.Hour.ToString(); m = timeofday.Minute.ToString(); target.self_date = Convert.ToDateTime(item.ItemArray[data.Columns[Self_evaluation.FieldName.DATE].Ordinal].ToString(), System.Globalization.CultureInfo.CurrentCulture).GetDateTimeFormats()[3]; target.self_name = NameManager.GatherPreName(item.ItemArray[data.Columns["caption1"].Ordinal].ToString()) + item.ItemArray[data.Columns["caption2"].Ordinal].ToString(); target.self_time = (timeofday.Hour > 9 ? "" : "0") + h + '.' + (timeofday.Minute > 9 ? "" : "0") + m; } //Type 2:Retrieve other assessment time and the name of assessor else if (assess_type == 2) { Evaluation_overall_result target = result.First(t => t.indicator_num == Convert.ToInt32(item.ItemArray[data.Columns[Indicator.FieldName.INDICATOR_NUM].Ordinal])); string h, m; DateTime timeofday = Convert.ToDateTime(item.ItemArray[data.Columns[Self_evaluation.FieldName.TIME].Ordinal].ToString(), System.Globalization.CultureInfo.CurrentCulture); h = timeofday.Hour.ToString(); m = timeofday.Minute.ToString(); target.other_date = Convert.ToDateTime(item.ItemArray[data.Columns[Self_evaluation.FieldName.DATE].Ordinal].ToString(), System.Globalization.CultureInfo.CurrentCulture).GetDateTimeFormats()[3]; target.other_name = NameManager.GatherPreName(item.ItemArray[data.Columns["caption1"].Ordinal].ToString()) + item.ItemArray[data.Columns["caption2"].Ordinal].ToString(); target.other_time = (timeofday.Hour > 9 ? "" : "0") + h + '.' + (timeofday.Minute > 9 ? "" : "0") + m; } //Type 3:Retrieve overall individual result of self evaluation else if (assess_type == 3) { Sub_indicator_result target = result.First(t => t.indicator_num == Convert.ToInt32(item.ItemArray[data.Columns[Indicator.FieldName.INDICATOR_NUM].Ordinal])). sub_indicator_result.First(t => t.sub_indicator_num == Convert.ToInt32(item.ItemArray[data.Columns[Sub_indicator.FieldName.SUB_INDICATOR_NUM].Ordinal])); if (item.ItemArray[data.Columns[Self_evaluation.FieldName.EVALUATION_SCORE].Ordinal].ToString() != "") { target.sub_indicator_self_result = Convert.ToInt32(item.ItemArray[data.Columns[Self_evaluation.FieldName.EVALUATION_SCORE].Ordinal]); } } //Type 4:Retrieve overall individual result of other evaluation else { Sub_indicator_result target = result.First(t => t.indicator_num == Convert.ToInt32(item.ItemArray[data.Columns[Indicator.FieldName.INDICATOR_NUM].Ordinal])). sub_indicator_result.First(t => t.sub_indicator_num == Convert.ToInt32(item.ItemArray[data.Columns[Sub_indicator.FieldName.SUB_INDICATOR_NUM].Ordinal])); if (item.ItemArray[data.Columns[Self_evaluation.FieldName.EVALUATION_SCORE].Ordinal].ToString() != "") { target.sub_indicator_other_result = Convert.ToInt32(item.ItemArray[data.Columns[Self_evaluation.FieldName.EVALUATION_SCORE].Ordinal]); } } } data.Dispose(); //Get another data.... } else { //Reserved for return error string return(""); } res.Close(); } catch (Exception ex) { //Handle error from sql execution return(ex.Message); } finally { //Whether it success or not it must close connection in order to end block d.SQLDisconnect(); } return(result); }
// Initialization that should happen after game loads goes here (ie. initializing non-serializable properites). public void Init() { monsterManager = new MonsterManager(this); itemManager = new ItemManager(this); nameManager = new NameManager(this); featManager = new FeatManager(this); effectManager = new EffectManager(this); Counter<string> badTags = new Counter<string>(); monsterManager.ReadMonsters("monsters.xml", badTags); itemManager.ReadItems("items.xml", badTags); nameManager.ReadPlaceNames("place_names.txt"); nameManager.ReadCharacterNames("character_names.txt"); featManager.ReadFeats("feats.xml", badTags); effectManager.ReadEffects("effects.xml", badTags); foreach (var pair in badTags) { PrintMessage(LogLevel.DEBUG, string.Format("Found unhandled xml tag <{0}> {1} times.", pair.Key, pair.Value)); } }
public void SetUp() { nameManager = new NameManager<LocalizedStringWithId>(); }
private Name GetPredefName(PredefinedName pn) { return(NameManager.GetPredefinedName(pn)); }
private static void DrawItemOverlay(Item ability, Vector2 position, float mana) { try { var name = NameManager.Name(ability); var enoughMana = mana >= ability.ManaCost; DotaTexture texture; if (!TextureDictionary.TryGetValue(name, out texture)) { texture = Textures.GetTexture("materials/ensage_ui/items/" + name.Substring("item_".Length) + ".vmat"); TextureDictionary.Add(name, texture); } Drawing.DrawRect( position + new Vector2(1, 0), new Vector2((float)(itemBoxSizeX + itemBoxSizeX / 2.6), itemBoxSizeY), texture); var cooldown = Math.Ceiling(ability.Cooldown); if (cooldown > 0 || !enoughMana) { Drawing.DrawRect( position + new Vector2(1, 0), new Vector2(itemBoxSizeX - 1, itemBoxSizeY), enoughMana ? new Color(40, 40, 40, 180) : new Color(25, 25, 130, 190)); } else { Drawing.DrawRect( position + new Vector2(1, 0), new Vector2(itemBoxSizeX - 1, itemBoxSizeY), new Color(0, 0, 0, 100)); } if (cooldown > 0) { var h = Math.Min(cooldown, 99).ToString(CultureInfo.InvariantCulture); var hsize = cooldown > 9 ? new Vector2(Math.Min(itemBoxSizeY - 1, 15), 15) : new Vector2(Math.Min(itemBoxSizeY + 1, 15), 25); var textSize = Drawing.MeasureText(h, "Arial", hsize, FontFlags.AntiAlias); var pos = position + new Vector2(itemBoxSizeX / 2 - textSize.X / 2, (itemBoxSizeY / 2) - (textSize.Y / 2)); Drawing.DrawText(h, pos, hsize, Color.WhiteSmoke, FontFlags.AntiAlias); } if (!enoughMana && cooldown <= 0) { var h = Math.Min(Math.Ceiling(ability.ManaCost - mana), 999).ToString(CultureInfo.InvariantCulture); var textSize = Drawing.MeasureText( h, "Arial", new Vector2(Math.Min(itemBoxSizeY - 2, 15), 1), FontFlags.AntiAlias); var pos = position + new Vector2(itemBoxSizeX / 2 - textSize.X / 2, (itemBoxSizeY / 2) - (textSize.Y / 2)); Drawing.DrawText( h, pos, new Vector2(Math.Min(itemBoxSizeY - 2, 15), 1), Color.LightBlue, FontFlags.AntiAlias); } if ((ability.IsRequiringCharges || NameManager.Name(ability) == "item_ward_dispenser" || NameManager.Name(ability) == "item_ward_observer" || NameManager.Name(ability) == "item_ward_sentry") && cooldown <= 0) { var s = ability.CurrentCharges.ToString(); var tSize = new Vector2(Math.Min(itemBoxSizeY - 2, 15), 1); var textSize = Drawing.MeasureText(s, "Arial", tSize, FontFlags.AntiAlias); var tPos = position + new Vector2(itemBoxSizeX - textSize.X - 2, itemBoxSizeY - textSize.Y - 1); Drawing.DrawRect( tPos - new Vector2(1, 0), new Vector2(textSize.X + 1, textSize.Y + 1), new Color(0, 0, 0, 220)); Drawing.DrawText(s, tPos, tSize, new Color(168, 168, 168), FontFlags.AntiAlias | FontFlags.StrikeOut); var secondcharges = ability.SecondaryCharges; if (secondcharges > 0) { tPos = position + new Vector2(2, itemBoxSizeY - textSize.Y - 1); s = secondcharges.ToString(); tSize = new Vector2(Math.Min(itemBoxSizeY - 2, 15), 1); var textSize1 = Drawing.MeasureText(s, "Arial", tSize, FontFlags.AntiAlias); Drawing.DrawRect( tPos - new Vector2(1, 0), new Vector2(textSize1.X + 1, textSize1.Y + 1), new Color(0, 0, 0, 220)); Drawing.DrawText( s, tPos, tSize, new Color(168, 168, 168), FontFlags.AntiAlias | FontFlags.StrikeOut); } } } catch (Exception) { // ignored } Drawing.DrawRect(position, new Vector2(itemBoxSizeX + 1, itemBoxSizeY), Color.Black, true); }
public static void Game_OnUpdate(EventArgs args) { if (!OnUpdateChecks.CanUpdate() || !Specials.SpecialsMenuDictionary.ContainsKey("rubick_spell_steal")) { return; } foreach (var hero in EnemyHeroes.Heroes) { var heroName = NameManager.Name(hero); if (!LastCastedDictionary.ContainsKey(heroName)) { LastCastedDictionary.Add(heroName, null); } if (Specials.SpecialsMenuDictionary["rubick_spell_steal"].Item(heroName) == null) { Specials.SpecialsMenuDictionary["rubick_spell_steal"].AddItem( new MenuItem(heroName, hero.ClassID.ToString().Substring("CDOTA_Unit_Hero_".Length) + ":") .SetValue(new AbilityToggler(new Dictionary <string, bool>()))); } if (!EnemyHeroes.AbilityDictionary.ContainsKey(heroName)) { continue; } foreach (var ability in EnemyHeroes.AbilityDictionary[heroName]) { var name = NameManager.Name(ability); if (!CdDictionary.ContainsKey(name)) { CdDictionary.Add(name, false); } var cd = CdDictionary[name]; if ((ability.Cooldown > 0 || (ability.IsAbilityBehavior(AbilityBehavior.Toggle, name) && ability.IsToggled)) && !cd) { CdDictionary[name] = true; LastCastedDictionary[heroName] = ability; } if ((ability.Cooldown <= 0 || (ability.IsAbilityBehavior(AbilityBehavior.Toggle, name) && !ability.IsToggled)) && cd) { CdDictionary[name] = false; } if (ability.IsAbilityBehavior(AbilityBehavior.Passive, name) || name == "invoker_invoke" || name == "invoker_quas" || name == "invoker_wex" || name == "invoker_exort") { continue; } var d = Specials.SpecialsMenuDictionary["rubick_spell_steal"].Item(heroName).GetValue <AbilityToggler>(); if (!d.Dictionary.ContainsKey(name)) { d.Add(name, ability.AbilityType == AbilityType.Ultimate); } } } }
public static void Drawing_OnDraw(EventArgs args) { if (!Game.IsInGame || AbilityMain.Me == null || !AbilityMain.Me.IsValid || EnemyHeroes.Heroes == null) { return; } if (Utils.SleepCheck("AbilityOverlay.Update")) { boxSizeX = HpBar.SizeX / 6 + MainMenu.AbilityOverlayMenu.Item("sizeSliderSpell").GetValue <Slider>().Value; boxSizeY = boxSizeX + 1; boxExtraPosX = MainMenu.AbilityOverlayMenu.Item("ExtraPosSliderSpellX").GetValue <Slider>().Value *(float)0.5; boxExtraPosY = MainMenu.AbilityOverlayMenu.Item("ExtraPosSliderSpellY").GetValue <Slider>().Value *(float)0.5; itemBoxSizeX = HpBar.SizeX / 6 + MainMenu.AbilityOverlayMenu.Item("sizeSliderItem").GetValue <Slider>().Value; itemBoxSizeY = (float)(itemBoxSizeX / 1.24); itemboxExtraPosX = MainMenu.AbilityOverlayMenu.Item("ExtraPosSliderItemX").GetValue <Slider>().Value *(float)0.5; itemboxExtraPosY = MainMenu.AbilityOverlayMenu.Item("ExtraPosSliderItemY").GetValue <Slider>().Value *(float)0.5; Utils.Sleep(100, "AbilityOverlay.Update"); } var size = new Vector2(HpBar.SizeX, (float)(HpBar.SizeY / 2.8)); var spellOverlayEnabledEnemy = MainMenu.AbilityOverlayMenu.Item("enableSpellOverlayEnemy").GetValue <bool>(); var enableManaBar = MainMenu.ManaBarMenu.Item("enableManaBar").GetValue <bool>(); try { foreach (var hero in EnemyHeroes.UsableHeroes) { var heroName = NameManager.Name(hero); var mana = hero.Mana; var maxMana = hero.MaximumMana; var hpbarpos = HpBar.HpBarPositionDictionary[heroName]; if (hpbarpos.X + 20 > HUDInfo.ScreenSizeX() || hpbarpos.X - 20 < 0 || hpbarpos.Y + 100 > HUDInfo.ScreenSizeY() || hpbarpos.Y - 30 < 0) { continue; } if (enableManaBar) { var start = hpbarpos + new Vector2(0, HpBar.SizeY + 1); var manaperc = mana / maxMana; Drawing.DrawRect(start, size + new Vector2(1, 1), new Color(0, 0, 50, 150)); Drawing.DrawRect(start, new Vector2(size.X * manaperc, size.Y), new Color(70, 120, 220)); Drawing.DrawRect(start + new Vector2(-1, -1), size + new Vector2(3, 3), Color.Black, true); } if (EnemyHeroes.AbilityDictionary.ContainsKey(heroName) && spellOverlayEnabledEnemy) { var abilities = EnemyHeroes.AbilityDictionary[heroName].Where( x => (int)x.AbilitySlot >= 0 && (int)x.AbilitySlot <= 5) .OrderBy(x => (int)x.AbilitySlot); var defaultPos = hpbarpos + new Vector2( HpBar.SizeX / 2 - Math.Max((abilities.Count() / 2) * boxSizeX, HpBar.SizeX / 2), HpBar.SizeY + size.Y + 3); var position = defaultPos + new Vector2(boxExtraPosX, boxExtraPosY); foreach (var ability in abilities) { DrawAbilityOverlay(ability, position, heroName, mana); position += new Vector2(boxSizeX, 0); } } if (MainMenu.AbilityOverlayMenu.Item("enableItemOverlayEnemy").GetValue <bool>()) { if (!EnemyHeroes.ItemDictionary.ContainsKey(heroName)) { continue; } var items = EnemyHeroes.ItemDictionary[heroName].Where(ability => ability.IsValid).ToList(); var itemPos = hpbarpos - new Vector2( -HpBar.SizeX / 2 + Math.Max((items.Count / 2) * itemBoxSizeX, HpBar.SizeX / 2), itemBoxSizeY); var ItemPosExtra = itemPos + new Vector2(itemboxExtraPosX, itemboxExtraPosY); foreach (var ability in items) { DrawItemOverlay(ability, ItemPosExtra, mana); ItemPosExtra += new Vector2(itemBoxSizeX, 0); } } } } catch (EntityNotFoundException e) { EnemyHeroes.UpdateHeroes(); Console.WriteLine(e.ToString()); } var spellOverlayEnabledAlly = MainMenu.AbilityOverlayMenu.Item("enableSpellOverlayAlly").GetValue <bool>(); try { foreach (var hero in AllyHeroes.UsableHeroes) { var heroName = NameManager.Name(hero); var mana = hero.Mana; var hpbarpos = HpBar.HpBarPositionDictionary[heroName]; if (hpbarpos.X + 20 > HUDInfo.ScreenSizeX() || hpbarpos.X - 20 < 0 || hpbarpos.Y + 100 > HUDInfo.ScreenSizeY() || hpbarpos.Y - 30 < 0) { continue; } if (spellOverlayEnabledAlly && AllyHeroes.AbilityDictionary.ContainsKey(heroName)) { var abilities = AllyHeroes.AbilityDictionary[heroName].Where( x => (int)x.AbilitySlot >= 0 && (int)x.AbilitySlot <= 5) .OrderBy(x => (int)x.AbilitySlot); var defaultPos = hpbarpos + new Vector2( HpBar.SizeX / 2 - Math.Max((abilities.Count() / 2) * boxSizeX, HpBar.SizeX / 2), HpBar.SizeY + size.Y + 3); if (hero.Equals(AbilityMain.Me)) { defaultPos += new Vector2(-3, 3); } var position = defaultPos + new Vector2(boxExtraPosX, boxExtraPosY); foreach (var ability in abilities) { DrawAbilityOverlay(ability, position, heroName, mana); position += new Vector2(boxSizeX, 0); } } if (MainMenu.AbilityOverlayMenu.Item("enableItemOverlayAlly").GetValue <bool>()) { if (!AllyHeroes.ItemDictionary.ContainsKey(heroName)) { continue; } var items = AllyHeroes.ItemDictionary[heroName].Where(ability => ability.IsValid).ToList(); var itemPos = hpbarpos - new Vector2( -HpBar.SizeX / 2 + Math.Max((items.Count / 2) * itemBoxSizeX, HpBar.SizeX / 2), itemBoxSizeY); var ItemPosExtra = itemPos + new Vector2(itemboxExtraPosX, itemboxExtraPosY); if (hero.Equals(AbilityMain.Me)) { ItemPosExtra += new Vector2(-3, 1); } foreach (var ability in items) { DrawItemOverlay(ability, ItemPosExtra, mana); ItemPosExtra += new Vector2(itemBoxSizeX, 0); } } } } catch (EntityNotFoundException e) { AllyHeroes.UpdateHeroes(); Console.WriteLine(e.ToString()); } }
private void ErrAppendMethod(MethodSymbol meth, SubstContext pctx, bool fArgs) { if (meth.IsExpImpl() && meth.swtSlot) { ErrAppendParentSym(meth, pctx); // Get the type args from the explicit impl type and substitute using pctx (if there is one). SubstContext ctx = new SubstContext(GetTypeManager().SubstType(meth.swtSlot.GetType(), pctx).AsAggregateType()); ErrAppendSym(meth.swtSlot.Sym, ctx, fArgs); // args already added return; } if (meth.isPropertyAccessor()) { PropertySymbol prop = meth.getProperty(); // this includes the parent class ErrAppendSym(prop, pctx); // add accessor name if (prop.methGet == meth) { ErrAppendString(".get"); } else { Debug.Assert(meth == prop.methSet); ErrAppendString(".set"); } // args already added return; } if (meth.isEventAccessor()) { EventSymbol @event = meth.getEvent(); // this includes the parent class ErrAppendSym(@event, pctx); // add accessor name if (@event.methAdd == meth) { ErrAppendString(".add"); } else { Debug.Assert(meth == @event.methRemove); ErrAppendString(".remove"); } // args already added return; } TypeArray replacementTypeArray = null; ErrAppendMethodParentSym(meth, pctx, out replacementTypeArray); if (meth.IsConstructor()) { // Use the name of the parent class instead of the name "<ctor>". ErrAppendName(meth.getClass().name); } else if (meth.IsDestructor()) { // Use the name of the parent class instead of the name "Finalize". ErrAppendChar('~'); ErrAppendName(meth.getClass().name); } else if (meth.isConversionOperator()) { // implicit/explicit ErrAppendString(meth.isImplicit() ? "implicit" : "explicit"); ErrAppendString(" operator "); // destination type name ErrAppendType(meth.RetType, pctx); } else if (meth.isOperator) { // handle user defined operators // map from CLS predefined names to "operator <X>" ErrAppendString("operator "); // // This is kinda slow, but the alternative is to add bits to methsym. // string operatorName; OperatorKind op = Operators.OperatorOfMethodName(meth.name); if (Operators.HasDisplayName(op)) { operatorName = Operators.GetDisplayName(op); } else { // // either equals or compare // if (meth.name == NameManager.GetPredefinedName(PredefinedName.PN_OPEQUALS)) { operatorName = "equals"; } else { Debug.Assert(meth.name == NameManager.GetPredefinedName(PredefinedName.PN_OPCOMPARE)); operatorName = "compare"; } } ErrAppendString(operatorName); } else if (meth.IsExpImpl()) { if (meth.errExpImpl != null) { ErrAppendType(meth.errExpImpl, pctx, fArgs); } } else { // regular method ErrAppendName(meth.name); } if (null == replacementTypeArray) { ErrAppendTypeParameters(meth.typeVars, pctx, false); } if (fArgs) { // append argument types ErrAppendChar('('); if (!meth.computeCurrentBogusState()) { ErrAppendParamList(GetTypeManager().SubstTypeArray(meth.Params, pctx), meth.isVarargs, meth.isParamArray); } ErrAppendChar(')'); } }
public static void UpdateItems(EventArgs args) { if (!OnUpdateChecks.CanUpdate()) { return; } try { if (!Utils.SleepCheck("checkitems")) { return; } foreach (var item in AbilityMain.Me.Inventory.Items) { switch (NameManager.Name(item)) { case "item_gem": continue; case "item_soul_ring": MyAbilities.SoulRing = item; break; case "item_aether_lens": RangeDrawing.Update(); break; case "item_cyclone": MyAbilities.Cyclone = item; break; case "item_force_staff": MyAbilities.ForceStaff = item; break; case "item_blink": if (MyAbilities.Blink != null && MyAbilities.Blink.IsValid) { continue; } ComboMenu.AddAbility(item.StoredName(), item); RangeDrawing.AddRange(item); MyAbilities.Blink = item; continue; } var data = AbilityDatabase.Find(NameManager.Name(item)); if (data == null) { continue; } if (!MyAbilities.OffensiveAbilities.ContainsValue(item)) { var added = false; if (data.IsSlow) { AddNewSlow(item); added = true; } if (data.IsHarras) { AddNewHarras(item); added = true; } if (data.IsBuff) { AddNewBuff(item); added = true; } if (data.IsSilence) { AddNewSilence(item); added = true; } if (data.TrueSight || data.WeakensEnemy || data.IsPurge) { AddNewSpecial(item, data); added = true; } if (data.IsDisable) { AddNewDisable(item); added = true; } if (data.IsNuke || item.Name == "item_urn_of_shadows") { AddNewNuke(item); added = true; } if (added) { RangeDrawing.AddRange(item); ComboMenu.AddAbility(item.Name, item); } } // Console.WriteLine(!MyAbilities.DefensiveAbilities.ContainsValue(item) + " " + NameManager.Name(item) + " " + data.IsHeal); if (!MyAbilities.DefensiveAbilities.ContainsValue(item)) { if (data.IsHeal) { AddNewHeal(item); } if (data.IsShield) { AddNewShield(item); } } } if (AbilityMain.Me.ClassId == ClassId.CDOTA_Unit_Hero_Rubick) { foreach (var item in AllyHeroes.AbilityDictionary[NameManager.Name(AbilityMain.Me)]) { var data = AbilityDatabase.Find(NameManager.Name(item)); if (data == null) { continue; } if (item.StoredName() == "spirit_breaker_charge_of_darkness") { MyAbilities.ChargeOfDarkness = item; } if (!MyAbilities.OffensiveAbilities.ContainsValue(item)) { var added = false; if (data.IsSlow) { AddNewSlow(item); added = true; } if (data.IsHarras) { AddNewHarras(item); added = true; } if (data.IsBuff) { AddNewBuff(item); added = true; } if (data.IsSilence) { AddNewSilence(item); added = true; } if (data.TrueSight || data.WeakensEnemy || data.IsPurge) { AddNewSpecial(item, data); added = true; } if (data.IsDisable) { AddNewDisable(item); added = true; } if (data.IsNuke) { AddNewNuke(item); added = true; } if (added) { ComboMenu.AddAbility(item.Name, item); } } // Console.WriteLine(!MyAbilities.DefensiveAbilities.ContainsValue(item) + " " + NameManager.Name(item) + " " + data.IsHeal); if (!MyAbilities.DefensiveAbilities.ContainsValue(item)) { if (data.IsHeal) { AddNewHeal(item); } if (data.IsShield) { AddNewShield(item); } } } } Utils.Sleep(1000, "checkitems"); } catch (Exception e) { Console.WriteLine(e.ToString()); } }
private bool IsDisplayableName(Name name) { return(name != NameManager.GetPredefinedName(PredefinedName.PN_MISSING)); }
public static void ObjectMgr_OnRemoveEntity(EntityEventArgs args) { try { var a = args.Entity; if (a == null || NameManager.Name(a) == null || MainMenu.Menu == null) { return; } var name = NameManager.Name(a); var data = AbilityDatabase.Find(name); if (data == null || a.Owner == null || !a.Owner.Equals(AbilityMain.Me)) { return; } MainMenu.ComboKeysMenu.Item("comboAbilitiesToggler").GetValue <AbilityToggler>().Remove(name); MainMenu.ComboKeysMenu.Item("Ability#.ComboOrder").GetValue <PriorityChanger>().Remove(name); // if (AbilityMain.Me.ClassId == ClassId.CDOTA_Unit_Hero_Rubick) // { // if (!Rubick.MyCdDictionary.ContainsKey(name)) // { // Rubick.MyCdDictionary.Add(name, Utils.TickCount + ((a as Ability).Cooldown * 1000)); // } // } RangeDrawing.RemoveRange(a as Ability); if (data.IsPurge || data.WeakensEnemy || data.TrueSight) { MainMenu.Menu.Item("specialsToggler").GetValue <AbilityToggler>().Remove(name); Specials.SpecialsMenuDictionary.Remove(name); Specials.SpecialsMenu.RemoveSubMenu(name); MyAbilities.OffensiveAbilities.Remove(name + "special"); } if (data.IsBuff) { MainMenu.Menu.Item("buffsToggler").GetValue <AbilityToggler>().Remove(name); Buffs.BuffsMenuDictionary.Remove(name); Buffs.BuffsMenu.RemoveSubMenu(name); MyAbilities.OffensiveAbilities.Remove(name + "buff"); } if (data.IsNuke || name == "item_urn_of_shadows") { MainMenu.Menu.Item("nukesToggler").GetValue <AbilityToggler>().Remove(name); Nukes.NukesMenuDictionary.Remove(name); Nukes.NukesMenu.RemoveSubMenu(name); MyAbilities.OffensiveAbilities.Remove(name + "nuke"); } if (data.IsDisable) { MainMenu.Menu.Item("disablesToggler").GetValue <AbilityToggler>().Remove(name); Disables.DisablesMenuDictionary.Remove(name); Disables.DisablesMenu.RemoveSubMenu(name); MyAbilities.OffensiveAbilities.Remove(name + "disable"); } if (data.IsSlow) { MainMenu.Menu.Item("slowsToggler").GetValue <AbilityToggler>().Remove(name); Slows.SlowsMenuDictionary.Remove(name); Slows.SlowsMenu.RemoveSubMenu(name); MyAbilities.OffensiveAbilities.Remove(name + "slow"); } if (data.IsHarras) { MainMenu.Menu.Item("harrasesToggler").GetValue <AbilityToggler>().Remove(name); Harrases.HarrasesMenuDictionary.Remove(name); Harrases.HarrasesMenu.RemoveSubMenu(name); MyAbilities.OffensiveAbilities.Remove(name + "harras"); } if (data.IsSilence) { MainMenu.Menu.Item("silencesToggler").GetValue <AbilityToggler>().Remove(name); Silences.SilencesMenuDictionary.Remove(name); Silences.SilencesMenu.RemoveSubMenu(name); MyAbilities.OffensiveAbilities.Remove(name + "silence"); } if (data.IsHeal) { MainMenu.Menu.Item("healsToggler").GetValue <AbilityToggler>().Remove(name); Heals.HealsMenuDictionary.Remove(name); Heals.HealsMenu.RemoveSubMenu(name); MyAbilities.DefensiveAbilities.Remove(name + "heal"); } if (data.IsShield) { MainMenu.Menu.Item("shieldsToggler").GetValue <AbilityToggler>().Remove(name); Shields.ShieldsMenuDictionary.Remove(name); Shields.ShieldsMenu.RemoveSubMenu(name); MyAbilities.DefensiveAbilities.Remove(name + "shield"); } } catch (Exception e) { Console.WriteLine(e.ToString()); } }
public async Task <object> selectWithFullDetail(string curri_id_data) { DBConnector d = new DBConnector(); if (!d.SQLConnect()) { return(WebApiApplication.CONNECTDBERRSTRING); } List <Personnel_educational> result = new List <Personnel_educational>(); string selpersonnel = string.Format("select {0}, {1}.{2}," + "{3} = {4} " + ", {5}, {6}, {7}, {8}, {9} " + "from {1}, {10} " + "where {1}.{2} in(1,2) " + "and exists (select * from {11} " + "where {1}.{0} = {12} and {13} = '{14}') " + "and {1}.{2} = {10}.{15} ", User_list.FieldName.USER_ID, User_list.FieldName.TABLE_NAME, User_list.FieldName.USER_TYPE_ID, User_list.FieldName.T_PRENAME, NameManager.GatherSQLCASEForPrename(User_list.FieldName.TABLE_NAME, User_list.FieldName.USER_TYPE_ID, User_list.FieldName.T_PRENAME), User_list.FieldName.T_NAME, User_list.FieldName.FILE_NAME_PIC, User_list.FieldName.EMAIL, User_list.FieldName.TEL, User_type.FieldName.USER_TYPE_NAME, User_type.FieldName.TABLE_NAME, User_curriculum.FieldName.TABLE_NAME, User_curriculum.FieldName.USER_ID, User_curriculum.FieldName.CURRI_ID, curri_id_data, User_type.FieldName.USER_TYPE_ID ); string seleducation = string.Format("select * from {0} " + "where " + "exists (select * from {1} " + "where {2} = {3} and {4} = '{5}') " + "and exists (select * from {6} " + "where {2} = {7} and {8} in(1, 2)) ", Educational_teacher_staff.FieldName.TABLE_NAME, User_curriculum.FieldName.TABLE_NAME, Educational_teacher_staff.FieldName.PERSONNEL_ID, User_curriculum.FieldName.USER_ID, User_curriculum.FieldName.CURRI_ID, curri_id_data, User_list.FieldName.TABLE_NAME, User_list.FieldName.USER_ID, User_list.FieldName.USER_TYPE_ID ); d.iCommand.CommandText = string.Format("BEGIN {0} {1} END", selpersonnel, seleducation); try { System.Data.Common.DbDataReader res = await d.iCommand.ExecuteReaderAsync(); do { if (res.HasRows) { DataTable data = new DataTable(); data.Load(res); foreach (DataRow item in data.Rows) { if (data.Columns.Contains(Educational_teacher_staff.FieldName.EDUCATION_ID)) {//Educational table data int personnelid = Convert.ToInt32(item.ItemArray[data.Columns[Educational_teacher_staff.FieldName.PERSONNEL_ID].Ordinal]); result.First(p => p.user_id == personnelid).history.Add(new Educational_teacher_staff { college = item.ItemArray[data.Columns[Educational_teacher_staff.FieldName.COLLEGE].Ordinal].ToString(), degree = Convert.ToChar(item.ItemArray[data.Columns[Educational_teacher_staff.FieldName.DEGREE].Ordinal]), grad_year = Convert.ToInt32(item.ItemArray[data.Columns[Educational_teacher_staff.FieldName.GRAD_YEAR].Ordinal]), pre_major = item.ItemArray[data.Columns[Educational_teacher_staff.FieldName.PRE_MAJOR].Ordinal].ToString(), major = item.ItemArray[data.Columns[Educational_teacher_staff.FieldName.MAJOR].Ordinal].ToString(), personnel_id = personnelid }); } else { result.Add(new Personnel_educational { //Main user table data user_id = Convert.ToInt32(item.ItemArray[data.Columns[User_list.FieldName.USER_ID].Ordinal]), email = item.ItemArray[data.Columns[User_list.FieldName.EMAIL].Ordinal].ToString(), file_name_pic = MiscUtils.GatherProfilePicturePath(item.ItemArray[data.Columns[User_list.FieldName.FILE_NAME_PIC].Ordinal].ToString()), tel = item.ItemArray[data.Columns[User_list.FieldName.TEL].Ordinal].ToString(), user_type = item.ItemArray[data.Columns[User_type.FieldName.USER_TYPE_NAME].Ordinal].ToString(), fullname = item.ItemArray[data.Columns[Teacher.FieldName.T_PRENAME].Ordinal].ToString() + item.ItemArray[data.Columns[Teacher.FieldName.T_NAME].Ordinal].ToString() }); } } data.Dispose(); } else if (!res.IsClosed) { if (!res.NextResult()) { break; } } } while (!res.IsClosed); res.Close(); } catch (Exception ex) { //Handle error from sql execution return(ex.Message); } finally { //Whether it success or not it must close connection in order to end block d.SQLDisconnect(); } return(result); }
private static void AddNewHarras(Ability item) { MyAbilities.OffensiveAbilities.Add(NameManager.Name(item) + "harras", item); if (!Harrases.HarrasesTogglerCreated) { Harrases.HarrasesTogglerCreated = true; MainMenu.Menu.AddItem( new MenuItem("harrasesToggler", "Harrases:").SetValue( new AbilityToggler(new Dictionary <string, bool>()))); MainMenu.Menu.Item("harrasesToggler").GetValue <AbilityToggler>().Add(NameManager.Name(item)); MainMenu.AbilitiesMenu.AddSubMenu(Harrases.HarrasesMenu); } else { MainMenu.Menu.Item("harrasesToggler").GetValue <AbilityToggler>().Add(NameManager.Name(item)); } var menu = HarrasMenu.Create(NameManager.Name(item)); Harrases.HarrasesMenuDictionary.Add(NameManager.Name(item), menu); Harrases.HarrasesMenu.AddSubMenu(menu); }
public async Task <object> SelectPersonnelIdAndTName(string curri_id, int selectmode) //selectmode 0 : only teacher and staff,1 for all { DBConnector d = new DBConnector(); if (!d.SQLConnect()) { return(WebApiApplication.CONNECTDBERRSTRING); } List <Personnel_with_t_name> result = new List <Personnel_with_t_name>(); if (selectmode == 0) { d.iCommand.CommandText = string.Format("select {4}.{0},{1},{2},{3} from {4},{5},{9} " + "where {6} = '{7}' " + "and {4}.{0} = {5}.{8} " + "and ({4}.{10} = 1 or {4}.{10} = 2) " + /*teacher = 1,staff = 2*/ "and {4}.{10} = {9}.{11}", User_list.FieldName.USER_ID, User_list.FieldName.T_PRENAME, Student.FieldName.T_NAME, User_type.FieldName.USER_TYPE_NAME, User_list.FieldName.TABLE_NAME, User_curriculum.FieldName.TABLE_NAME, Cu_curriculum.FieldName.CURRI_ID, curri_id, User_curriculum.FieldName.USER_ID, User_type.FieldName.TABLE_NAME, User_list.FieldName.USER_TYPE_ID, User_type.FieldName.USER_TYPE_ID ); } else { if (curri_id != "999") { d.iCommand.CommandText = string.Format("select {4}.{0},{1},{2},{3} from {4},{5},{9} " + "where {6} = '{7}' " + "and {4}.{0} = {5}.{8} and {9}.{10} = {4}.{11} ", User_list.FieldName.USER_ID, User_list.FieldName.T_PRENAME, Student.FieldName.T_NAME, User_type.FieldName.USER_TYPE_NAME, User_list.FieldName.TABLE_NAME, User_curriculum.FieldName.TABLE_NAME, Cu_curriculum.FieldName.CURRI_ID, curri_id, User_curriculum.FieldName.USER_ID, User_type.FieldName.TABLE_NAME, User_type.FieldName.USER_TYPE_ID, User_list.FieldName.USER_TYPE_ID); } else { //curri_id = 999 => select the person who didn't in any curriculum d.iCommand.CommandText = string.Format("select {0},{1},{2},{3} from {4},{5} " + "where not exists(select * from {6} where {6}.{7} = {4}.{0}) and {4}.{8} != 7 and {4}.{8} = {5}.{9} ", User_list.FieldName.USER_ID, User_list.FieldName.T_PRENAME, Student.FieldName.T_NAME, User_type.FieldName.USER_TYPE_NAME, User_list.FieldName.TABLE_NAME, User_type.FieldName.TABLE_NAME, User_curriculum.FieldName.TABLE_NAME, User_curriculum.FieldName.USER_ID, User_list.FieldName.USER_TYPE_ID, User_type.FieldName.USER_TYPE_ID ); } } try { System.Data.Common.DbDataReader res = await d.iCommand.ExecuteReaderAsync(); if (res.HasRows) { DataTable data = new DataTable(); data.Load(res); foreach (DataRow item in data.Rows) { if (item.ItemArray[data.Columns[User_type.FieldName.USER_TYPE_NAME].Ordinal].ToString() == "อาจารย์") { result.Add(new Personnel_with_t_name { user_id = Convert.ToInt32(item.ItemArray[data.Columns[USER_ID].Ordinal]), t_name = NameManager.GatherPreName(item.ItemArray[data.Columns[Teacher.FieldName.T_PRENAME].Ordinal].ToString()) + item.ItemArray[data.Columns[Teacher.FieldName.T_NAME].Ordinal].ToString() }); } else { result.Add(new Personnel_with_t_name { user_id = Convert.ToInt32(item.ItemArray[data.Columns[USER_ID].Ordinal]), t_name = item.ItemArray[data.Columns[Teacher.FieldName.T_PRENAME].Ordinal].ToString() + item.ItemArray[data.Columns[Teacher.FieldName.T_NAME].Ordinal].ToString() }); } } data.Dispose(); } else { //Reserved for return error string } res.Close(); } catch (Exception ex) { //Handle error from sql execution return(ex.Message); } finally { //Whether it success or not it must close connection in order to end block d.SQLDisconnect(); } return(result); }
private static void AddNewSpecial(Ability item, AbilityInfo data) { MyAbilities.OffensiveAbilities.Add(NameManager.Name(item) + "special", item); if (!Specials.SpecialsTogglerCreated) { Specials.SpecialsTogglerCreated = true; MainMenu.Menu.AddItem( new MenuItem("specialsToggler", "Specials:").SetValue( new AbilityToggler(new Dictionary <string, bool>()))); MainMenu.Menu.Item("specialsToggler").GetValue <AbilityToggler>().Add(NameManager.Name(item)); MainMenu.AbilitiesMenu.AddSubMenu(Specials.SpecialsMenu); } else { MainMenu.Menu.Item("specialsToggler").GetValue <AbilityToggler>().Add(NameManager.Name(item)); } var menu = SpecialMenu.Create(NameManager.Name(item), item); Specials.SpecialsMenuDictionary.Add(NameManager.Name(item), menu); Specials.SpecialsMenu.AddSubMenu(menu); }
public static void UpdateDamage(Hero[] enemyHeroes, Hero[] allyHeroes) { if (!Utils.SleepCheck("GankDamage.Update")) { return; } if (!OnUpdateChecks.CanUpdate() || !MainMenu.GankDamageMenu.Item("enableGankDamage").GetValue <bool>()) { return; } enemies = enemyHeroes; allies = allyHeroes; Utils.Sleep(1000, "GankDamage.Update"); if (MainMenu.GankDamageMenu.Item("enableGankDamageEnemies").GetValue <bool>()) { foreach (var enemyHero in enemyHeroes) { var hero = enemyHero; var heroName = NameManager.Name(hero); if (!IncomingDamages.ContainsKey(heroName)) { IncomingDamages.Add(heroName, 0); } var tempDmg = 0f; foreach (var allyHero in allyHeroes.Where( x => AllyHeroes.AbilityDictionary.ContainsKey(NameManager.Name(x)) && AllyHeroes.ItemDictionary.ContainsKey(NameManager.Name(x)) && x.Distance2D(hero) < 1700)) { var abilities = AllyHeroes.AbilityDictionary[NameManager.Name(allyHero)]; var items = AllyHeroes.ItemDictionary[NameManager.Name(allyHero)].Where(x => x.IsValid).ToList(); var list = new List <Ability>(abilities.Count + items.Count); list.AddRange(abilities); list.AddRange(items); tempDmg += list.Where(x => x.CanBeCasted()) .Sum(ability => AbilityDamage.CalculateDamage(ability, allyHero, hero)); } IncomingDamages[heroName] = tempDmg; } } if (!MainMenu.GankDamageMenu.Item("enableGankDamageAllies").GetValue <bool>()) { return; } foreach (var allyHero in allyHeroes) { var hero = allyHero; var heroName = NameManager.Name(hero); if (!IncomingDamages.ContainsKey(heroName)) { IncomingDamages.Add(heroName, 0); } var tempDmg = 0f; foreach (var enemyHero in enemyHeroes.Where( x => EnemyHeroes.AbilityDictionary.ContainsKey(NameManager.Name(x)) && EnemyHeroes.ItemDictionary.ContainsKey(NameManager.Name(x)) && x.Distance2D(hero) < 1700)) { var abilities = EnemyHeroes.AbilityDictionary[NameManager.Name(enemyHero)]; var items = EnemyHeroes.ItemDictionary[NameManager.Name(enemyHero)].Where(x => x.IsValid).ToList(); var list = new List <Ability>(abilities.Count + items.Count); list.AddRange(abilities); list.AddRange(items); tempDmg += list.Where(x => x.CanBeCasted()) .Sum(ability => AbilityDamage.CalculateDamage(ability, enemyHero, hero)); } IncomingDamages[heroName] = tempDmg; } }
public static void AddRange(Ability ability, float crange = 0) { var name = NameManager.Name(ability); if (RangesDictionary.ContainsKey(ability)) { return; } var castrange = crange; if (castrange == 0) { castrange = ability.GetCastRange(); } if (!ability.IsAbilityBehavior(AbilityBehavior.NoTarget)) { castrange += Math.Max(castrange / 9, 80); } else { castrange += Math.Max(castrange / 7, 40); } //var list = new[] { "selected_ring", "drag_selected_ring", "hero_underglow" }; var menu = new Menu(name, name + "range", false, name); menu.AddItem(new MenuItem(name + "rangeenable", "Show range")).SetValue(false).ValueChanged += (sender, args) => { RangeVisible(ability, args.GetNewValue <bool>()); }; menu.AddItem(new MenuItem(name + "red", "Red:")) .SetFontStyle(fontColor: Color.Red) .SetValue(new Slider(100, 0, 255)) .ValueChanged += (sender, args) => { if (RangesDictionary.ContainsKey(ability)) { RangesDictionary[ability].SetControlPoint( 1, new Vector3( args.GetNewValue <Slider>().Value, menu.Item(name + "green").GetValue <Slider>().Value, menu.Item(name + "blue").GetValue <Slider>().Value)); } }; menu.AddItem(new MenuItem(name + "green", "Green:")) .SetFontStyle(fontColor: Color.Green) .SetValue(new Slider(100, 0, 255)) .ValueChanged += (sender, args) => { if (RangesDictionary.ContainsKey(ability)) { RangesDictionary[ability].SetControlPoint( 1, new Vector3( menu.Item(name + "red").GetValue <Slider>().Value, args.GetNewValue <Slider>().Value, menu.Item(name + "blue").GetValue <Slider>().Value)); } }; menu.AddItem(new MenuItem(name + "blue", "Blue:")) .SetFontStyle(fontColor: Color.Blue) .SetValue(new Slider(100, 0, 255)) .ValueChanged += (sender, args) => { if (RangesDictionary.ContainsKey(ability)) { RangesDictionary[ability].SetControlPoint( 1, new Vector3( menu.Item(name + "red").GetValue <Slider>().Value, menu.Item(name + "green").GetValue <Slider>().Value, args.GetNewValue <Slider>().Value)); } }; MainMenu.RangeDrawingMenu.AddSubMenu(menu); var range = AbilityMain.Me.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf"); if (menu.Item(name + "rangeenable").GetValue <bool>()) { range.SetControlPoint( 1, new Vector3( menu.Item(name + "red").GetValue <Slider>().Value, menu.Item(name + "green").GetValue <Slider>().Value, menu.Item(name + "blue").GetValue <Slider>().Value)); range.SetControlPoint(2, new Vector3(castrange, 255, 0)); range.SetControlPoint(3, new Vector3(10, 0, 0)); } else { range.Dispose(); } RangesValueDictionary.Add(name, castrange); RangesDictionary.Add(ability, range); }
public void Visit(Plan p) { nameManager = new NameManager(); Visit(p, new Collection<int>()); }
public static void OnUpdate(EventArgs args) { if (!OnUpdateChecks.CanUpdate()) { return; } if (!Utils.SleepCheck("DamageUpdate") || !Utils.SleepCheck("GlobalCasting")) { return; } Utils.Sleep(100, "DamageUpdate"); foreach (var hero in new List <Hero>(EnemyHeroes.Heroes).Where(x => x != null && x.IsValid && x.IsAlive && x.IsVisible)) { var heroName = NameManager.Name(hero); var heroHandle = hero.Handle; if (Utils.SleepCheck("calculate")) { var enumerable = MyAbilities.OffensiveAbilities.Where( ability => ability.Value.IsValid && ability.Key.Contains("nuke") && Nukes.NukesMenuDictionary[NameManager.Name(ability.Value)].Item( NameManager.Name(ability.Value) + "herotoggler") .GetValue <HeroToggler>() .IsEnabled(heroName) && MainMenu.Menu.Item("nukesToggler") .GetValue <AbilityToggler>() .IsEnabled(NameManager.Name(ability.Value)) && Nukes.NukesMenuDictionary[NameManager.Name(ability.Value)].Item( NameManager.Name(ability.Value) + "combo").GetValue <bool>()) .OrderBy(x => ComboOrder.GetDamageOrder(x.Value)) .ToList(); float[] intakenDamage = { 0 }; var minusMagicResistancePerc = 0f; var tempList = new List <Ability>(); float[] outtakenDamage = { 0 }; var manaLeft = AbilityMain.Me.Mana; foreach (var ability in enumerable.Where( ability => (ability.Value.CanBeCasted() || ability.Value.IsInAbilityPhase || (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_Invoker && MyAbilities.InvokerInvoke.CanBeCasted() && ability.Value.Cooldown <= 0.5 && ability.Value.ManaCost + MyAbilities.InvokerInvoke.ManaCost < manaLeft))) .Select(data => data.Value)) { var name = NameManager.Name(ability); if (manaLeft < ability.ManaCost || manaLeft < Nukes.NukesMenuDictionary[name].Item(name + "minManaCheck").GetValue <Slider>().Value) { continue; } manaLeft -= ability.ManaCost; if (DamageAmps.IsDamageAmp(ability)) { minusMagicResistancePerc += DamageAmps.DamageAmpValue(ability); } float tempdmg; if (ability.CanHit(hero, MyHeroInfo.Position)) { tempdmg = AbilityDamage.CalculateDamage( ability, AbilityMain.Me, hero, minusHealth: intakenDamage[0] + outtakenDamage[0], minusMagicResistancePerc: minusMagicResistancePerc); intakenDamage[0] += tempdmg; tempList.Add(ability); if (!Dictionaries.InDamageDictionary.ContainsKey(heroHandle)) { Dictionaries.InDamageDictionary.Add(heroHandle, intakenDamage[0]); } else { Dictionaries.InDamageDictionary[heroHandle] = intakenDamage[0]; } if (intakenDamage[0] >= hero.Health) { MyAbilities.NukesCombo = tempList; AbilityMain.DealtDamage = 0; break; } } else { tempdmg = AbilityDamage.CalculateDamage( ability, AbilityMain.Me, hero, minusHealth: outtakenDamage[0] + intakenDamage[0], minusMagicResistancePerc: minusMagicResistancePerc); outtakenDamage[0] += tempdmg; } } if (!Dictionaries.OutDamageDictionary.ContainsKey(heroHandle)) { Dictionaries.OutDamageDictionary.Add(heroHandle, outtakenDamage[0]); } else { Dictionaries.OutDamageDictionary[heroHandle] = outtakenDamage[0]; } if (!Dictionaries.InDamageDictionary.ContainsKey(heroHandle)) { Dictionaries.InDamageDictionary.Add(heroHandle, intakenDamage[0]); } else { Dictionaries.InDamageDictionary[heroHandle] = intakenDamage[0]; } } float dmg; if (!Dictionaries.InDamageDictionary.TryGetValue(heroHandle, out dmg)) { dmg = 0; } float outdmg; if (!Dictionaries.OutDamageDictionary.TryGetValue(heroHandle, out outdmg)) { outdmg = 0; } var hp = Math.Max(hero.Health - dmg, 0); var lhp = Math.Max(hp - outdmg, 0); float hitDmg; if (!Dictionaries.HitDamageDictionary.TryGetValue(heroHandle, out hitDmg)) { hitDmg = hero.DamageTaken( MyDamage.BonusDamage + MyDamage.MinDamage, DamageType.Physical, AbilityMain.Me); Dictionaries.HitDamageDictionary.Add(heroHandle, hitDmg); } else { hitDmg = hero.DamageTaken( MyDamage.BonusDamage + MyDamage.MinDamage, DamageType.Physical, AbilityMain.Me); Dictionaries.HitDamageDictionary[heroHandle] = hitDmg; Utils.Sleep(250, heroHandle + "updatehitdamage"); } var currentHits = lhp / hitDmg; double hits; if (!Dictionaries.HitsDictionary.TryGetValue(heroHandle.ToString(), out hits)) { hits = Math.Ceiling( (currentHits * MyHeroInfo.AttackRate() * hero.HealthRegeneration + lhp) / hitDmg); Dictionaries.HitsDictionary.Add(heroHandle.ToString(), hits); } else if (Utils.SleepCheck(heroHandle + "updatehits")) { hits = Math.Ceiling( (currentHits * MyHeroInfo.AttackRate() * hero.HealthRegeneration + lhp) / hitDmg); Dictionaries.HitsDictionary[heroHandle.ToString()] = hits; Utils.Sleep(250, heroHandle + "updatehits"); } } }