/*private static void HandleLogin(LoginEventArgs e) * { * if (e == null || e.Mobile == null || !(e.Mobile is PlayerMobile)) * { * return; * } * * CheckProgress<LoginConquest>((PlayerMobile)e.Mobile, e); * CheckProgress<AccountAgeConquest>((PlayerMobile)e.Mobile, e.Mobile.Account); * } * * private static void HandleLogout(LogoutEventArgs e) * { * if (e != null && e.Mobile != null && e.Mobile is PlayerMobile) * { * CheckProgress<LogoutConquest>((PlayerMobile)e.Mobile, e); * } * }*/ public static void HandleMovement(MovementConquestContainer e) { if (e != null && e.Mobile != null && e.Mobile is PlayerMobile) { CheckProgress <MoveConquest>((PlayerMobile)e.Mobile, e); CheckProgress <LocationConquest>((PlayerMobile)e.Mobile, e); } }
public static MovementConquestContainer Create(Mobile mobile, Direction dir) { MovementConquestContainer args; if (m_Pool.Count > 0) { args = m_Pool.Dequeue(); args.m_Mobile = mobile; args.m_Direction = dir; args.m_Blocked = false; } else { args = new MovementConquestContainer(mobile, dir); } return args; }
public static MovementConquestContainer Create(Mobile mobile, Direction dir) { MovementConquestContainer args; if (m_Pool.Count > 0) { args = m_Pool.Dequeue(); args.m_Mobile = mobile; args.m_Direction = dir; args.m_Blocked = false; } else { args = new MovementConquestContainer(mobile, dir); } return(args); }
/*private static void HandleLogin(LoginEventArgs e) { if (e == null || e.Mobile == null || !(e.Mobile is PlayerMobile)) { return; } CheckProgress<LoginConquest>((PlayerMobile)e.Mobile, e); CheckProgress<AccountAgeConquest>((PlayerMobile)e.Mobile, e.Mobile.Account); } private static void HandleLogout(LogoutEventArgs e) { if (e != null && e.Mobile != null && e.Mobile is PlayerMobile) { CheckProgress<LogoutConquest>((PlayerMobile)e.Mobile, e); } }*/ public static void HandleMovement(MovementConquestContainer e) { if (e != null && e.Mobile != null && e.Mobile is PlayerMobile) { CheckProgress<MoveConquest>((PlayerMobile) e.Mobile, e); CheckProgress<LocationConquest>((PlayerMobile) e.Mobile, e); } }
protected virtual int GetProgress(ConquestState state, MovementConquestContainer args) { if (state.User == null) return 0; if (args == null || args.Blocked) { return 0; } if (Map != null && Map != Map.Internal && (args.Mobile.Map == null || args.Mobile.Map != Map)) { _DirectionCache.Remove(args.Mobile); if (MapChangeReset) { return -state.Progress; } return 0; } if (!String.IsNullOrWhiteSpace(Region) && (args.Mobile.Region == null || !args.Mobile.Region.IsPartOf(Region))) { _DirectionCache.Remove(args.Mobile); if (RegionChangeReset) { return -state.Progress; } return 0; } bool running = args.Direction.HasFlag(Direction.Running); if ((WalkOnly && running) || (RunOnly && !running)) { _DirectionCache.Remove(args.Mobile); if (SpeedChangeReset) { return -state.Progress; } return 0; } if (!_DirectionCache.ContainsKey(args.Mobile)) { _DirectionCache.Add(args.Mobile, args.Direction); } else if ((_DirectionCache[args.Mobile] & Direction.Running) != (args.Direction & Direction.Running)) { if (DirectionChangeReset) { _DirectionCache.Remove(args.Mobile); return -state.Progress; } _DirectionCache[args.Mobile] = args.Direction; } return 1; }
protected virtual int GetProgress(ConquestState state, MovementConquestContainer args) { if (state.User == null) { return(0); } if (args == null || args.Blocked) { return(0); } if (Map != null && Map != Map.Internal && (args.Mobile.Map == null || args.Mobile.Map != Map)) { _DirectionCache.Remove(args.Mobile); if (MapChangeReset) { return(-state.Progress); } return(0); } if (!String.IsNullOrWhiteSpace(Region) && (args.Mobile.Region == null || !args.Mobile.Region.IsPartOf(Region))) { _DirectionCache.Remove(args.Mobile); if (RegionChangeReset) { return(-state.Progress); } return(0); } bool running = args.Direction.HasFlag(Direction.Running); if ((WalkOnly && running) || (RunOnly && !running)) { _DirectionCache.Remove(args.Mobile); if (SpeedChangeReset) { return(-state.Progress); } return(0); } if (!_DirectionCache.ContainsKey(args.Mobile)) { _DirectionCache.Add(args.Mobile, args.Direction); } else if ((_DirectionCache[args.Mobile] & Direction.Running) != (args.Direction & Direction.Running)) { if (DirectionChangeReset) { _DirectionCache.Remove(args.Mobile); return(-state.Progress); } _DirectionCache[args.Mobile] = args.Direction; } return(1); }