internal static async Task <string> buyDiamond(State s, BuyDiamond bd) { { switch (bd.pType) { case "mile": case "business": case "volume": case "speed": { SetBuyDiamond sbd = new SetBuyDiamond() { c = "SetBuyDiamond", Key = s.Key, pType = bd.pType }; var msg = Newtonsoft.Json.JsonConvert.SerializeObject(sbd); await Startup.sendInmationToUrlAndGetRes(Room.roomUrls[s.roomIndex], msg); }; break; default: { }; break; } } return(""); }
internal void Buy(SetBuyDiamond bd) { List <string> notifyMsg = new List <string>(); lock (this.PlayerLock) if (this._Players.ContainsKey(bd.Key)) { var role = this._Players[bd.Key]; if (role.Bust) { } //else if(player.) else { switch (bd.pType) { case "mile": { if (this.Market.mile_Price != null) { var calValue = this.Market.mile_Price.Value; if (role.Money >= calValue) { role.MoneySet(role.Money - calValue, ref notifyMsg); role.PromoteDiamondCount[bd.pType]++; if (role.playerType == RoleInGame.PlayerType.player) { SendPromoteCountOfPlayer(bd.pType, (Player)role, ref notifyMsg); } this.Market.Send(bd.pType, 1); } } else { Console.WriteLine("市場沒開放"); } }; break; case "business": { if (this.Market.business_Price != null) { var calValue = this.Market.business_Price.Value; if (role.Money >= calValue) { role.MoneySet(role.Money - calValue, ref notifyMsg); role.PromoteDiamondCount[bd.pType]++; if (role.playerType == RoleInGame.PlayerType.player) { SendPromoteCountOfPlayer(bd.pType, (Player)role, ref notifyMsg); } this.Market.Send(bd.pType, 1); } } else { Console.WriteLine("市場沒開放"); } }; break; case "volume": { if (this.Market.volume_Price != null) { var calValue = this.Market.volume_Price.Value; if (role.Money >= calValue) { role.MoneySet(role.Money - calValue, ref notifyMsg); role.PromoteDiamondCount[bd.pType]++; if (role.playerType == RoleInGame.PlayerType.player) { SendPromoteCountOfPlayer(bd.pType, (Player)role, ref notifyMsg); } this.Market.Send(bd.pType, 1); } } else { Console.WriteLine("市場沒開放"); } }; break; case "speed": { if (this.Market.speed_Price != null) { var calValue = this.Market.speed_Price.Value; if (role.Money >= calValue) { role.MoneySet(role.Money - calValue, ref notifyMsg); role.PromoteDiamondCount[bd.pType]++; if (role.playerType == RoleInGame.PlayerType.player) { SendPromoteCountOfPlayer(bd.pType, (Player)role, ref notifyMsg); } this.Market.Send(bd.pType, 1); } } else { Console.WriteLine("市場沒開放"); } }; break; } } } for (var i = 0; i < notifyMsg.Count; i += 2) { var url = notifyMsg[i]; var sendMsg = notifyMsg[i + 1]; Startup.sendMsg(url, sendMsg); } }