using RichCreator.Utility.InputControl;
using RichCreator.Utility.Structs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static RichCreator.Utilitys.AttackRectangle;
namespace RichCreator.Jobs.StateMachines
{
///
/// 技能信息
///
public class SkillInfo
{
///
/// 技能列表
///
private static Dictionary Skills = new Dictionary() {
{ HIDCode.Q,new SkillInfo (){ Key=HIDCode.Q,Range=new ZTSize (700,200),WaitTime=9, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="朔风牵引"} },
{ HIDCode.W,new SkillInfo (){ Key=HIDCode.W,Range=new ZTSize (620,240),WaitTime=45, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="风卷残云"} },
{ HIDCode.E,new SkillInfo (){ Key=HIDCode.E,Range=new ZTSize (1280,200),WaitTime=12.6f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="双翼风刃"} },
{ HIDCode.R,new SkillInfo (){ Key=HIDCode.R,Range=new ZTSize (400,200),WaitTime=14.4f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=600,SkillName="风暴之眼"} },
{ HIDCode.T,new SkillInfo (){ Key=HIDCode.T,Range=new ZTSize (120,300),WaitTime=40.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="九霄风雷"} },
{ HIDCode.Y,new SkillInfo (){ Key=HIDCode.Y,Range=new ZTSize (1280,720),WaitTime=145, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="万象风龙阵"} },
{ HIDCode.A,new SkillInfo (){ Key=HIDCode.A,Range=new ZTSize (240,148),WaitTime=7.7f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=600,SkillName="风鸣冲击"} },
{ HIDCode.S,new SkillInfo (){ Key=HIDCode.S,Range=new ZTSize (180,430),WaitTime=22.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="真空旋风破"} },
{ HIDCode.D,new SkillInfo (){ Key=HIDCode.D,Range=new ZTSize (1280,240),WaitTime=6.3f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=500,SkillName="游离之风"} },
{ HIDCode.F,new SkillInfo (){ Key=HIDCode.F,Range=new ZTSize (370,224),WaitTime=40.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="风暴之拳"} },
{ HIDCode.G,new SkillInfo (){ Key=HIDCode.G,Range=new ZTSize (730,218),WaitTime=36, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="游龙惊风破"} },
{ HIDCode.H,new SkillInfo (){ Key=HIDCode.H,Range=new ZTSize (1280,720),WaitTime=180, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="无限风域"} },
{ HIDCode.X,new SkillInfo (){ Key=HIDCode.X,Range=new ZTSize (200,170),WaitTime=0.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=500,SkillName="普通攻击"} },
{ HIDCode.Space,new SkillInfo (){ Key=HIDCode.Space,Range=new ZTSize (1280,720),WaitTime=300, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="技能加成"} }
};
///
/// 获取技能
///
///
///
public static SkillInfo GetSkillInfo(HIDCode code)
{
if (Skills.ContainsKey(code))
{
return Skills[code];
}
return null;
}
///
/// 技能触发键
///
public HIDCode Key;
///
/// 攻击范围
///
public ZTSize Range;
///
/// 释放后需要等多少秒
///
public float WaitTime;
///
/// 技能名称
///
public string SkillName;
///
/// 技能释放时长
///
public float ReleaseTime { get; set; }
///
/// 技能释放锚点
///
public SkillAnchor ReleaseAnchor { get; set; }
///
/// 技能释放锚点编移
/// 靠近为正,远离为负
/// 上负,下正
/// 锚点为中间时无效
///
public ZTSize AnchorOffset { get; set; }
///
/// 移动优先级
///
public MovePriority MovePriority { get; set; }
///
/// 技能释放锚点枚举
///
public enum SkillAnchor
{
Side,
Center
}
}
}