示例#1
0
    protected override void Start(float playback_time)
    {
        if (m_ActionData.DelayedApply == true && BattleBase.Instance.IsPause == ePauseType.Pause)
        {
            return;
        }

        base.Start(playback_time);

        eSkillTargetHit hit = target.OnHit();

        if (action_component_prefab == null || hit == eSkillTargetHit.Miss || hit == eSkillTargetHit.MissPosition || hit == eSkillTargetHit.Evade)
        {
            return;
        }

        target.Character.AddAction(action_component_prefab.data.CreateAction(action_component_prefab, target.Character.PlaybackTime, target.Character, IsLighting, ActionScale, hit));
    }
示例#2
0
    public CharacterActionHit(CharacterActionHitComponent component, float playback_time, Character _self, bool is_lighting, float action_scale, eSkillTargetHit hit)
    {
        self        = _self;
        this.m_Name = component.name;
        this.Data   = component.data.Clone(true, self);
        StartTime   = playback_time;

        if (hit == eSkillTargetHit.Hit)
        {
            m_Length = self.PlayAnimation(Data.AnimationName);

            foreach (var effect in Data.effects)
            {
                effect.Play(is_lighting, action_scale);
            }
        }

        if (string.IsNullOrEmpty(Data.TweenName) == false)
        {
            HFX_TweenSystem tween_system = component.GetComponent <HFX_TweenSystem>();
            if (tween_system != null && self.IgnoreTween == false)
            {
                tween_system.Play(Data.TweenName, null, self.GetComponent <HFX_TweenSystem>(), component.data.TweenTarget == eCharacterTweenTarget.Character?self.transform:self.transform.GetChild(0), hit == eSkillTargetHit.Hit?action_scale:0.6f);
            }
        }
    }
示例#3
0
 public CharacterActionHit CreateAction(CharacterActionHitComponent component, float playback_time, Character self, bool is_lighting, float action_scale, eSkillTargetHit hit)
 {
     return(new CharacterActionHit(component, playback_time, self, is_lighting, action_scale, hit));
 }