95 lines
2.6 KiB
Plaintext
95 lines
2.6 KiB
Plaintext
|
|
/*
|
||
|
|
文件名:goblin_state.nut
|
||
|
|
路径:User/ObjectActScript/MonsterObjectFunc/act1/goblin/goblin_state.nut
|
||
|
|
创建日期:2024-05-11 09:25
|
||
|
|
文件用途:哥布林的状态
|
||
|
|
*/
|
||
|
|
////////站立状态
|
||
|
|
function GoblinState_Start_Rest() {
|
||
|
|
SetAnimation(0);
|
||
|
|
//初始化自身速度
|
||
|
|
XSpeed = 0;
|
||
|
|
YSpeed = 0;
|
||
|
|
ZSpeed = 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
function GoblinState_Proc_Rest(dt, StateTime) {
|
||
|
|
//如果站立状态持续了三秒
|
||
|
|
// if (StateTime >= 1500) {
|
||
|
|
// //构造移动信息包
|
||
|
|
// StateVar.MovePack <- {};
|
||
|
|
|
||
|
|
// //随机一个方向
|
||
|
|
// StateVar.MovePack.Direction <- MathClass.Rand(0, 1);
|
||
|
|
// //随机一个上下的方向
|
||
|
|
// StateVar.MovePack.Portrait <- MathClass.Rand(2, 3);
|
||
|
|
|
||
|
|
// SetState(BASE_STATE.MOVE);
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
|
||
|
|
function GoblinState_End_Rest() {}
|
||
|
|
////////站立状态
|
||
|
|
|
||
|
|
////////移动状态
|
||
|
|
function GoblinState_Start_Move() {
|
||
|
|
//设置左右的朝向
|
||
|
|
SetDirection(StateVar.MovePack.Direction);
|
||
|
|
//设置移动Ani
|
||
|
|
SetAnimation(1);
|
||
|
|
//计算X轴移动速率
|
||
|
|
StateVar.MovePack.MoveXRate <- Attribute.MoveSpeed / 1000 * 0.5;
|
||
|
|
StateVar.MovePack.MoveYRate <- Attribute.MoveSpeed / 1000 * 0.2 * 0.5;
|
||
|
|
}
|
||
|
|
|
||
|
|
function GoblinState_Proc_Move(dt, StateTime) {
|
||
|
|
// local MoveXValue = StateVar.MovePack.MoveXRate * dt;
|
||
|
|
// local MoveYValue = StateVar.MovePack.MoveYRate * dt;
|
||
|
|
|
||
|
|
// if (StateVar.MovePack.Direction == DIRECTION.LEFT) MoveXValue = -MoveXValue;
|
||
|
|
// if (StateVar.MovePack.Portrait == DIRECTION.UP) MoveYValue = -MoveYValue;
|
||
|
|
// MoveBy(MoveXValue, MoveYValue, 0);
|
||
|
|
|
||
|
|
// if (StateTime >= 1500) {
|
||
|
|
// SetState(BASE_STATE.REST);
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
|
||
|
|
function GoblinState_End_Move() {
|
||
|
|
delete StateVar.MovePack;
|
||
|
|
}
|
||
|
|
////////移动状态
|
||
|
|
|
||
|
|
|
||
|
|
////////受击状态
|
||
|
|
function GoblinState_Start_Damage() {
|
||
|
|
//设置受击Ani
|
||
|
|
SetAnimation(MathClass.Rand(3, 4));
|
||
|
|
//存储开始的速度
|
||
|
|
StateVar.StartXSpeed <- XSpeed;
|
||
|
|
}
|
||
|
|
|
||
|
|
function GoblinState_Proc_Damage(dt, StateTime) {
|
||
|
|
// local MoveXValue = StateVar.MovePack.MoveXRate * dt;
|
||
|
|
// local MoveYValue = StateVar.MovePack.MoveYRate * dt;
|
||
|
|
|
||
|
|
// if (StateVar.MovePack.Direction == DIRECTION.LEFT) MoveXValue = -MoveXValue;
|
||
|
|
// if (StateVar.MovePack.Portrait == DIRECTION.UP) MoveYValue = -MoveYValue;
|
||
|
|
// MoveBy(MoveXValue, MoveYValue, 0);
|
||
|
|
|
||
|
|
// if (StateTime >= 1500) {
|
||
|
|
// SetState(BASE_STATE.REST);
|
||
|
|
// }
|
||
|
|
// Damager.SetXSpeedWithDirection(15);
|
||
|
|
|
||
|
|
SetSpeed(0, MathClass.sq_GetAccel(StateVar.StartXSpeed, 0, StateTime, 200, true));
|
||
|
|
|
||
|
|
if (StateTime >= 200) {
|
||
|
|
SetState(BASE_STATE.REST);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function GoblinState_End_Damage() {
|
||
|
|
|
||
|
|
}
|
||
|
|
////////受击状态
|