public async Task ProcessDisarmedTrap(string userId, string disarmedTrapId) { UserResult user = await AppBusiness.User.GetById(userId); ArmedTrapResult disarmedTrap = await AppRepository.Trap.GetArmedTrapById(disarmedTrapId); UserResult userInjured = user; UserResult userOwnerTrap = await AppBusiness.User.GetById(disarmedTrap.UserId); if (userOwnerTrap != null) { TrapResult trap = await AppBusiness.Trap.GetByNameKey(disarmedTrap.NameKey); UserRequest userOwnerRequest = Mapper.Map <UserRequest>(userOwnerTrap); UserRequest userInjuredRequest = Mapper.Map <UserRequest>(userInjured); await AppBusiness.User.AddPoints(userOwnerRequest, trap.Points); /* Deixar de forma dinamica futuramente */ var trapOwned = await AppBusiness.Trap.GetByNameKey("BEAR_TRAP"); var trapUserOwned = new UserTrapRequest(); trapUserOwned.TrapId = trapOwned.Id.ToString(); trapUserOwned.Amount = 5; AppBusiness.User.AddTrap(userOwnerRequest, trapUserOwned); await AppBusiness.User.Save(userOwnerRequest); await SendNotificationToUserInjured(userInjuredRequest, userOwnerRequest, disarmedTrap); await SendNotificationToUserOwnerTrap(userInjuredRequest, userOwnerRequest, disarmedTrap, trap.Points); } }
public static TrapResult PlayerTraped() { TrapResult result = new TrapResult(); result.trapDam = Random.Range(3, 10); return(result); }
public void EventCaculate() { result = CaculateScript.PlayerTraped(); string text = "그대는 " + result.trapDam + "의 데미지를 입었다."; _player.Damaged(result.trapDam); _gm.SetPlayerHPOnUI(); _cardScript.SetFrontDesc(text); _gm.SetEnd(); _cardScript.CardEnd(""); }
private TrapResult Parse(Trap trap) { if (trap != null) { TrapResult response = new TrapResult(); response.Active = trap.Active; response.CreateDate = trap.CreateDate; response.Id = trap.Id.ToString(); response.Name = trap.NameResource; response.NameKey = trap.NameKey; response.NameResource = trap.NameResource; response.Points = trap.Points; return(response); } else { return(null); } }
public async Task <UserResult> ConfirmBuyIntent(BuyIntentRequest request) { UserResult response = null; BuyIntentResult actualIntent = await AppRepository.Purchase.GetById(request.Id); if (actualIntent != null) { request = Mapper.Map <BuyIntentRequest>(actualIntent); await AppRepository.Purchase.ConfirmBuyIntent(request); response = await AppBusiness.User.GetById(actualIntent.UserId); if (response != null) { AvailableTrapResult availableTrap = await AppBusiness.Purchase.GetAvailableTrapById(actualIntent.AvailableTrapId); if (availableTrap != null) { TrapResult trap = await AppBusiness.Trap.GetByNameKey(availableTrap.NameKey); UserTrapRequest userTrap = new UserTrapRequest(); userTrap.TrapId = trap.Id.ToString(); userTrap.Amount = availableTrap.Amount; UserRequest userRequest = Mapper.Map <UserRequest>(response); AppBusiness.User.AddTrap(userRequest, userTrap); await AppRepository.User.UpdateTraps(userRequest.Id, userRequest.Traps); response = await AppBusiness.User.GetById(userRequest.Id); } } } return(response); }
public async Task <List <ArmedTrapResult> > ListArmedTraps(UserRequest request) { List <ArmedTrapResult> response = await AppRepository.Trap.ListArmedTrapsByUser(request.Id); List <TrapResult> availableTraps = new List <TrapResult>(); if (response != null) { foreach (ArmedTrapResult trap in response) { TrapResult availableTrap = availableTraps.Where(obj => obj.NameKey == trap.NameKey).FirstOrDefault(); if (availableTrap == null) { availableTrap = await AppBusiness.Trap.GetByNameKey(trap.NameKey); availableTraps.Add(availableTrap); } } } return(response); }
public async Task <UserResult> ArmTrap(ArmedTrapRequest request) { bool isLocationValid = request.Latitude != 0 && request.Longitude != 0; UserResult user = null; if (isLocationValid) { TrapResult trap = await AppBusiness.Trap.GetByNameKey(request.NameKey); if (trap != null) { user = await AppBusiness.User.GetById(request.UserId); if (user != null) { if (user.Traps != null && user.Traps.Count > 0) { bool hasTrapToSet = false; foreach (UserTrapResult userTrap in user.Traps) { if (userTrap.NameKey == request.NameKey && userTrap.Amount > 0) { hasTrapToSet = true; break; } } if (hasTrapToSet) { request.Date = DateTime.UtcNow; await AppRepository.Trap.InsertArmedTrap(request); UserRequest userRequest = Mapper.Map <UserRequest>(user); await AppBusiness.User.RemoveTrap(userRequest, request.NameKey); user = await AppBusiness.User.GetById(request.UserId); } else { throw new MyTrapBusinessException(Resources.trap_armed_user_no_has); } } else { throw new MyTrapBusinessException(Resources.trap_armed_user_no_traps); } } } } if (!isLocationValid) { throw new MyTrapBusinessException(Resources.trap_armed_location_invalid); } return(user); }