public bool Update(IFightFSM fight, BlockFunc func, int frameindex) { WhenExit exit = (WhenExit)func.intParam0; bool active = false; if (exit == WhenExit.Direct) { active = true; } else if (exit == WhenExit.Jump_Fall && fight.Jump_IsFall()) { active = true; } else if (exit == WhenExit.Jump_Floor && fight.Jump_IsFloor()) { active = true; } else if (exit == WhenExit.Attack && fight.IsHit()) { active = true; } else if (exit == WhenExit.NotAttack && !fight.IsHit()) { active = true; } if (active) { fight.PlaySound(func.strParam0); return(true); } return(false); }
//public bool Init(IFightFSM fight, BlockFunc func) //{ // //fight.Turn(); // return false; //} public bool Update(IFightFSM fight, BlockFunc func, int frameindex) { //限制功能激活时间 //if(func.activeFrameBegin<0||frameindex<func.activeFrameBegin)return false; //if(func.activeFrameEnd>=0&&frameindex>func.activeFrameEnd)return false; if (func.intParam1 == 1 && !fight.IsHit()) //是否攻击中 { // Debug.Log("false"); return(false); } fight.SetRepeatExit(func.strParam1, func.intParam0, func.intParam2); return(false); }
//public bool Init(IFightFSM fight, BlockFunc func) //{ // //fight.Turn(); // return false; //} public bool Update(IFightFSM fight, BlockFunc func, int frameindex) { //限制功能激活时间 //if(func.activeFrameBegin<0||frameindex<func.activeFrameBegin)return false; //if(func.activeFrameEnd>=0&&frameindex>func.activeFrameEnd)return false; if (func.intParam1 == 1 && !fight.IsHit()) //是否攻击中 { // Debug.Log("false"); return(false); } if (fight.TestCmd(func.strParam0, func.vecParam0.x)) { fight.ChangeBlock(func.strParam1, func.intParam0); /* Debug.Log("WantChangeBlock:" + func.strParam1 + "(" + func.intParam0 + ")");*/ return(true); } return(false); }
public bool Update(IFightFSM fight, BlockFunc func, int frameindex) { if (func.intParam3 == 1 && !fight.IsHit()) //是否攻击中 { // Debug.Log("false"); return(false); } bool active = false; int v = fight.GetProp(func.strParam0); int tv = func.intParam1; PropOp op = (PropOp)func.intParam2; if (op == PropOp.Add) { v += tv; fight.SetProp(func.strParam0, v); active = true; } else if (op == PropOp.Set) { v = tv; fight.SetProp(func.strParam0, v); active = true; } else if (op == PropOp.Eat && v >= tv) { v -= tv; fight.SetProp(func.strParam0, v); active = true; } if (active && !string.IsNullOrEmpty(func.strParam1)) { fight.ChangeBlock(func.strParam1, func.intParam0); return(true); } return(false); }