protected void UseItemInCover(E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection, uLink.NetworkMessageInfo info) { if (Owner.BlackBoard.DontUpdate) { return; } #if !DEADZONE_CLIENT if (Owner.IsServer) { ServerAnticheat.ReportUseItemInCover(Owner.NetworkView.owner, gadget, coverPose, coverDirection, info); Owner.NetworkView.RPC("UseItemInCover", uLink.RPCMode.OthersExceptOwner, gadget, coverPose, coverDirection); } #endif Owner.BlackBoard.KeepMotion = false; Owner.BlackBoard.Desires.Gadget = gadget; AgentActionUseItem a = AgentActionFactory.Create(AgentActionFactory.E_Type.UseItem) as AgentActionUseItem; a.CoverDirection = coverDirection; a.CoverPose = coverPose; Owner.BlackBoard.ActionAdd(a); Owner.WorldState.SetWSProperty(E_PropKey.AtTargetPos, true); }
public override string GetCoverAnim(E_CoverAnim type, E_CoverPose pose, E_CoverDirection direction) { switch (type) { case E_CoverAnim.Enter: return(pose == E_CoverPose.Stand ? "CoverStandEnter" : "CoverCrouchEnter"); case E_CoverAnim.Leave: return(pose == E_CoverPose.Stand ? "CoverStandLeave" : "CoverCrouchLeave"); case E_CoverAnim.AimStart: switch (direction) { case E_CoverDirection.Left: return(pose == E_CoverPose.Stand ? "CoverStandAimLeftStart" : "CoverCrouchAimLeftStart"); case E_CoverDirection.Right: return(pose == E_CoverPose.Stand ? "CoverStandAimRightStart" : "CoverCrouchAimRightStart"); default: return(pose == E_CoverPose.Stand ? "" : "CoverCrouchAimCenterStart"); } case E_CoverAnim.AimEnd: switch (direction) { case E_CoverDirection.Left: return(pose == E_CoverPose.Stand ? "CoverStandAimLeftBack" : "CoverCrouchAimLeftBack"); case E_CoverDirection.Right: return(pose == E_CoverPose.Stand ? "CoverStandAimRightBack" : "CoverCrouchAimRightBack"); default: return(pose == E_CoverPose.Stand ? "" : "CoverCrouchAimCenterBack"); } case E_CoverAnim.JumpOver: return("JumpOverToIdle"); case E_CoverAnim.JumpUp: return("CoverCrouchJumpUp"); case E_CoverAnim.LeaveLeft: return(pose == E_CoverPose.Stand ? "CoverStandLeftLeave" : "CoverCrouchLeftLeave"); case E_CoverAnim.LeaveRight: return(pose == E_CoverPose.Stand ? "CoverStandRightLeave" : "CoverCrouchRightLeave"); } throw new System.ArgumentOutOfRangeException(); }
public override string GetGadgetAnim(E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection) { ItemSettings setting = ItemSettingsManager.Instance.Get(gadget); switch (setting.ItemBehaviour) { // FIX IT case E_ItemBehaviour.Throw: if (BlackBoard.Cover) { if (coverDirection == E_CoverDirection.Middle) { return(coverPose == E_CoverPose.Stand ? "" : "CoverCrouchThrowCenter"); } else if (coverDirection == E_CoverDirection.Left) { return(coverPose == E_CoverPose.Stand ? "CoverStandThrowLeft" : "CoverCrouchThrowLeft"); } else if (coverDirection == E_CoverDirection.Right) { return(coverPose == E_CoverPose.Stand ? "CoverStandThrowRight" : "CoverCrouchThrowRight"); } } else { return("RunThrow"); //now we're using the same half-body anim for both idle and move /* if ( BlackBoard.MotionType == E_MotionType.Walk || BlackBoard.MotionType == E_MotionType.Run ) * return "RunThrow"; * else * return "IdleThrow"; */ } break; case E_ItemBehaviour.Place: return("Drop"); } throw new System.ArgumentOutOfRangeException(" Gadget: " + gadget + " behaviour " + setting.ItemBehaviour); }
protected void CoverFireStart(E_CoverPose pose, E_CoverDirection direction, uLink.NetworkMessageInfo info) { if (Owner.BlackBoard.DontUpdate) { return; } #if !DEADZONE_CLIENT if (Owner.IsServer) { ServerAnticheat.ReportCoverFireStart(Owner.NetworkView.owner, pose, direction, info); Owner.NetworkView.RPC("CoverFireStart", uLink.RPCMode.OthersExceptOwner, pose, direction); } #endif if (Owner.IsInCover) { AgentActionCoverFire action = AgentActionFactory.Create(AgentActionFactory.E_Type.CoverFire) as AgentActionCoverFire; action.CoverPose = pose; action.CoverDirection = direction; Owner.BlackBoard.ActionAdd(action); } }
public abstract string GetGadgetAnim(E_ItemID gadget, E_CoverPose pos, E_CoverDirection direction);
public abstract string GetAimAnim(E_AimDirection direction, E_CoverPose pose, E_CoverDirection position);
public abstract string GetCoverAnim(E_CoverAnim type, E_CoverPose pose, E_CoverDirection direction);
public static void ReportUseItemInCover(uLink.NetworkPlayer player, E_ItemID gadget, E_CoverPose coverPose, E_CoverDirection coverDirection, uLink.NetworkMessageInfo info) { }
public static void ReportCoverFireStart(uLink.NetworkPlayer player, E_CoverPose pose, E_CoverDirection direction, uLink.NetworkMessageInfo info) { }
public override string GetAimAnim(E_AimDirection direction, E_CoverPose pose, E_CoverDirection position) { if (BlackBoard.Cover != null) { switch (direction) { case E_AimDirection.Left: switch (position) { case E_CoverDirection.Left: return(pose == E_CoverPose.Stand ? "CoverStandAimLeftMaxL" : "CoverCrouchAimLeftMaxL"); case E_CoverDirection.Right: return(pose == E_CoverPose.Stand ? "CoverStandAimRightMaxL" : "CoverCrouchAimRightMaxL"); default: return(pose == E_CoverPose.Stand ? "" : "CoverCrouchAimCenterMaxL"); } case E_AimDirection.Right: switch (position) { case E_CoverDirection.Left: return(pose == E_CoverPose.Stand ? "CoverStandAimLeftMaxR" : "CoverCrouchAimLeftMaxR"); case E_CoverDirection.Right: return(pose == E_CoverPose.Stand ? "CoverStandAimRightMaxR" : "CoverCrouchAimRightMaxR"); default: return(pose == E_CoverPose.Stand ? "" : "CoverCrouchAimCenterMaxR"); } case E_AimDirection.Up: switch (position) { case E_CoverDirection.Left: return(pose == E_CoverPose.Stand ? "CoverStandAimLeftMaxU" : "CoverCrouchAimLeftMaxU"); case E_CoverDirection.Right: return(pose == E_CoverPose.Stand ? "CoverStandAimRightMaxU" : "CoverCrouchAimRightMaxU"); default: return(pose == E_CoverPose.Stand ? "" : "CoverCrouchAimCenterMaxU"); } case E_AimDirection.Down: switch (position) { case E_CoverDirection.Left: return(pose == E_CoverPose.Stand ? "CoverStandAimLeftMaxD" : "CoverCrouchAimLeftMaxD"); case E_CoverDirection.Right: return(pose == E_CoverPose.Stand ? "CoverStandAimRightMaxD" : "CoverCrouchAimRightMaxD"); default: return(pose == E_CoverPose.Stand ? "" : "CoverCrouchAimCenterMaxD"); } } } else { if (direction == E_AimDirection.Down) { return("AimD"); } else if (direction == E_AimDirection.Up) { return("AimU"); } } throw new System.ArgumentOutOfRangeException(); }