public CreateEstablishmentValidator(IShortCodeService shortCodeService, IVatService vatService) { _shortCodeService = shortCodeService; _vatService = vatService; CreateRules(); }
/// <summary> /// 开局换牌 /// </summary> /// <param name="userCode"></param> /// <param name="lstInitCardIndex"></param> public void SwitchCard(string userCode, List <int> lstInitCardIndex, IShortCodeService shortCodeService) { UserContext uc = GameContext.Players.First(c => c.Player.UserCode == userCode); if (lstInitCardIndex != null && lstInitCardIndex.Count > 0) { List <int> newIdx = RandomUtil.CreateRandomInt(0, uc.StockCards.Count() - 1, lstInitCardIndex.Count); newIdx = newIdx.OrderByDescending(c => c).ToList(); foreach (int i in newIdx) { uc.StockCards.ToList()[i].CardLocation = CardLocation.手牌; } lstInitCardIndex = lstInitCardIndex.OrderByDescending(c => c).ToList(); foreach (int i in lstInitCardIndex) { uc.InitCards.ToList()[i].CardLocation = CardLocation.牌库; } } else { uc.AllCards.Where(c => c.CardLocation == CardLocation.InitCard).ToList().ForEach(c => c.CardLocation = CardLocation.手牌); } //打乱牌库顺序 int count = uc.AllCards.Count; List <int> newIndex = RandomUtil.CreateRandomInt(0, 100, count); newIndex.Sort(delegate(int a, int b) { return(RandomUtil.CreateRandomInt(-1, 1)); }); for (int i = 0; i < newIndex.Count; i++) { uc.AllCards[i].Sort = newIndex[i]; } uc.SwitchDone = true; //双方都换完牌后的流程 if (GameContext.Players.First(c => c.Player.UserCode != userCode).SwitchDone) { var firstUser = GameContext.Players.First(c => c.IsFirst); //先手玩家换完牌后再抽一张牌 var addCard = firstUser.StockCards.First(); addCard.CardLocation = CardLocation.手牌; var secondUser = GameContext.Players.First(c => c.IsFirst == false); //后手玩家添加一枚幸运币 var luckyCoin = new CreateNewCardInControllerAction <LuckyCoin>().Action(new ActionParameter() { GameContext = GameContext, UserContext = secondUser }) as LuckyCoin; luckyCoin.CardLocation = CardLocation.手牌; secondUser.IsActivation = false; TurnEnd(shortCodeService); } GameContext.Settlement(); }
public HtmlBodyPartHandler(IContentDefinitionManager contentDefinitionManager, IShortCodeService shortCodeService, ILiquidTemplateManager liquidTemplateManager, HtmlEncoder htmlEncoder) { _contentDefinitionManager = contentDefinitionManager; _shortCodeService = shortCodeService; _liquidTemplateManager = liquidTemplateManager; _htmlEncoder = htmlEncoder; }
//public delegate void PostProcessing(Post post); public CachedPostService( IPostRepository postRepository, ITermService termService, IShortCodeService shortCode, IPostProcessingService postProcessingService, IMetadataService metadataService, IMemoryCache memoryCache) : base(postRepository, termService, shortCode, postProcessingService, metadataService) { _memoryCache = memoryCache; _cacheOptions = new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(Constants.MinutesToCache)); }
public HtmlBodyPartDisplayDriver(ILiquidTemplateManager liquidTemplateManager, IHtmlSanitizerService htmlSanitizerService, HtmlEncoder htmlEncoder, IShortCodeService shortCodeService, IStringLocalizer <HtmlBodyPartDisplayDriver> localizer) { _liquidTemplateManager = liquidTemplateManager; _htmlSanitizerService = htmlSanitizerService; _htmlEncoder = htmlEncoder; _shortCodeService = shortCodeService; S = localizer; }
public PostService( IPostRepository postRepository, ITermService termService, IShortCodeService shortCode, IPostProcessingService postProcessingService, IMetadataService metadataService) { _postRepository = postRepository; _termService = termService; _shortCode = shortCode; _postProcessingService = postProcessingService; _metadataService = metadataService; }
public MarkdownFieldDisplayDriver(ILiquidTemplateManager liquidTemplateManager, HtmlEncoder htmlEncoder, IHtmlSanitizerService htmlSanitizerService, IShortCodeService shortCodeService, IMarkdownService markdownService, IStringLocalizer <MarkdownFieldDisplayDriver> localizer) { _liquidTemplateManager = liquidTemplateManager; _htmlEncoder = htmlEncoder; _htmlSanitizerService = htmlSanitizerService; _shortCodeService = shortCodeService; _markdownService = markdownService; S = localizer; }
public MarkdownBodyPartHandler(IContentDefinitionManager contentDefinitionManager, IShortCodeService shortCodeService, IMarkdownService markdownService, IHtmlSanitizerService htmlSanitizerService, ILiquidTemplateManager liquidTemplateManager, HtmlEncoder htmlEncoder) { _contentDefinitionManager = contentDefinitionManager; _shortCodeService = shortCodeService; _markdownService = markdownService; _htmlSanitizerService = htmlSanitizerService; _liquidTemplateManager = liquidTemplateManager; _htmlEncoder = htmlEncoder; }
/// <summary> /// 回合结束 /// </summary> /// <param name="gameCode"></param> /// <param name="userCode"></param> /// <returns></returns> public APIResultBase TurnEnd(string gameCode, string userCode, IShortCodeService shortCodeService) { string res = JsonStringResult.VerifyFail(); Controler_Base ctl = Validate(gameCode, userCode); if (ctl == null) { return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据)); } if (VictoryValidate(ctl.GameContext)) { return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束)); } var player = ctl.GameContext.GetActivationUserContext(); if (player == null || player.UserCode != userCode) { return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据)); } ctl.TurnEnd(shortCodeService); return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output())); }
public EstablishmentService(IUnitOfWork unitOfWork, IShortCodeService shortCodeService, IMapper mapper) { _unitOfWork = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork)); _shortCodeService = shortCodeService ?? throw new ArgumentNullException(nameof(shortCodeService)); _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper)); }
/// <summary> /// 回合结束 /// </summary> public void TurnEnd(IShortCodeService shortCodeService) { UserContext uc = GameContext.GetActivationUserContext(), next_uc = null; uc.ComboSwitch = false; List <Card> buffCards = new List <Card>(); buffCards.AddRange(GameContext.DeskCards.GetDeskCardsByIsFirst(uc.IsFirst)); buffCards.AddRange(uc.HandCards); buffCards = buffCards.Where(c => c != null && c.Buffs.Count > 0).ToList(); foreach (Card card in buffCards) { LinkedListNode <IBuffRestore <ICardLocationFilter, IEvent> > buff = card.Buffs.First; MyTurnEndEvent myTurnEndEvent = new MyTurnEndEvent() { Parameter = new ActionParameter() { GameContext = GameContext, PrimaryCard = card } }; while (buff != null && buff.Value.TryCapture(card, myTurnEndEvent)) { buff.Value.Action(new ActionParameter() { GameContext = GameContext, PrimaryCard = card }); // card.Buffs.Remove(buff); buff = buff.Next; } } #region 调整玩家对象 if (GameContext.TurnIndex > 0) { next_uc = GameContext.GetNotActivationUserContext(); var para = new ActionParameter() { GameContext = GameContext, PrimaryCard = GameContext.GetHeroByActivation(next_uc.IsFirst) }; GameContext.EventQueue.AddLast(new MyTurnEndEvent() { Parameter = para }); GameContext.EventQueue.AddLast(new TouchOffComboEvent() { Parameter = para }); foreach (var bio in GameContext.DeskCards.Where(c => c != null)) { BaseBiology biology = bio as BaseBiology; biology.RemainAttackTimes = 0; } //在回合交换前结算 GameContext.QueueSettlement(); _gameCache.SetContext(GameContext); //DataExchangeBll.Instance.AsyncInsert("TurnEnd", "Controler_Base", "", JsonConvert.SerializeObject(GameContext), DataSourceEnum.GameControler); uc.IsActivation = false; next_uc.IsActivation = true; } else { //开局换完牌后,设置先手玩家费用=1 uc.FullPower = 1; uc.Power = 1; } #endregion #region 调整游戏环境对象 GameContext.CurrentTurnRemainingSecond = 60; GameContext.CurrentTurnCode = GameContext.NextTurnCode; GameContext.NextTurnCode = shortCodeService.CreateCode(); GameContext.TurnIndex++; #endregion GameContext.Settlement(); _gameCache.SetContext(GameContext); }
/// <summary> /// 开场换牌 /// </summary> /// <param name="gameCode"></param> /// <param name="userCode"></param> /// <param name="lstInitCardIndex"></param> /// <returns></returns> public APIResultBase SwitchCard(string gameCode, string userCode, List <string> lstInitCardIndex, IShortCodeService shortCodeService) { string res = JsonStringResult.VerifyFail(); Controler_Base ctl = Validate(gameCode, userCode); if (ctl == null) { return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据)); } //if (ctl.TurnIndex != 2) //{ // return JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据); //} if (ctl.GameContext.Players.Any(c => c.UserCode == userCode && c.SwitchDone == false) == false) { return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误)); } List <int> initCardIndex = new List <int>(); foreach (string idx in lstInitCardIndex) { initCardIndex.Add(idx.TryParseInt()); } if (initCardIndex.Any(c => c < 0 || c > 3) || initCardIndex.Any(c => c >= ctl.GameContext.Players.First(x => x.UserCode == userCode).InitCards.Count())) { return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误)); } var idxGroup = initCardIndex.GroupBy(c => c); if (idxGroup.Any(c => c.Count() > 1)) { return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误)); } ctl.SwitchCard(userCode, initCardIndex, shortCodeService); return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output().Players.First(c => c.UserCode == userCode))); }