/// <summary>
    /// 判定技能伤害
    /// </summary>
    public void ProcessSpellAttack(EntityCharacter source, float range, float percent)
    {
        Vector3 position = source.Root.transform.position;

        for (int i = 0; i < _entitys.Count; i++)
        {
            EntityObject entity = _entitys[i];
            if (entity.EntityID == source.EntityID)
            {
                continue;
            }

            if (entity is EntityCharacter)
            {
                EntityCharacter target   = entity as EntityCharacter;
                float           distance = Vector3.Distance(position, target.Root.transform.position);
                distance -= target.CharData.BodyRadius;
                if (distance < range)
                {
                    // 计算最终伤害值
                    double damage = source.CharData.Damage * (percent / 100f) - target.CharData.Armor;
                    if (damage < 1)
                    {
                        damage = 1;
                    }

                    BattleEvent.DamageHurt msg = new BattleEvent.DamageHurt();
                    msg.SourceEntityID = source.EntityID;
                    msg.TargetEntityID = target.EntityID;
                    msg.Damage         = damage;
                    target.HandleEvent(msg);
                }
            }
        }
    }
        public Skill(EntityCharacter owner, int skillID)
        {
            _owner      = owner;
            _skillTable = CfgSkill.Instance.GetConfigTable(skillID);
            _delayTimer = Timer.CreateOnceTimer(_skillTable.Delay);

            // 初始化技能动画
            if (_skillTable.AnimationID > 0)
            {
                _animTable = CfgAnimation.Instance.GetConfigTable(_skillTable.AnimationID);
                //(_animTable.AnimName, CharacterAnimation.EAnimationLayer.SkillLayer, (WrapMode)_animTable.AnimMode);
            }
        }
 public CharacterSkill(EntityCharacter owner)
 {
     _owner = owner;
 }
 public CharacterMove(EntityCharacter owner)
 {
     _owner = owner;
     _trans = owner.Root.transform;
 }
Example #5
0
 public CharacterData(EntityCharacter owner)
 {
     _owner = owner;
 }