Example #1
0
    protected override void onSkillTriggerEnter(Collider _collider)
    {
        base.onSkillTriggerEnter(_collider);

        var bsa = _collider.GetComponentInParent <BattleStageActor> ();

        if (bsa != null)
        {
                        #if EditorDebug
            sb.Append("技能 :[" + skillMapId + "]" + "碰撞到目标  [" + bsa.actordata.logName + "] \n");
                        #endif

            bool ispass = SkillFilter.SkillBasicFilter(bsa.actordata, skillData.attackerData, skillData.compareContent);
            if (ispass)
            {
                bsa.buffAndSkill.OnSkillEnter(skillData);
                setState(fireFinish_state);
            }

                        #if EditorDebug
            sb.Append(ispass ? "命中有效" : "命中无效");
            EditorDebug.Log(sb.ToString());
                        #endif
        }
    }
Example #2
0
    public BattleStageActor SearchTarget()
    {
        var allActors = actor.threat.GetAllTargets();
        var target    = SkillFilter.SimpleFilter(allActors, actor, this);

        return(target);
    }
        public IEnumerable <Category> Get(SkillFilter <int?> filter)
        {
            try
            {
                var query = Db.Set <UserSkill>().AsQueryable();
                if (filter.UserId.HasValue)
                {
                    query = query.Where(it => it.UserId == filter.UserId);
                }

                if (!string.IsNullOrEmpty(filter.Code))
                {
                    query = query.Where(it => it.Skill.Code.Equals(filter.Code));
                }

                query = filter.Sord.Equals("desc", StringComparison.OrdinalIgnoreCase)
                ? query.OrderByDescending(filter.Sidx)
                : query.OrderBy(filter.Sidx);

                return(query.Include(it => it.Skill).Select(it => it.Skill).Skip(filter.Rows * (filter.Page - 1))
                       .Take(filter.Rows)
                       .Distinct());
            }
            catch (Exception ex)
            {
                LogEventManager.Logger.Error(ex.Message, ex);
                throw;
            }
        }
Example #4
0
    public BattleSkillListMenu(SkillFilter filter, string id, float spcost, float hpcost)
    {
        m_ID = id;

        foreach (Skill skill in filter)
        {
            Add(new SkillOption(skill, spcost, hpcost));
        }
    }
Example #5
0
        public void Execute_InvalidSkillByLevel_NoMatches()
        {
            var recipes = new[] { TestRecipes.Brazier };
            var skills  = new[] { new Skill("Smelting", 0) };

            var filter  = new SkillFilter(skills);
            var matches = filter.Execute("Brazier", recipes);

            Assert.Empty(matches);
        }
Example #6
0
        public void Execute_InvalidSkillByName_NoMatches()
        {
            var recipes = new[] { TestRecipes.IronBar };
            var skills  = new[] { new Skill("Advanced Smelting", 1) };

            var filter  = new SkillFilter(skills);
            var matches = filter.Execute("Iron Bar", recipes);

            Assert.Empty(matches);
        }
Example #7
0
        public void Execute_ValidSkill_Matches()
        {
            var recipes = new[] { TestRecipes.IronBar };
            var skills  = new[] { new Skill("Smelting", 1) };

            var filter  = new SkillFilter(skills);
            var matches = filter.Execute("Iron Bar", recipes);

            Assert.Equal(recipes, matches);
        }
Example #8
0
    /// <summary>
    /// 更新满足条件的仇恨目标
    /// </summary>
    public void UpdateThreatDataBySeekDistance()
    {
        var actors = SkillFilter.BasicFilter(stageActor);

        for (int i = 0; i < actors.Count; i++)
        {
            if (stageActor.DistanceLessLength(actors [i], stageActor.actordata.GetValue(Tags.SeekDistance)) &&
                !stageActor.threat.CheckHasThreat(actors [i]))
            {
                stageActor.threat.AddThreatTarget(actors [i]);
            }
        }
    }
Example #9
0
        public void Execute_SomeFiltersSatisfied_NoMatches()
        {
            var recipes = new[] { TestRecipes.IronBar };

            var filterA = new ProductFilter();
            var filterB = new SkillFilter(new Skill("Smelting", 1));

            var filter = new CompositeFilter(filterA, filterB);

            var matches = filter.Execute("Copper Bar", recipes);

            Assert.Empty(matches);
        }
    public BattleSkillElementListMenu(SkillFilter filter, string id, float spcost, float hpcost)
    {
        m_ID     = id;
        m_SPCost = spcost;
        m_HPCost = hpcost;

        HashSet <string> elements = new HashSet <string>();

        foreach (Skill skill in filter)
        {
            if (!elements.Contains(skill.Element))
            {
                elements.Add(skill.Element);
                Add(new SkillElementOption(skill.Element));
            }
        }
    }
Example #11
0
        public ActionResult Index(SkillFilter filter = null)
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            if (filter != null && filter.SelectedSkillIds != null && filter.SelectedSkillIds.Count() > 0)
            {
                ViewBag.Workers = Manager.GetWorkers().Where(w => filter.SelectedSkillIds.Intersect(w.Skills.Select(s => s.SkillId)).Count() > 0).ToList();
            }
            else
            {
                ViewBag.Workers = Manager.GetWorkers().ToList();
            }
            var choiseList = ChoiceListHelper.Create(Manager.GetSkills(), (t => t.SkillId), (t => t.Code));

            ViewBag.ChoiseList = choiseList;

            return(View(filter));
        }