/// <summary> /// 获得实体 /// </summary> /// <returns></returns> private PayMethod EntityGet() { PayMethod entity = new PayMethod(); entity.ID = HTDataID; return(entity); }
public KenoPayTableGump(int PayTable, float[] PayOutTable, int Cost, int Selected) : base(15, 25) { m_PayMethod = (PayMethod)PayTable; Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); int selected = Selected > 20 ? 21 : Selected + 1; int length = selected * 20; AddBackground(0, 0, 250, 105 + length, 9250); string text = String.Format("Ticket Cost: {0}", Cost ); AddLabel(70, 10, 1149, "Keno Payout Table"); AddLabel(15, 30, 2213, text); text = String.Format("Method: {0}", DisplayMethod(m_PayMethod)); AddLabel(15, 45, 2213, text); AddLabel(15, 70, 1149, "# Hit"); AddLabel(180, 70, 1149, "Payout"); for (int i = 0; i < selected; i++) { text = String.Format("{0} of {1}", i, Selected); AddLabel(15, 90 + (i * 20), ( i % 2 == 0 ? 1149 : 1150), text); text = String.Format("{0:##,###,##0}", (int)(Cost * PayOutTable[i])); AddLabel(160, 90 + (i * 20), (i % 2 == 0 ? 1149 : 1150), text); } }
/// <summary> /// 删除 /// </summary> public override void EntityDelete() { PayMethodRule rule = new PayMethodRule(); PayMethod entity = EntityGet(); rule.RDelete(entity); }
public async Task <IActionResult> PutPayMethod(int id, PayMethod payMethod) { if (id != payMethod.Id) { return(BadRequest()); } _context.Entry(payMethod).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PayMethodExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
/// <summary> /// 删除 /// </summary> /// <param name="p_Entity">实体类</param> /// <returns>操作影响的记录行数</returns> public override int Delete(BaseEntity p_Entity) { try { PayMethod MasterEntity = (PayMethod)p_Entity; if (MasterEntity.ID == 0) { return(0); } //删除主表数据 string Sql = ""; Sql = "DELETE FROM Data_PayMethod WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID); //执行 int AffectedRows = 0; if (!this.sqlTransFlag) { AffectedRows = this.ExecuteNonQuery(Sql); } else { AffectedRows = sqlTrans.ExecuteNonQuery(Sql); } return(AffectedRows); } catch (BaseException E) { throw new BaseException(E.Message, E); } catch (Exception E) { throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBDelete), E); } }
public KenoPayTableGump(int PayTable, float[] PayOutTable, int Cost, int Selected) : base(15, 25) { m_PayMethod = (PayMethod)PayTable; Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); int selected = Selected > 20 ? 21 : Selected + 1; int length = selected * 20; AddBackground(0, 0, 250, 105 + length, 9250); string text = String.Format("Ticket Cost: {0}", Cost); AddLabel(70, 10, 1149, "Keno Payout Table"); AddLabel(15, 30, 2213, text); text = String.Format("Method: {0}", DisplayMethod(m_PayMethod)); AddLabel(15, 45, 2213, text); AddLabel(15, 70, 1149, "# Hit"); AddLabel(180, 70, 1149, "Payout"); for (int i = 0; i < selected; i++) { text = String.Format("{0} of {1}", i, Selected); AddLabel(15, 90 + (i * 20), (i % 2 == 0 ? 1149 : 1150), text); text = String.Format("{0:##,###,##0}", (int)(Cost * PayOutTable[i])); AddLabel(160, 90 + (i * 20), (i % 2 == 0 ? 1149 : 1150), text); } }
private string DisplayMethod(PayMethod m_PayTable) { switch (m_PayTable) { case PayMethod.Standard: return "Standard"; case PayMethod.QuickPick: return "QuickPick"; case PayMethod.BottomHalf: return "Bottom"; case PayMethod.TopHalf: return "Top"; case PayMethod.RightHalf: return "Right"; case PayMethod.LeftHalf: return "Left"; case PayMethod.Odd: return "Odd"; case PayMethod.Even: return "Even"; case PayMethod.Edges: return "Edges"; case PayMethod.Kool20: return "Kool 20"; case PayMethod.EZBucks: return "EZ Bucks"; case PayMethod.BancoSpecial: return "Banco Special"; case PayMethod.Millionare10: return "Millionare 10"; } return "Unknown!"; }
/// <summary> /// 修改 /// </summary> /// <param name="p_BE">要修改的实体</param> /// <param name="sqlTrans">事务类</param> public void RUpdate(BaseEntity p_BE, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); PayMethod entity = (PayMethod)p_BE; string sql = "SELECT * FROM Data_PayMethod WHERE Code=" + SysString.ToDBString(entity.Code) + " AND ID<>" + entity.ID; DataTable dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("付款方式编码已存在,请检查后重新输入!"); } sql = "SELECT * FROM Data_PayMethod WHERE Name=" + SysString.ToDBString(entity.Name) + " AND ID<>" + entity.ID; dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("付款方式的名称已存在,请检查后重新输入!"); } PayMethodCtl control = new PayMethodCtl(sqlTrans); control.Update(entity); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
public async Task <ActionResult <PayMethod> > PostPayMethod(PayMethod payMethod) { _context.PayMethods.Add(payMethod); await _context.SaveChangesAsync(); return(CreatedAtAction("GetPayMethod", new { id = payMethod.Id }, payMethod)); }
private void BindMethPay() { PayMethod.DataSource = bllmp.GetAllList(); PayMethod.DataTextField = "meth_pay_name"; PayMethod.DataValueField = "meth_pay_id"; PayMethod.DataBind(); }
/// <summary> /// 修改 /// </summary> public override void EntityUpdate() { PayMethodRule rule = new PayMethodRule(); PayMethod entity = EntityGet(); PayMethodDts[] entityDts = EntityDtsGet(); rule.RUpdate(entity, entityDts); }
/// <summary> /// 新增 /// </summary> public override int EntityAdd() { PayMethodRule rule = new PayMethodRule(); PayMethod entity = EntityGet(); PayMethodDts[] entityDts = EntityDtsGet(); rule.RAdd(entity, entityDts); return(entity.ID); }
public Payment(long id, long orderId, PayMethod method, DateTime paymentDate, decimal amount, String notes) { this.id = id; this.orderId = orderId; this.method = method; this.paymentDate = paymentDate; this.amount = amount; this.notes = notes; }
public IActionResult CreatePayMethod(PayMethod payMethod) { if (ModelState.IsValid) { _db.Add(payMethod); _db.SaveChanges(); } return(View()); }
public HttpResponseMessage Get(int id) { PayMethod item = db.PayMethods.Find(id); if (item == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Request.CreateResponse(HttpStatusCode.OK, item)); }
internal Transaction(string productName, DateTime datePay, decimal price, int digisellerSellId, int digisellerProductId, PayMethod payMethod, string promoCode) { Name = productName; Date = datePay; Amount = price; Price = price; DigisellerSellId = digisellerSellId; DigisellerProductId = digisellerProductId; PayMethodInfo = payMethod; PromoCode = promoCode; }
public HttpResponseMessage Post([FromBody] PayMethod value) { try { db.PayMethods.Add(value); db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
/// <summary> /// 获得实体 /// </summary> /// <returns></returns> private PayMethod EntityGet() { PayMethod entity = new PayMethod(); //entity.ID = HTDataID; entity.SelectByID(); entity.ID = Convert.ToInt32(txtID.Text.Trim()); entity.Code = txtCode.Text.Trim(); //编码 entity.Name = txtName.Text.Trim(); //名称 entity.Remark = txtRemark.Text.Trim(); //备注 return(entity); }
public bool Insert(PayMethod pay) { try { db.PayMethods.Add(pay); db.SaveChanges(); return(true); } catch { return(false); } }
public async Task <IActionResult> CreatePaymentOrder(Guid orderId, PayMethod method) { var openId = HttpContext.Session.GetString("OpenId"); if (string.IsNullOrEmpty(openId)) { return(Json(Url.Action("Index", "Home"))); } var order = _orderSrv.GetProductOrderById(orderId); if (order == null) { return(Json(Url.Action("ErrorOrder", "Home", new { message = "订单不存在" }))); } if (order.OrderType == OrderType.AddCredit && method == PayMethod.Credit) { return(Json(Url.Action("ErrorOrder", "Home", new { message = "该商品不支持积分购买" }))); } // 创建支付订单 var pay = new PaymentOrder(); pay.Amount = (decimal)order.Amount; pay.PayMethod = method; pay.UserId = openId; pay.OrderState = Payment.Models.Enums.OrderState.WaitForPayment; pay.OrderId = order.Id; _paySrv.CreatePaymentOrder(pay); // 积分支付购买商品 if (order.OrderType != OrderType.AddCredit && method == PayMethod.Credit) { var result = await CreditPay(pay); return(Json(Url.Action("WxPayOrder", "WxPay", new { orderid = order.Id, payid = pay.Id }))); } // 微信支付 else if (method == PayMethod.Wechat) { return(Json(Url.Action("WxPayOrder", "WxPay", new { orderid = order.Id, payid = pay.Id }))); } else if (method == PayMethod.Alipay) { return(Json(Url.Action("JsApi", "Alipay", new { orderid = order.Id, payid = pay.Id }))); } else { return(Json(Url.Action("ErrorOrder", "Home", new { message = "支付订单错误" }))); } }
private string TranslatePaymentMethods(PayMethod method) { switch (method) { case PayMethod.Check: return(SettingsNames.CHECK_IN_ARABIC); case PayMethod.BankTransfer: return(SettingsNames.TRANSFER_IN_ARABIC); default: throw new ArgumentOutOfRangeException(nameof(method), method, null); } }
private void DisplaySpecial(PayMethod m_PayTable) { switch (m_PayTable) { case PayMethod.BottomHalf: AddLabel(530, 50, 1149, "Bottom"); break; case PayMethod.TopHalf: AddLabel(530, 50, 1149, "Top"); break; case PayMethod.RightHalf: AddLabel(530, 50, 1149, "Right"); break; case PayMethod.LeftHalf: AddLabel(530, 50, 1149, "Left"); break; case PayMethod.Odd: AddLabel(530, 50, 1149, "Odd"); break; case PayMethod.Even: AddLabel(530, 50, 1149, "Even"); break; case PayMethod.Edges: AddLabel(530, 50, 1149, "Edges"); break; case PayMethod.Kool20: AddLabel(530, 50, 1149, "Kool 20"); break; case PayMethod.EZBucks: AddLabel(530, 50, 1149, "EZ Bucks"); break; case PayMethod.BancoSpecial: AddLabel(530, 50, 1149, "Banco Special"); break; case PayMethod.Millionare10: AddLabel(530, 50, 1149, "Millionare 10"); break; } }
private Payment ParsePaymentFromJsonParameters(dynamic jsonParameters) { double amountPaid = jsonParameters.AmountPaid; PayMethod payMethod = ParsePayMethodFromJsonParameters(jsonParameters.PayMethod); JArray receiptsJsonArray = (JArray)jsonParameters.Receipts; ICollection <Receipt> receipts = ParseReceiptsFromJsonArray(receiptsJsonArray); Payment parsedPayment = new Payment(); parsedPayment.PaymentMethod = payMethod; parsedPayment.Receipts = receipts; parsedPayment.SetPaidWithAndCalculateChange(amountPaid); return(parsedPayment); }
public void Seed() { if (_context.Categories.Any() || _context.PayMethods.Any()) { return; // break execution of seeder } #region Pay Methods PayMethod money = new PayMethod { Id = 1, Name = "Dinheiro", Applicable = "Carteira" }; PayMethod debit = new PayMethod { Id = 2, Name = "Débito", Applicable = "Conta" }; PayMethod credit = new PayMethod { Id = 3, Name = "Crédito", Applicable = "Cartão" }; #endregion #region standard Categories Category salary = new Category { Id = 1, Name = "Salário", Applicable = "in", IsCustom = "no", CreatedAt = DateTime.Now }; Category food = new Category { Id = 2, Name = "Alimentação", Applicable = "out", IsCustom = "no", CreatedAt = DateTime.Now }; Category beauty = new Category { Id = 3, Name = "Beleza", Applicable = "out", IsCustom = "no", CreatedAt = DateTime.Now }; Category education = new Category { Id = 4, Name = "Educação", Applicable = "out", IsCustom = "no", CreatedAt = DateTime.Now }; Category fun = new Category { Id = 5, Name = "Lazer", Applicable = "out", IsCustom = "no", CreatedAt = DateTime.Now }; Category health = new Category { Id = 6, Name = "Saúde", Applicable = "out", IsCustom = "no", CreatedAt = DateTime.Now }; Category transport = new Category { Id = 7, Name = "Transporte", Applicable = "out", IsCustom = "no", CreatedAt = DateTime.Now }; #endregion #region saving data _context.PayMethods.AddRange(money, debit, credit); _context.Categories.AddRange(salary, food, beauty, education, fun, health, transport); _context.SaveChanges(); #endregion }
/// <summary> /// 新增 /// </summary> /// <param name="p_Entity">实体类</param> /// <returns>操作影响的记录行数</returns> public override int AddNew(BaseEntity p_Entity) { try { PayMethod MasterEntity = (PayMethod)p_Entity; if (MasterEntity.ID == 0) { return(0); } //新增主表数据 StringBuilder MasterField = new StringBuilder(); StringBuilder MasterValue = new StringBuilder(); MasterField.Append("INSERT INTO Data_PayMethod("); MasterValue.Append(" VALUES("); MasterField.Append("ID" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.ID) + ","); MasterField.Append("Code" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.Code) + ","); MasterField.Append("Name" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.Name) + ","); MasterField.Append("Remark" + ")"); MasterValue.Append(SysString.ToDBString(MasterEntity.Remark) + ")"); //执行 int AffectedRows = 0; if (!this.sqlTransFlag) { AffectedRows = this.ExecuteNonQuery(MasterField.Append(MasterValue.ToString()).ToString()); } else { AffectedRows = sqlTrans.ExecuteNonQuery(MasterField.Append(MasterValue.ToString()).ToString()); } return(AffectedRows); } catch (BaseException E) { throw new BaseException(E.Message, E); } catch (Exception E) { throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBInsert), E); } }
/// <summary> /// 新增(传入事务处理) /// </summary> /// <param name="p_BE">要新增的实体</param> /// <param name="sqlTrans">事务类</param> public void RAdd(BaseEntity p_BE, BaseEntity[] p_BE2, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); PayMethod entity = (PayMethod)p_BE; string sql = "SELECT * FROM Data_PayMethod WHERE ID=" + SysString.ToDBString(entity.ID); DataTable dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("ID已存在,请检查后重新输入!"); } sql = "SELECT * FROM Data_PayMethod WHERE Code=" + SysString.ToDBString(entity.Code); dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("付款方式编码已存在,请检查后重新输入!"); } sql = "SELECT * FROM Data_PayMethod WHERE Name=" + SysString.ToDBString(entity.Name); dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("付款方式的名称已存在,请检查后重新输入!"); } PayMethodCtl control = new PayMethodCtl(sqlTrans); //entity.ID=(int)EntityIDTable.GetID((long)SysEntity.Data_PayMethod,sqlTrans); control.AddNew(entity); for (int i = 0; i < p_BE2.Length; i++) { PayMethodDtsRule rule = new PayMethodDtsRule(); PayMethodDts entityDts = (PayMethodDts)p_BE2[i]; entityDts.MainID = entity.ID; entityDts.Seq = i + 1; rule.RAdd(entityDts, sqlTrans); } } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
private string DisplayMethod(PayMethod m_PayTable) { switch (m_PayTable) { case PayMethod.Standard: return("Standard"); case PayMethod.QuickPick: return("QuickPick"); case PayMethod.BottomHalf: return("Bottom"); case PayMethod.TopHalf: return("Top"); case PayMethod.RightHalf: return("Right"); case PayMethod.LeftHalf: return("Left"); case PayMethod.Odd: return("Odd"); case PayMethod.Even: return("Even"); case PayMethod.Edges: return("Edges"); case PayMethod.Kool20: return("Kool 20"); case PayMethod.EZBucks: return("EZ Bucks"); case PayMethod.BancoSpecial: return("Banco Special"); case PayMethod.Millionare10: return("Millionare 10"); } return("Unknown!"); }
/// <summary> /// 删除 /// </summary> /// <param name="p_BE">要删除的实体</param> /// <param name="sqlTrans">事务类</param> public void RDelete(BaseEntity p_BE, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); PayMethod entity = (PayMethod)p_BE; PayMethodCtl control = new PayMethodCtl(sqlTrans); control.Delete(entity); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 设置 /// </summary> public override void EntitySet() { PayMethod entity = new PayMethod(); entity.ID = HTDataID; bool findFlag = entity.SelectByID(); txtID.Text = entity.ID.ToString(); txtCode.Text = entity.Code.ToString(); txtName.Text = entity.Name.ToString(); txtRemark.Text = entity.Remark.ToString(); if (!findFlag) { } BindGridDts(); }
/// <summary> /// 修改 /// </summary> /// <param name="p_Entity">实体类</param> /// <returns>操作影响的记录行数</returns> public override int Update(BaseEntity p_Entity) { try { PayMethod MasterEntity = (PayMethod)p_Entity; if (MasterEntity.ID == 0) { return(0); } //更新主表数据 StringBuilder UpdateBuilder = new StringBuilder(); UpdateBuilder.Append("UPDATE Data_PayMethod SET "); UpdateBuilder.Append(" ID=" + SysString.ToDBString(MasterEntity.ID) + ","); UpdateBuilder.Append(" Code=" + SysString.ToDBString(MasterEntity.Code) + ","); UpdateBuilder.Append(" Name=" + SysString.ToDBString(MasterEntity.Name) + ","); UpdateBuilder.Append(" Remark=" + SysString.ToDBString(MasterEntity.Remark)); UpdateBuilder.Append(" WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID)); //执行 int AffectedRows = 0; if (!this.sqlTransFlag) { AffectedRows = this.ExecuteNonQuery(UpdateBuilder.ToString()); } else { AffectedRows = sqlTrans.ExecuteNonQuery(UpdateBuilder.ToString()); } return(AffectedRows); } catch (BaseException E) { throw new BaseException(E.Message, E); } catch (Exception E) { throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBUpdate), E); } }
/// <summary> /// 修改 /// </summary> /// <param name="p_BE">要修改的实体</param> /// <param name="sqlTrans">事务类</param> public void RUpdate(BaseEntity p_BE, BaseEntity[] p_BE2, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); PayMethod entity = (PayMethod)p_BE; string sql = "SELECT * FROM Data_PayMethod WHERE Code=" + SysString.ToDBString(entity.Code) + " AND ID<>" + entity.ID; DataTable dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("付款方式编码已存在,请检查后重新输入!"); } sql = "SELECT * FROM Data_PayMethod WHERE Name=" + SysString.ToDBString(entity.Name) + " AND ID<>" + entity.ID; dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("付款方式的名称已存在,请检查后重新输入!"); } PayMethodCtl control = new PayMethodCtl(sqlTrans); control.Update(entity); sql = "DELETE Data_PayMethodDts WHERE MainID=" + SysString.ToDBString(entity.ID); sqlTrans.ExecuteNonQuery(sql); for (int i = 0; i < p_BE2.Length; i++) { PayMethodDtsRule rule = new PayMethodDtsRule(); PayMethodDts entityDts = (PayMethodDts)p_BE2[i]; entityDts.MainID = entity.ID; entityDts.Seq = i + 1; rule.RAdd(entityDts, sqlTrans); } } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// Sets payment strategy of <see cref="PaymentStrategy"/> option given the user payment method /// </summary> /// <param name="payMethod"></param> public void SetPaymentStrategy(PayMethod payMethod) { switch (payMethod) { case PayMethod.Hour: _payment = new HourPayment(); break; case PayMethod.Day: _payment = new DayPayment(); break; case PayMethod.Month: _payment = new MonthPayment(); break; case PayMethod.Year: _payment = new YearPayment(); break; default: _payment = new DayPayment(); break; } }
public override void OnResponse(NetState state, RelayInfo info) { Mobile from = state.Mobile; bool played = false; if (from == null || m_Keno == null ) return; if (from != m_Player.mobile) { from.SendMessage("{0} does not recognize you as a valid player!", m_Keno.Name); m_Keno.RemovePlayer(from, m_Player); from.CloseGump(typeof(KenoPayTableGump)); return; } if (m_Keno.Deleted || !m_Keno.Active) { m_Keno.RemovePlayer(from, m_Player); from.SendMessage("{0} is offline.", m_Keno.Name); from.CloseGump(typeof(KenoPayTableGump)); return; } if (!from.Alive) { from.SendMessage("Ghosts can not play this game."); m_Keno.RemovePlayer(from, m_Player); from.CloseGump(typeof(KenoPayTableGump)); return; } if (!from.InRange(m_Keno.GetWorldLocation(), 9) || !from.InLOS(m_Keno)) { from.SendMessage("You are too far away from {0} and quit playing.", m_Keno.Name); m_Keno.RemovePlayer(from, m_Player); from.CloseGump(typeof(KenoPayTableGump)); return; } if (from.Hidden && from.AccessLevel == AccessLevel.Player) // Don't let someone sit at the KenoBoard and play hidden { from.Hidden = false; from.SendMessage("Playing {0} reveals you!", m_Keno.Name); } m_Player.LastPlayed = DateTime.Now; if (info.ButtonID == 999 && (from.AccessLevel >= AccessLevel.GameMaster)) { #if XMLSPAWNER from.SendGump(new XmlPropertiesGump(from, m_Keno)); #else from.SendGump( new PropertiesGump( from, m_Keno ) ); #endif } if (info.ButtonID > 0 && info.ButtonID < 81 && m_PayTable == PayMethod.Standard) { if (m_PickButtons) { if (m_Selected[info.ButtonID - 1] == 0) { if (m_TotalSelected < 15) { m_TotalSelected++; m_Selected[info.ButtonID - 1] = 1; } else { // too many numbers from.SendMessage("The maximum numbers you can select is 15."); } } else { if (m_TotalSelected > 0) { m_TotalSelected--; m_Selected[info.ButtonID - 1] = 0; ; } else { // How did we get below zero? from.SendMessage("Invalid button detected."); string text = String.Format("{0}:Invalid button detected.", from.Name); m_Keno.SecurityCamera(0, text); } } m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.Standard, m_Player.Cost, m_TotalSelected); } else { //packet fudging/cheating?? from.SendMessage("Invalid button detected."); string text = String.Format("{0}:Invalid button detected.", from.Name); m_Keno.SecurityCamera(0, text); } } else if (info.ButtonID == 101) // && m_TotalSelected != 0) // Inc Cost { m_Player.IncCost(); m_PayOutTable = m_Keno.GetPayTable((int)m_PayTable, m_Player.Cost, m_TotalSelected); } else if (info.ButtonID == 102) // && m_TotalSelected != 0) // Dec Cost { m_Player.DecCost(); m_PayOutTable = m_Keno.GetPayTable((int)m_PayTable, m_Player.Cost, m_TotalSelected); } else if (info.ButtonID == 200) // Play { if (m_TotalSelected == 0) { from.SendMessage("You need to select some numbers first to play!"); } else if (m_Keno.Profile) { m_Player.OnCredit = 0; played = PlayKeno(from, m_Player.Cost); } else { int amount = 0; if (!from.InRange(m_Keno.GetWorldLocation(), 10) || !from.InLOS(m_Keno)) { from.SendMessage("You are too far away from the Keno Board."); m_Keno.RemovePlayer(from, m_Player); return; } if (from.Backpack.ConsumeTotal(typeof(CasinoToken), 1)) { played = PlayKeno(from, 0); } else if (from.Backpack.ConsumeTotal(typeof(Gold), m_Player.Cost)) { played = PlayKeno(from, 0); } else if (m_Keno.OnCredit(from, m_Player, 0) >= m_Player.Cost) { played = PlayKeno(from, m_Player.Cost); } else if (m_Keno.CashCheck(from, m_Player, out amount)) { from.SendMessage("Cashing bank check for {0} gold from your backpack, you may now spin again.", amount); } else from.SendMessage("You must have at least {0} gold, or credits on the machine to play.", m_Player.Cost); } } else if (info.ButtonID == 201 ||info.ButtonID == 0) // Cash Out { m_Keno.RemovePlayer(from, m_Player); from.SendMessage("You quit playing {0}.", m_Keno.Name); from.CloseGump(typeof(KenoPayTableGump)); return; } else if (info.ButtonID == 202) // ATM { if (m_Keno.OnCredit(from, m_Player, 0) >= m_Keno.CreditATMLimit) { from.SendMessage("This machine is at or over its credit limit."); } else { int amount = (m_Keno.CreditATMLimit - m_Keno.OnCredit(from, m_Player, 0) < m_Keno.CreditATMIncrements) ? m_Keno.CreditATMLimit - m_Keno.OnCredit(from, m_Player, 0) : m_Keno.CreditATMIncrements; if (from.BankBox.ConsumeTotal(typeof(Gold), amount)) { m_Keno.OnCredit(from, m_Player, amount); from.SendMessage("{0} gold has been withdrawn from your bank and added to this machine's credit counter.", amount); Effects.PlaySound(new Point3D(m_Keno.X, m_Keno.Y, m_Keno.Z), m_Keno.Map, 501); string text = String.Format("{0}:ATM={1}.", m_Player.mobile.Name, amount); m_Keno.SecurityCamera(amount > 5000 ? 0 : 1, text); text = String.Format("OnCredit={1}.", m_Player.mobile.Name, m_Player.OnCredit); m_Keno.SecurityCamera(m_Player.OnCredit > 10000 ? 1 : 2, text); } else from.SendMessage("Insufficient funds for ATM withdrawal."); } } else if (info.ButtonID == 520) // Pay table gump { if (m_TotalSelected == 0) { from.SendMessage("You need to select some numbers to see a valid Pay Table."); from.CloseGump(typeof(KenoPayTableGump)); } else { from.CloseGump(typeof(KenoPayTableGump)); from.SendGump(new KenoPayTableGump((int)m_PayTable, m_PayOutTable, m_Player.Cost, m_TotalSelected)); } } else if (m_PayTable == PayMethod.QuickPick && info.ButtonID > 500 && info.ButtonID < 503) { if (info.ButtonID == 501) { m_QuickPickCount++; if (m_QuickPickCount > 15) m_QuickPickCount = 1; } else { m_QuickPickCount--; if (m_QuickPickCount < 1) m_QuickPickCount = 15; } byte[] numbers = m_Keno.PickNumbers(m_QuickPickCount); ClearBoard(); for (int i = 0; i < m_QuickPickCount; i++) m_Selected[numbers[i]] = 1; m_PickButtons = false; m_TotalSelected = m_QuickPickCount; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.QuickPick, m_Player.Cost, m_TotalSelected); } else if (m_PayTable >= PayMethod.BottomHalf && m_PayTable <= PayMethod.Millionare10 && info.ButtonID > 600 && info.ButtonID < 603) { if (info.ButtonID == 601) { m_PayTable++; if (m_PayTable > PayMethod.Millionare10) m_PayTable = PayMethod.BottomHalf; } else { m_PayTable--; if (m_PayTable < PayMethod.BottomHalf) m_PayTable = PayMethod.Millionare10; } ClearBoard(); DisplaySpecial(m_PayTable); SpecialPick(m_PayTable); m_CPayMethod = m_PayTable; } else if (info.ButtonID > 3999 && info.ButtonID < 4005) { switch (info.ButtonID) { case 4000: // Special m_PayTable = m_CPayMethod; ClearBoard(); SpecialPick(m_PayTable); break; case 4001: // Manual ClearBoard(); m_TotalSelected = 0; m_PayTable = PayMethod.Standard; m_PickButtons = true; break; default: // Quick Pick byte[] numbers = m_Keno.PickNumbers(m_QuickPickCount); ClearBoard(); for (int i = 0; i < m_QuickPickCount; i++) m_Selected[numbers[i]] = 1; m_PayTable = PayMethod.QuickPick; m_PickButtons = false; m_TotalSelected = m_QuickPickCount; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.QuickPick, m_Player.Cost, m_TotalSelected); break; } } if (m_Keno.Throttle && played) ActivateGumpTimer(m_Keno, m_From, m_Player, played, (int)m_PayTable, m_PayOutTable, (int)m_CPayMethod, m_QuickPickCount, m_PickButtons, m_Selected, m_TotalSelected, m_MachinePicks); else from.SendGump(new KenoGump(m_Keno, m_From, m_Player, played, (int)m_PayTable, m_PayOutTable, (int)m_CPayMethod, m_QuickPickCount, m_PickButtons, m_Selected, m_TotalSelected, m_MachinePicks)); }
public KenoGump(KenoBoard Keno, Mobile From, KenoBoard.PlayerInfo player, bool played, int PayTable, float[] PayOutTable, int CPayMethod, byte QuickPickCount, bool PickButtons, byte[] Selected, byte TotalSelected, byte[] MachinePicks) : base(400, 263) { m_Keno = Keno; m_Selected = Selected; m_TotalSelected = TotalSelected; m_MachinePicks = MachinePicks; m_PickButtons = PickButtons; m_PayTable = (PayMethod)PayTable; m_QuickPickCount = QuickPickCount; m_CPayMethod = (PayMethod)CPayMethod; m_PayOutTable = PayOutTable; m_Player = player; m_From = From; Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); AddBackground(0, 0, 650, 340, 9250); string text = String.Format("Cost: {0}", player.Cost); AddLabel(380, 15, 2213, text); AddButton(440, 15, 0x983, 0x984, 101, GumpButtonType.Reply, 0); AddButton(440, 25, 0x985, 0x986, 102, GumpButtonType.Reply, 0); AddLabel(227 - ((m_Keno.Name.Length/2) * 7), 10, (m_Keno.Hue == 907 ? 0 : m_Keno.Hue - 1), m_Keno.Name); AddLabel(475, 25, 1149, "Number Selection Method"); AddLabel(485, 50, 1149, "Special:"); AddLabel(485, 75, 1149, "Standard"); AddLabel(485, 100, 1149, "Quick Pick"); AddLabel(485, 166, 1149, "Total Matched:"); AddLabel(460, 210, 1149, "Credits:"); AddLabel(460, 230, 1149, "Last Pay:"); if (player.mobile.AccessLevel >= AccessLevel.GameMaster) { int paybackhue = 66; if (m_Keno.WinningPercentage > 95.0) { paybackhue = 37; } AddLabel(475, 185, 1152, "Payout Percentage:"); text = String.Format("{0:##0.00%}", m_Keno.WinningPercentage/100); AddLabel(590, 185, paybackhue, text); } AddImageTiled(15, 175, 455, 4, 2624); AddImageTiled(450, 30, 3, 290, 2624); int numberx = 20; int numbery = 35; int bottomhalf = 0; int totalhit = 0; int tophalf = 0; AddButton(460, 50, ((m_PayTable >= PayMethod.BottomHalf && m_PayTable <= PayMethod.Millionare10) ? 0xD3 : 0xD2), ((m_PayTable >= PayMethod.BottomHalf && m_PayTable <= PayMethod.Edges) ? 0xD2 : 0xD3), 4000, GumpButtonType.Reply, 0); AddButton(460, 75, (m_PayTable == PayMethod.Standard ? 0xD3 : 0xD2), (m_PayTable == PayMethod.Standard ? 0xD2 : 0xD3), 4001, GumpButtonType.Reply, 0); AddButton(460, 100, (m_PayTable == PayMethod.QuickPick ? 0xD3 : 0xD2), (m_PayTable == PayMethod.QuickPick ? 0xD2 : 0xD3), 4002, GumpButtonType.Reply, 0); AddButton(460, 125, 4026, 4027, 520, GumpButtonType.Reply, 0); AddLabel(495, 125, 1149, @"View Pay Table"); AddButton(460, 265, 4020, 4021, 200, GumpButtonType.Reply, 0); /*if (m_Keno.FreeSpin) AddLabel(65, 307, 1149, @"Free"); else */ AddLabel(495, 265, 1149, @"Play"); AddButton(540, 265, 4029, 4030, 201, GumpButtonType.Reply, 0); //CASHOUT AddLabel(575, 265, 1149, @"Cash Out"); AddButton(457, 290, 4037, 4036, 202, GumpButtonType.Reply, 0); //ATM AddLabel(495, 299, 1149, @"ATM"); if (player.mobile.AccessLevel >= AccessLevel.GameMaster) { AddButton(540, 295, 0xFAB, 0xFAD, 999, GumpButtonType.Reply, 0); //Props AddLabel(575, 295, 0x384, @"Props"); } if (m_PayTable == PayMethod.Standard) { text = String.Format("Min: {0}", m_MinPicks); AddLabel(585, 68, 1149, text); text = String.Format("Max: {0}", m_MaxPicks); AddLabel(585, 83, 1149, text); text = String.Format(": {0}", m_TotalSelected); AddLabel(537, 75, 1149, text); DisplaySpecial(m_CPayMethod); } else if (m_PayTable == PayMethod.QuickPick) { AddButton(565, 100, 0x983, 0x984, 501, GumpButtonType.Reply, 0); AddButton(565, 110, 0x985, 0x986, 502, GumpButtonType.Reply, 0); AddLabel(550, 100, 1149, m_QuickPickCount.ToString()); DisplaySpecial(m_CPayMethod); } else if (m_PayTable >= PayMethod.BottomHalf && m_PayTable <= PayMethod.Millionare10) { m_PayTable = m_CPayMethod; DisplaySpecial(m_PayTable); AddButton(610, 50, 0x983, 0x984, 601, GumpButtonType.Reply, 0); AddButton(610, 60, 0x985, 0x986, 602, GumpButtonType.Reply, 0); } for (int i = 0; i < 20; i++) if (m_MachinePicks[i] != 255) m_Selected[m_MachinePicks[i]] += 2; int numberHue = 0; for (int i = 0; i < 80; i++) { switch (m_Selected[i]) { case 0: numberHue = 0; break; case 1: numberHue = 1149; break; case 2: numberHue = 37; m_Selected[i] = 0; if (i < 40) tophalf++; else bottomhalf++; break; case 3: numberHue = 66; totalhit++; m_Selected[i] = 1; if (i < 40) tophalf++; else bottomhalf++; break; } if (m_PickButtons) AddButton(numberx - 3, numbery - 5, 4202, 4202, i + 1, GumpButtonType.Reply, 0); AddLabel(numberx, numbery, numberHue, (i + 1).ToString()); numberx += 45; if (( i + 1) % 10 == 0) { numbery += 37; numberx = 20; } } for (int i = 0; i < 20; i++) m_MachinePicks[i] = 255; AddLabel(455, 155, 957, tophalf.ToString()); AddLabel(455, 180, 957, bottomhalf.ToString()); text = String.Format("{0}/{1}", totalhit,m_TotalSelected); AddLabel(575, 166, 66, text); if (played) { int wonhue = 957; int won = (int)(m_Player.Cost * m_PayOutTable[totalhit]); if (won == 0) { if (Utility.RandomDouble() < .01 && m_From != null && !m_From.Deleted) { if (m_From.Female) m_From.PlaySound(Utility.RandomList(1372, 1373, 816, 796, 782)); else m_From.PlaySound(Utility.RandomList(1372, 1373, 1090, 1068, 1053)); } if ((int)m_Keno.SecurityChatter == 2) { text = String.Format("{0} lost {1}.", m_Player.mobile.Name, m_Player.Cost); m_Keno.SecurityCamera(2, text); text = String.Format("OnCredit={1}.", m_Player.mobile.Name, m_Player.OnCredit); m_Keno.SecurityCamera(2, text); } } else { m_Keno.ProcessPlay(m_From, m_Player, won); wonhue = 2213; } AddLabel(525, 230, wonhue, won.ToString()); m_Keno.IncrementStats(totalhit); if (Utility.RandomDouble() < .0008 && m_From != null && !m_From.Deleted) CEOCookie(m_Keno.Hue); } else AddLabel(525, 230, 957, "0"); AddLabel(525, 210, 2213, m_Keno.OnCredit(m_From, m_Player, 0).ToString()); }
private void SpecialPick(PayMethod m_PayTable) { m_TotalSelected = 40; switch (m_PayTable) { case PayMethod.BottomHalf: for (int i = 40; i < 80; i++) m_Selected[i] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.BottomHalf, m_Player.Cost, 40); break; case PayMethod.TopHalf: for (int i = 0; i < 40; i++) m_Selected[i] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.TopHalf, m_Player.Cost, 40); break; case PayMethod.RightHalf: for (int i = 0; i < 8; i++) for (int h = 0; h < 5; h++) m_Selected[i * 10 + 5 + h] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.RightHalf, m_Player.Cost, 40); break; case PayMethod.LeftHalf: for (int i = 0; i < 8; i++) for (int h = 0; h < 5; h++) m_Selected[i * 10 + h] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.LeftHalf, m_Player.Cost, 40); break; case PayMethod.Odd: for (int i = 0; i < 80; i += 2) m_Selected[i] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.Odd, m_Player.Cost, 40); break; case PayMethod.Even: for (int i = 1; i < 80; i += 2) m_Selected[i] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.Even, m_Player.Cost, 40); break; case PayMethod.Edges: for (int i = 0; i < 10; i++) m_Selected[i] = 1; for (int i = 70; i < 80; i++) m_Selected[i] = 1; for (int i = 19; i < 70; i += 10) m_Selected[i] = 1; for (int i = 10; i < 61; i += 10) m_Selected[i] = 1; m_PayTable = PayMethod.Edges; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.Edges, m_Player.Cost, 32); m_TotalSelected = 32; break; case PayMethod.Kool20: byte[] numbers = m_Keno.PickNumbers(20); ClearBoard(); for (int i = 0; i < 20; i++) m_Selected[numbers[i]] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.Kool20, m_Player.Cost, 20); m_TotalSelected = 20; break; case PayMethod.EZBucks: numbers = m_Keno.PickNumbers(20); ClearBoard(); for (int i = 0; i < 20; i++) m_Selected[numbers[i]] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.EZBucks, m_Player.Cost, 20); m_TotalSelected = 20; break; case PayMethod.BancoSpecial: numbers = m_Keno.PickNumbers(20); ClearBoard(); for (int i = 0; i < 20; i++) m_Selected[numbers[i]] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.BancoSpecial, m_Player.Cost, 20); m_TotalSelected = 20; break; case PayMethod.Millionare10: numbers = m_Keno.PickNumbers(10); ClearBoard(); for (int i = 0; i < 10; i++) m_Selected[numbers[i]] = 1; m_PickButtons = false; m_PayOutTable = m_Keno.GetPayTable((int)PayMethod.Millionare10, m_Player.Cost, 10); m_TotalSelected = 10; break; } }