Magic_GameClient/sqr/User/ObjectActScript/MonsterObjectFunc/act1/goblin/goblin_state.nut

95 lines
2.6 KiB
Plaintext
Raw Normal View History

2024-06-01 10:52:07 +08:00
/*
文件名: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() {
}
////////受击状态