You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.8 KiB
C#
102 lines
2.8 KiB
C#
namespace Game
|
|
{
|
|
public class AIMonster01 : AIEntityBase<AIMonster01>
|
|
{
|
|
protected override void OnCreate()
|
|
{
|
|
Sequence(() =>
|
|
{
|
|
CheckStagger();
|
|
FindTarget();
|
|
Selector(() =>
|
|
{
|
|
CaseLongRange();
|
|
CaseMelee();
|
|
CaseSpectator();
|
|
});
|
|
});
|
|
}
|
|
|
|
private void CaseLongRange()
|
|
{
|
|
Sequence("远程", () =>
|
|
{
|
|
CheckModuleType(EAIModuleType.LongRange);
|
|
Selector(() =>
|
|
{
|
|
Sequence(() =>
|
|
{
|
|
CheckDistance(0, 2);
|
|
CastSkill(3, false);
|
|
});
|
|
Sequence(() =>
|
|
{
|
|
CheckDistance(2, 3);
|
|
Selector(() =>
|
|
{
|
|
CastSkill(2, true);
|
|
MoveAroundTo();
|
|
});
|
|
});
|
|
MoveTo();
|
|
});
|
|
});
|
|
}
|
|
|
|
private void CaseMelee()
|
|
{
|
|
Sequence("近战", () =>
|
|
{
|
|
CheckModuleType(EAIModuleType.Melee);
|
|
Selector(() =>
|
|
{
|
|
Sequence(() =>
|
|
{
|
|
CheckDistance(0, 1);
|
|
Selector(() =>
|
|
{
|
|
CastSkill(0, true);
|
|
CastSkill(3, false);
|
|
});
|
|
});
|
|
Sequence(() =>
|
|
{
|
|
CheckDistance(1, 2);
|
|
MoveTo();
|
|
});
|
|
Selector(() =>
|
|
{
|
|
CastSkill(1, true);
|
|
MoveAroundTo();
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
private void CaseSpectator()
|
|
{
|
|
Sequence("观战", () =>
|
|
{
|
|
CheckModuleType(EAIModuleType.Spectator);
|
|
Selector(() =>
|
|
{
|
|
Sequence(() =>
|
|
{
|
|
CheckDistance(0, 2);
|
|
CastSkill(3, false);
|
|
});
|
|
Sequence(() =>
|
|
{
|
|
CheckDistance(2, 3);
|
|
Selector(() =>
|
|
{
|
|
CastSkill(1, true);
|
|
MoveAround();
|
|
});
|
|
});
|
|
MoveTo();
|
|
});
|
|
});
|
|
}
|
|
}
|
|
} |