Ejemplo n.º 1
0
 public ThreatData(BattleStageActor bsa, float v1)
 {
     target        = bsa;
     initValue     = v1;
     distanceValue = 0;
     hitValue      = 0;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 检查仇恨列表中是否有该目标
 /// </summary>
 /// <returns><c>true</c>, if has threat was checked, <c>false</c> otherwise.</returns>
 /// <param name="bsa">Bsa.</param>
 public bool CheckHasThreat(BattleStageActor bsa)
 {
     if (targets.Contains(bsa))
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 3
0
    /// <summary>
    /// 添加仇恨数据
    /// </summary>
    /// <param name="bsa">Bsa.</param>
    void addThreatData(BattleStageActor bsa)
    {
        Debug.Log("addThreatData  ");

        ThreatData td = new ThreatData(bsa, initThreatValue);

        threats.Add(td);
        targets.Add(bsa);
    }
Ejemplo n.º 4
0
    public WeaponSkill(string totalSkillId, BattleStageActor _actor)
    {
        id          = totalSkillId;
        actor       = _actor;
        weaponSkill = new WeaponContent();
        weaponSkill.skillCondition = "Distance";
        weaponSkill.value          = 8.0f;
        weaponSkill.compareValue   = (CompareValue)4;

        cachedTime = Time.time;
    }
Ejemplo n.º 5
0
    /// <summary>
    /// 添加仇恨目标
    /// </summary>
    /// <param name="bsa">Bsa.</param>
    public void AddThreatTarget(BattleStageActor bsa)
    {
        if (targets.Contains(bsa))
        {
            return;
        }

        addThreatData(bsa);

        sort();
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 基础过滤
    /// </summary>
    /// <returns>The filter.</returns>
    /// <param name="_actor">Actor.</param>
    public static List <BattleStageActor> BasicFilter(BattleStageActor _actor)
    {
        var allActors = BattleStageActorPool.instance.SearchActorsByBoolCallback(delegate(Actor _act) {
            BattleStageActor bsa = (BattleStageActor)_act;
            if (bsa.DifferentCamp(_actor))
            {
                return(true);
            }
            return(false);
        });

        return(allActors);
    }
Ejemplo n.º 7
0
    /// <summary>
    /// 移除仇恨目标
    /// </summary>
    /// <param name="bsa">Bsa.</param>
    public void RemoveThreatTarget(BattleStageActor bsa)
    {
        if (!targets.Contains(bsa))
        {
            return;
        }

        for (int i = 0; i < threats.Count; i++)
        {
            if (threats [i].target == bsa)
            {
                threats.RemoveAt(i);
                break;
            }
        }
        targets.Remove(bsa);

        sort();
    }
Ejemplo n.º 8
0
    /// <summary>
    /// 添加受击仇恨值
    /// </summary>
    public void AddHitValue(BattleStageActor bsa, int v)
    {
        if (!targets.Contains(bsa))
        {
            addThreatData(bsa);
        }

        float v1 = v * 1.0f;

        for (int i = 0; i < threats.Count; i++)
        {
            if (threats [i].target == bsa)
            {
                var tStruct = threats [i];
                tStruct.AddHitValue(v1);
                threats [i] = tStruct;
            }
        }

        sort();
    }
Ejemplo n.º 9
0
    /// <summary>
    /// 条件过滤 (单过滤)
    /// </summary>
    /// <returns>The filter.</returns>
    /// <param name="_actors">Actors.</param>
    /// <param name="_actor">Actor.</param>
    /// <param name="_ws">Ws.</param>
    public static BattleStageActor SimpleFilter(List <BattleStageActor> _actors, BattleStageActor _actor, WeaponSkill _ws)
    {
        BattleStageActor result = null;

        for (int i = 0; i < _actors.Count; i++)
        {
            if (_ws.weaponSkill.skillCondition == Tags.Condition_Dis)
            {
                switch (_ws.weaponSkill.compareValue)
                {
                case CompareValue.enGreaterEquals:
                case CompareValue.enGreater:
                    if (zTools.DistanceZeroY(_actor.transform.position, _actors [i].transform.position) >= _ws.weaponSkill.value)
                    {
                        result = _actors [i];
                    }
                    break;

                case CompareValue.enEquals:
                    if (zTools.DistanceZeroY(_actor.transform.position, _actors [i].transform.position) == _ws.weaponSkill.value)
                    {
                        result = _actors [i];
                    }
                    break;

                case CompareValue.enLess:
                case CompareValue.enLessEquals:
                    if (zTools.DistanceZeroY(_actor.transform.position, _actors [i].transform.position) <= _ws.weaponSkill.value)
                    {
                        result = _actors [i];
                    }
                    break;
                }
            }
        }

        return(result);
    }
Ejemplo n.º 10
0
 public Threat(BattleStageActor bsa)
 {
     stageActor = bsa;
 }