Beispiel #1
0
        public virtual void CalculateBehaviourItem(List <BattleBehaviourItem> behaviourItems, float weight)
        {
            hateRecorder.RefreshPoint(true);

            //为damage加成
            for (int i = 0; i < behaviourItems.Count; i++)
            {
                if (behaviourItems[i].behaviourType != BattleBehaviourType.Damage)
                {
                    continue;
                }

                if (!behaviourItems[i].targetBattleUnit.CanAction)
                {
                    continue;
                }

                int   distance       = baseData.hostBattleUnit.mapGrid.Distance(behaviourItems[i].targetBattleUnit.mapGrid);
                float distanceWeight = behaviourSystem.GetDistanceWeight(distance);

                //狂暴系数
                float rageRatio    = rageLevel / EGameConstL.MaxRageLevel;
                float hateAddition = hateRecorder.GetPoint(behaviourItems[i].targetBattleUnit) * weight * distanceWeight * rageRatio;
                float last         = behaviourItems[i].point;
                behaviourItems[i].point = last + hateAddition;
            }
        }