任何系统设计都需要进行分层设计,首先我们先设计数据层。数据层由抽象基类派生出不同数据类。
这些基类用于存储技能的一些基础数据,后面放置到技能类当中用于逻辑运算
技能系统Data类基类设计:
public class BaseData
{
public BaseData()
{
}
public virtual BaseData Clone()
{
BaseData data = new BaseData();
CopyTo(data);
return data;
}
protected virtual void CopyTo(BaseData destinationData)
{
}
}
ConditionData数据类都是由ConditionData基类派生而出的。
ConditionData基类:
public class ConditionData : BaseData
{
public ConditionData()
{
}
public virtual ConditionType GetDataType()
{
return ConditionType.DEFAULT;
}
public override BaseData Clone()
{
ConditionData data = SkillConditionFactory.CreateSkillConditionData(GetDataType());
CopyTo(data);
return data;
}
}
CommandData基类:
public class CommandData : BaseData
{
public CommandData()
{
}
public virtual CommandType GetDataType()
{
return CommandType.COMMAND_DEFAULT;
}
public override BaseData Clone()
{
CommandData data = CommandFactory.CreateCommandData(GetDataType());
CopyTo(data);
return data;
}
}
TargetPickerData基类:
public class TargetPickerData : BaseData
{
public int TargetMaxNum = 0;
public TargetPickerData()
{
}
public virtual TargetPickerType GetDataType()
{
return TargetPickerType.TARGET_PICKER_DEFAULT;
}
public override BaseData Clone()
{
TargetPickerData data = TargetPickerFactory.CreateTargetPickerData(GetDataType());
CopyTo(data);
return data;
}
protected override void CopyTo(BaseData destinationData)
{
base.CopyTo(destinationData);
TargetPickerData data = (TargetPickerData)destinationData;
data.TargetMaxNum = TargetMaxNum;
}
}