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)
            };
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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;
            }
        }
Exemple #7
0
        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);
            }
        }
Exemple #9
0
        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);
            }
        }
Exemple #10
0
 public SymFactory(
     SYMTBL symtable,
     NameManager namemgr) :
     base(symtable, namemgr)
 {
 }
Exemple #11
0
        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);
        }
Exemple #12
0
    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();
    }
Exemple #13
0
        // 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);
                }
            }
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        // 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>();

		}
Exemple #19
0
 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);
        }
Exemple #21
0
        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());
            }
        }
Exemple #23
0
        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(')');
            }
        }
Exemple #24
0
        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());
            }
        }
Exemple #25
0
 private bool IsDisplayableName(Name name)
 {
     return(name != NameManager.GetPredefinedName(PredefinedName.PN_MISSING));
 }
Exemple #26
0
        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());
            }
        }
Exemple #27
0
        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);
        }
Exemple #28
0
        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);
        }
Exemple #29
0
        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);
        }
Exemple #30
0
        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);
        }
Exemple #31
0
        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>());
 }
Exemple #34
0
        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");
                }
            }
        }