Пример #1
0
 void StopAction(SkillCaller caller, Skill skill, int time)
 {
     state = TweenState.STOPED;
     gameObject.SetActive(false);
     OnStop(caller, skill, time - startFrame);
     OnClean(caller, skill);
 }
Пример #2
0
 public void CancelAction(SkillCaller caller, Skill skill, int time, int reason)
 {
     state = TweenState.CANCELED;
     gameObject.SetActive(false);
     OnCancel(caller, skill, time, reason);
     OnClean(caller, skill);
 }
Пример #3
0
 protected override void OnStart(SkillCaller caller, Skill skill, int time)
 {
     //Debug.LogFormat ("{0} SkillEffect.OnStart",SkillSimulator.playingTime);
     if (effectBone != null)
     {
         effect.transform.parent = effectBone;
     }
 }
Пример #4
0
    public virtual int GetEndTime(SkillCaller caller, Skill skill)
    {
        if (duration <= 0)
        {
            return(startFrame);
        }

        return(startFrame + duration);
    }
Пример #5
0
    protected override void OnUpdate(SkillCaller caller, Skill skill, int time)
    {
        float factor = 0;

        if (duration > 0)
        {
            factor = ((float)time) / duration;
        }
        path.UpdatePath(transform, factor);
    }
Пример #6
0
    public void ResetSkill(SkillCaller caller)
    {
        state = SkillState.IDLE;
        actions.Clear();
        var skillActions = this.GetComponentsInChildren <SkillTimeTween> ();

        foreach (var action in skillActions)
        {
            action.ResetAction(caller, this);
            actions.Add(action);
        }
        limits.Clear();
    }
Пример #7
0
    public static Skill CreateSkill(SkillCaller caller, string skillID, Example.Skill.SkillType skillType, params Example.Skill.TargetType[] skillTargets)
    {
        var go    = CreateGameObject(caller.transform, "Skill-" + skillID);
        var skill = go.AddComponent <Skill> ();

        GetSkillActionRoot(skill);
        GetSkillParticleRoot(skill);

        skill.skillID     = skillID;
        skill.skillType   = skillType;
        skill.targetTypes = skillTargets;

        return(skill);
    }
Пример #8
0
 public void CancelSkill(SkillCaller caller, int time, int reason)
 {
     state      = SkillState.CANCELED;
     cancelTime = time;
     OnCancel(caller, time, reason);
     foreach (var action in actions)
     {
         if (!action.IsOver)
         {
             action.CancelAction(caller, this, time, reason);
         }
     }
     OnClean();
 }
Пример #9
0
    public static SkillCaller GetSkillCaller(Animator animator)
    {
        SkillCaller caller = null;
        var         go     = GameObject.Find(animator.name + "-Skills");

        if (go == null)
        {
            go = new GameObject(animator.name + "-Skills");
        }
        caller = go.GetComponent <SkillCaller> ();
        if (caller == null)
        {
            caller = go.AddComponent <SkillCaller> ();
        }
        caller.animator = animator;
        return(caller);
    }
Пример #10
0
    protected bool UpdateSkill(SkillCaller caller, int time)
    {
        OnUpdate(caller, time - startTime);
        bool active = false;

        foreach (var action in actions)
        {
            if (!action.IsOver)
            {
                action.Simulate(caller, this, time);
            }
            if (!action.IsOver)
            {
                active = true;
            }
        }
        return(active);
    }
Пример #11
0
    public void Simulate(SkillCaller caller, int time)
    {
        switch (state)
        {
        case SkillState.IDLE:
            StartSkill(caller, time);
            if (!UpdateSkill(caller, time))
            {
                StopSkill(caller, time);
            }
            break;

        case SkillState.STARTED:
            if (!UpdateSkill(caller, time))
            {
                StopSkill(caller, time);
            }
            break;
        }
    }
Пример #12
0
    public virtual void Simulate(SkillCaller caller, Skill skill, int time)
    {
        switch (state)
        {
        case TweenState.IDLE:
            if (time >= startFrame)
            {
                StartAction(caller, skill, time);
            }
            break;

        case TweenState.STARTED:
            OnUpdate(caller, skill, time - startFrame);
            if (duration >= 0 && time >= startFrame + duration)
            {
                StopAction(caller, skill, time);
            }
            break;
        }
    }
Пример #13
0
    public override int GetEndTime(SkillCaller caller, Skill skill)
    {
        if (clipInfo == null)
        {
            var clips = caller.animator.runtimeAnimatorController.animationClips;
            foreach (var clip in clips)
            {
                if (clip.name == actionName)
                {
                    clipInfo = clip;
                    break;
                }
            }
        }

        if (clipInfo != null)
        {
            duration = Mathf.RoundToInt(clipInfo.length * 1000);
        }

        return(startFrame + duration);
    }
Пример #14
0
 protected virtual void OnUpdate(SkillCaller caller, Skill skill, int time)
 {
 }
Пример #15
0
 protected virtual void OnStop(SkillCaller caller, Skill skill, int time)
 {
 }
Пример #16
0
 protected override void OnStart(SkillCaller caller, Skill skill, int time)
 {
     caller.PlayAction(endAction, 0);
 }
Пример #17
0
 protected override void OnClean(SkillCaller caller, Skill skill)
 {
     base.OnClean(caller, skill);
     caller.PlayAction("Stand", 300);
 }
Пример #18
0
 protected override void OnStart(SkillCaller caller, Skill skill, int time)
 {
 }
Пример #19
0
 protected override void OnStart(SkillCaller caller, Skill skill, int time)
 {
     base.OnStart(caller, skill, time);
     skill.AddLimit(this);
 }
Пример #20
0
 protected override void OnStart(SkillCaller caller, Skill skill, int time)
 {
     Debug.LogFormat("{0} {1} Play {2}", SkillSimulator.playingTime, caller.name, actionName);
     caller.PlayAction(actionName, crossFadeTime);
 }
Пример #21
0
 protected override void OnClean(SkillCaller caller, Skill skill)
 {
     base.OnClean(caller, skill);
     skill.RemoveLimit(this);
 }
Пример #22
0
 protected void StartSkill(SkillCaller caller, int time)
 {
     state     = SkillState.STARTED;
     startTime = time;
     OnStart(caller, time);
 }
Пример #23
0
 protected void StopSkill(SkillCaller caller, int time)
 {
     state = SkillState.STOPED;
     OnStop(caller, time);
     OnClean();
 }
Пример #24
0
 protected virtual void OnCancel(SkillCaller caller, Skill skill, int time, int reason)
 {
 }
Пример #25
0
 protected virtual void OnClean(SkillCaller caller, Skill skill)
 {
     gameObject.SetActive(false);
 }
Пример #26
0
 public void ResetAction(SkillCaller caller, Skill skill)
 {
     state = TweenState.IDLE;
     gameObject.SetActive(false);
 }
Пример #27
0
 protected override void OnStart(SkillCaller caller, Skill skill, int time)
 {
     path.StartPath(transform);
 }
Пример #28
0
 void StartAction(SkillCaller caller, Skill skill, int time)
 {
     state = TweenState.STARTED;
     gameObject.SetActive(true);
     OnStart(caller, skill, time - startFrame);
 }
Пример #29
0
 public virtual void CheckHit(SkillCaller caller, Skill skill, int time)
 {
 }
Пример #30
0
 protected virtual void OnStart(SkillCaller caller, int time)
 {
     startTime = time;
 }