public override List <CastTarget> GetTargets(Skill skill, Skill.TargetInfo targetInfo)
    {
        var result = new List <CastTarget>();

        //Physics.Sp
        return(result);
    }
示例#2
0
 public void resetCast()
 {
     isCasting       = false;
     activeSkill     = null;
     currentCastTime = 0;
     castTarget      = null;
 }
示例#3
0
    public override void onCast(Unit caster, Skill skill, Skill.TargetInfo target)
    {
        base.onCast(caster, skill, target);

        if (skill is Attack && stunChance_ > Random.Range(0f, 1f))
        {
            target.TargetUnit.stun(stunDuration_);
        }
    }
示例#4
0
 public virtual void Awake()
 {
     unit   = gameObject.GetComponent <Unit>();
     target = new Skill.TargetInfo(unit, null);
     if (mainAttack == null)
     {
         mainAttack = unit.PrimarySkill;
     }
     if (unit.ActiveController == null)
     {
         unit.ActiveController = this;
     }
 }
示例#5
0
    public bool canReachCastTarget(Skill skill, Skill.TargetInfo target)
    {
        float totalReach = Reach + Size + skill.Reach;

        if (target.TargetUnit != null)
        {
            totalReach += target.TargetUnit.Size;
        }

        return
            ((target.Position - transform.position).magnitude
             <=
             totalReach);
    }
示例#6
0
 public void cast(Skill skill, Skill.TargetInfo target)
 {
     if (isCasting && activeSkill == skill && castTarget == target)
     {
         return;
     }
     isMoving = false;
     if (skill.CurrentCooldown == 0)
     {
         isCasting       = true;
         activeSkill     = skill;
         castTarget      = target;
         currentCastTime = 0;
     }
 }
    public override List <CastTarget> GetTargets(Skill skill, Skill.TargetInfo targetInfo)
    {
        if (targetInfo.TargetUnit == null)
        {
            return(null);
        }
        var result = new List <CastTarget>();

        if (skill.CanReachTarget(targetInfo))
        {
            result.Add(new CastTarget(targetInfo.TargetUnit, CastTarget.TypeFlag.Primary));
        }
        else
        {
            targetInfo.TargetUnit.Graphics.showMessage("Miss!");
        }
        return(result);
    }
示例#8
0
 public virtual void onCast(Unit caster, Skill skill, Skill.TargetInfo target)
 {
 }
示例#9
0
 public virtual void Awake()
 {
     unit_   = gameObject.GetComponent <Unit>();
     target_ = new Skill.TargetInfo();
 }
示例#10
0
 public abstract List <CastTarget> GetTargets(Skill skill, Skill.TargetInfo targetInfo);
示例#11
0
 public CastCommand()
 {
     type       = Type.Interrupt;
     skill      = null;
     targetInfo = null;
 }
示例#12
0
 public CastCommand(Skill skill, Skill.TargetInfo targetInfo)
 {
     type            = Type.Cast;
     this.skill      = skill;
     this.targetInfo = new Skill.TargetInfo(targetInfo);
 }
示例#13
0
 public CastEventArgs(CastingState castingState)
 {
     skill      = castingState.ActiveSkill;
     targetInfo = castingState.TargetInfo;
 }
示例#14
0
 public CastEventArgs(Skill skill, Skill.TargetInfo targetInfo)
 {
     this.skill      = skill;
     this.targetInfo = targetInfo;
 }
示例#15
0
 public TryStartResult TryStart(Skill skill, Skill.TargetInfo targetInfo)
 {
     return(TryStart(new CastCommand(skill, targetInfo)));
 }