public ServiceAll(PlayerRepo pr, GameRepo gr, ActivePlayerRepo apr, TeamRepo tr) { playerRepo = pr; gameRepo = gr; activePlayerRepo = apr; teamRepo = tr; }
/// <summary> /// Deletes a player's character. Player must submit the command twice within 30 seconds. /// </summary> /// <param name="user"></param> /// <param name="target"></param> /// <param name="targetLocation"></param> /// <param name="args"></param> public void DoAction(NWGameObject user, NWGameObject target, Location targetLocation, params string[] args) { string lastSubmission = GetLocalString(user, "DELETE_CHARACTER_LAST_SUBMISSION"); bool isFirstSubmission = true; // Check for the last submission, if any. if (!string.IsNullOrWhiteSpace(lastSubmission)) { // Found one, parse it. DateTime dateTime = DateTime.Parse(lastSubmission); if (DateTime.UtcNow <= dateTime.AddSeconds(30)) { // Player submitted a second request within 30 seconds of the last one. // This is a confirmation they want to delete. isFirstSubmission = false; } } // Player hasn't submitted or time has elapsed if (isFirstSubmission) { SetLocalString(user, "DELETE_CHARACTER_LAST_SUBMISSION", DateTime.UtcNow.ToString(CultureInfo.InvariantCulture)); FloatingTextStringOnCreature(user, "Please confirm your deletion by entering another \"/delete <CD Key>\" command within 30 seconds."); } else { var playerID = GetGlobalID(user); var entity = PlayerRepo.Get(playerID); entity.IsDeleted = true; PlayerRepo.Set(entity); BootPC(user, "Your character has been deleted."); NWNXAdmin.DeletePlayerCharacter(user, true); } }
public UnitOfWork(DataContext context) { _context = context; Games = new GameRepo(_context); Players = new PlayerRepo(_context); Moves = new MoveRepo(_context); }
public GameService(IPlayParser playReader, GameRepo gameRepo, PlayerRepo playerRepo, IUserService userRepo, IPlayService playerService) { _gameRepo = gameRepo; _playerRepo = playerRepo; _userRepo = userRepo; _playReader = playReader; _playsService = playerService; }
public void Setup() { PlayerRepo _repo = new PlayerRepo(); players = _repo.ListOfPlayers(1); var dice = new Dice(); gameboard = new Gameboard(players, dice); }
public ActionResult StartGame() { var vm = new EverythingVM(); PlayerRepo pRepo = new PlayerRepo(); var used = HttpContext.User; var user = UserManager.FindById(used.Identity.GetUserId()); var games = pRepo.AllLoggedIn(user.Id); return(View(games)); }
static void Main(string[] args) { var gameRepo = new GameRepo(); var matchRepo = new MatchRepo(); var playerGameRepo = new PlayerGameRepo(); var playerRepo = new PlayerRepo(); var playerStats = new PlayerStatsRepo(); var teamRepo = new TeamRepo(); var teamMatchReop = new TeamMatchRepo(); var TournamentRepo = new TournamentRepo(); }
private void MainPageResponses(int responseID) { var player = GetPC(); var playerID = GetGlobalID(player); var entity = PlayerRepo.Get(playerID); var response = GetResponseByID("MainPage", responseID); var classType = (ClassType)response.Data; var data = new JobChanged(player, entity.CurrentJob, classType); Publish.CustomEvent(player, JobEventPrefix.OnJobChanged, data); }
public static Player LoginPlayer(string username, string password) { PlayerRepo repo = new PlayerRepo(new PlayerSQLContext()); Player player = new Player(); player = repo.Login(username, password); if (player != null) { player.MonsterManual = repo.FillMonstermanual(player.Id); } return(player); }
public void ShouldRedirectToIndex() { PlayerRepo.Setup(r => r.GetPlayers()).Returns(new List <IPlayer> { Player1.Object, Player2.Object }); DiscColorManager.Setup(m => m.GetDiscColor('T')).Returns("rgb(0,0,0)"); var controller = new HomeController(PlayerRepo.Object, DiscColorManager.Object); var result = controller.ClearColors(); Assert.IsTrue(result.RouteValues.ContainsValue("Index")); }
/// <summary> /// Teleports player to his or her last home point. /// </summary> /// <param name="player">The player to teleport</param> private static void SendToHomePoint(NWGameObject player) { var playerID = GetGlobalID(player); var entity = PlayerRepo.Get(playerID); var area = GetAreaByResRef(entity.RespawnAreaResref); var position = Vector( entity.RespawnLocationX, entity.RespawnLocationY, entity.RespawnLocationZ); var location = Location(area, position, entity.RespawnLocationOrientation); AssignCommand(player, () => ActionJumpToLocation(location)); }
private void Save_Click(object sender, RoutedEventArgs e) { //try //{ PlayerRepo playerRepository = new PlayerRepo(); playerRepository.RegisterPlayer(playerName.Text, playerClub.Text, playerWarband.Text); MessageBox.Show($"New player: {playerName.Text}, has been created"); //} //catch //{ // MessageBox.Show("Fejl"); //} }
public void IndexModelShouldContainTwoPlayers() { PlayerRepo.Setup(p => p.GetPlayers()).Returns(new List <IPlayer>() { Player1.Object, Player2.Object }); var controller = new HomeController(PlayerRepo.Object, DiscColorManager.Object); var result = controller.Index() as ViewResult; var model = result.Model as IndexModel; var players = new List <IPlayer>(model.Players); Assert.IsTrue(players.Count == 2); }
public void TestMethodUpdateNonExistingPlayer() { IPlayerRepo playerRepo = new PlayerRepo(); bool error = false; try { playerRepo.updatePlayer(999999999, 1, 1, 2, 1); } catch (Exception) { error = true; } Assert.AreEqual(error, true); }
public static void Main() { var data = Script.GetScriptData <JobChanged>(); var newJob = data.NewJob; var player = data.Player; var playerID = GetGlobalID(player); var playerEntity = PlayerRepo.Get(playerID); var jobEntity = JobRepo.Get(playerID, newJob); playerEntity.CurrentJob = newJob; NWNXCreature.SetClassByPosition(player, ClassPosition.First, newJob); NWNXCreature.SetLevelByPosition(player, ClassPosition.First, jobEntity.Level); SetXP(player, jobEntity.XP); PlayerRepo.Set(playerEntity); }
public static void NextSeason() { Contract(); ClubStatus.Round = ClubStatus.LeagueId == 2 ? 5 : 1; ClubStatus.SeasonEnd.AddYears(1); ClubStatus.SeasonStart.AddYears(1); ClubStatus.CurrentDate = ClubStatus.LeagueId == 2 ? new DateTime(ClubStatus.SeasonStart.Year, 8, 19) : new DateTime(ClubStatus.SeasonStart.Year, 7, 19); NewSchedule(1); NewSchedule(2); PlayerRepo.UpdateOve(); Regen(); Retire(); ClubRepo.Reset(); PlayerRepo.UpdateVal(); ClubStatus.SerializeSave(); }
/// <summary> /// Retrieves feat user stats. Data is retrieved differently based on whether user is a player or NPC. /// </summary> /// <returns>The stats of the user</returns> private static UserStats GetUserStats(NWGameObject user, NWGameObject target, Feat feat) { var ability = AbilityRegistry.Get(feat); var targetLocation = GetIsObjectValid(target) ? GetLocation(target) : NWNXEvents.OnFeatUsed_GetTargetLocation(); var stats = new UserStats { User = user, AbilityDefinition = ability, Target = target, TargetLocation = targetLocation, CastingPosition = GetPosition(user), MPCost = ability.MP(user), Feat = feat }; // Players - retrieve from DB if (GetIsPlayer(user)) { var playerID = GetGlobalID(user); var player = PlayerRepo.Get(playerID); var cooldown = CooldownRepo.Get(playerID, feat); stats.MP = player.MP; stats.CooldownUnlock = cooldown.DateUnlocked; } // NPCs - retrieve from local variables else if (GetIsNPC(user)) { stats.MP = GetLocalInt(user, "MP_CURRENT"); var cooldown = GetLocalString(user, $"ABILITY_COOLDOWN_{feat}"); if (string.IsNullOrWhiteSpace(cooldown)) { stats.CooldownUnlock = DateTime.UtcNow; } else { stats.CooldownUnlock = DateTime.ParseExact(cooldown, "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture); } } stats.Now = DateTime.UtcNow; return(stats); }
private static void Regen() { var players = PlayerRepo.GetRet(); using (var connection = DBConnection.Instance.Connection) { foreach (int player in players) { DateTime date = new DateTime(ClubStatus.SeasonEnd.Year - 16, 1, 1); Random rnd = new Random(); date.AddDays(rnd.Next(365)); SQLiteCommand command = new SQLiteCommand($"update players set dateofbirth = \"{date:yyyy-MM-dd}\", contract_terminates = \"{ClubStatus.SeasonEnd.Year + 3}-{ClubStatus.SeasonEnd:MM-dd}\", overall = {rnd.Next(51, 65)}, isRetiring = 0 where id = {player}", connection); connection.Open(); command.ExecuteNonQuery(); connection.Close(); } } }
public void GetAllPlayer() { //Given string firstName = "Jay"; string lastName = "Kay"; DateTime dateOfBirth = new DateTime(2008, 5, 1, 8, 30, 52); int points = 0; Player p = new Player(firstName, lastName, dateOfBirth, points); PlayerRepo pRep = new PlayerRepo(); //When pRep.AddPlayer(p); pRep.GetAllPlayerBy(p); //Then List<Player> players = pRep.GetAllPlayers(); Assert.AreEqual(string.Format("[Firstname={0}][Lastname={0}]", players[0].ToString()); }
public void RunMigration(NWGameObject player) { var playerID = GetGlobalID(player); var entity = PlayerRepo.Get(playerID); var job = GetClassByPosition(ClassPosition.First, player); entity.Name = GetName(player); entity.CurrentJob = job; PlayerRepo.Set(entity); InitializeJobs(playerID); InitializeSkills(player); InitializeSavingThrows(player); RemoveNWNSpells(player); // Treat this initialization as a job change and a level-up. Publish.CustomEvent(player, JobEventPrefix.OnJobChanged, new JobChanged(player, job, job)); Publish.CustomEvent(player, JobEventPrefix.OnLeveledUp, new LeveledUp(player)); }
/// <summary> /// Handles the migration of player characters. /// </summary> public static void Main() { var player = _.GetEnteringObject(); if (!_.GetIsPlayer(player)) { return; } // Player doesn't have an ID assigned. Generate one and set it on them. string tag = _.GetTag(player); if (string.IsNullOrWhiteSpace(tag)) { var id = Guid.NewGuid(); _.SetTag(player, id.ToString()); } var playerID = _.GetGlobalID(player); var pcEntity = PlayerRepo.Get(playerID); // Iterate over the registered migrations. If player is below the migration version, that migration will be executed upon them. // If player is at or above that version, nothing will happen and they will move to the next migration in the list. foreach (var migration in _registeredMigrations) { if (pcEntity.Version < migration.Version) { try { migration.RunMigration(player); // The migration might have modified the entity. Pull back a fresh copy and update the version. pcEntity = PlayerRepo.Get(playerID); pcEntity.Version = migration.Version; PlayerRepo.Set(pcEntity); } catch (Exception ex) { throw new Exception($"Failed to apply migration {migration.GetType().FullName}", ex); } } } }
public async Task PlayerRepoEdit() { var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); try { var options = new DbContextOptionsBuilder <CookingQuestContext>() .UseSqlite(connection) .Options; using (var context = new CookingQuestContext(options)) { context.Database.EnsureCreated(); } using (var context = new CookingQuestContext(options)) { context.Player.Add(new Player { Gold = 10, Name = "Test", PlayerId = 1, }); context.SaveChanges(); var testRepo = new PlayerRepo(context); var player = await testRepo.GetPlayerById(1); player.Name = "Frank"; var editP = await testRepo.EditPlayer(player); Assert.Equal("Frank", (await testRepo.GetPlayerById(1)).Name); testRepo.Dispose(); } } finally { connection.Close(); } }
public void TestMethodLogin() { IPlayerRepo playerRepo = new PlayerRepo(); string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; char[] stringChars = new char[12]; Random random = new Random(); for (int i = 0; i < stringChars.Length; i++) { stringChars[i] = chars[random.Next(chars.Length)]; } string finalString = new String(stringChars); playerRepo.register(finalString, "Wachtwoord2", "Hunter"); bool login = playerRepo.login(finalString, "Wachtwoord2"); Assert.AreEqual(login, true); }
protected static void Recalculate(NWGameObject player) { var playerID = GetGlobalID(player); var playerEntity = PlayerRepo.Get(playerID); var @class = GetClassByPosition(ClassPosition.First, player); var level = GetLevelByPosition(ClassPosition.First, player); var jobDefinition = JobRegistry.Get(@class); // Retrieve the rating chart for the stat, then retrieve the value for that stat at this player's level. var hp = RatingRegistry.Get(jobDefinition.HPRating).Get(RatingStat.HP, level); var mp = RatingRegistry.Get(jobDefinition.MPRating).Get(RatingStat.MP, level); var ac = RatingRegistry.Get(jobDefinition.ACRating).Get(RatingStat.AC, level); var bab = RatingRegistry.Get(jobDefinition.BABRating).Get(RatingStat.BAB, level); var str = RatingRegistry.Get(jobDefinition.STRRating).Get(RatingStat.STR, level); var dex = RatingRegistry.Get(jobDefinition.DEXRating).Get(RatingStat.DEX, level); var con = RatingRegistry.Get(jobDefinition.CONRating).Get(RatingStat.CON, level); var wis = RatingRegistry.Get(jobDefinition.WISRating).Get(RatingStat.WIS, level); var @int = RatingRegistry.Get(jobDefinition.INTRating).Get(RatingStat.INT, level); var cha = RatingRegistry.Get(jobDefinition.CHARating).Get(RatingStat.CHA, level); // Now apply the changes to the player. ApplyHP(player, hp); playerEntity.MaxHP = hp; playerEntity.MaxMP = mp; playerEntity.HP = hp; playerEntity.MP = mp; NWNXCreature.SetBaseAC(player, ac); NWNXCreature.SetBaseAttackBonus(player, bab); NWNXCreature.SetRawAbilityScore(player, Ability.Strength, str); NWNXCreature.SetRawAbilityScore(player, Ability.Dexterity, dex); NWNXCreature.SetRawAbilityScore(player, Ability.Constitution, con); NWNXCreature.SetRawAbilityScore(player, Ability.Wisdom, wis); NWNXCreature.SetRawAbilityScore(player, Ability.Intelligence, @int); NWNXCreature.SetRawAbilityScore(player, Ability.Charisma, cha); PlayerRepo.Set(playerEntity); DelayCommand(1.0f, () => NWNXPlayer.UpdateCharacterSheet(player)); }
public static void Run(NWGameObject player) { if (!_.GetIsPlayer(player)) { return; } var area = _.GetArea(player); var position = _.GetPosition(player); var orientation = _.GetFacing(player); var playerID = _.GetGlobalID(player); var entity = PlayerRepo.Get(playerID); entity.LocationX = position.X; entity.LocationY = position.Y; entity.LocationZ = position.Z; entity.LocationOrientation = orientation; entity.LocationAreaResref = _.GetResRef(area); PlayerRepo.Set(entity); }
/// <summary> /// Applies all changes in stats to the database or creature local variables. /// </summary> /// <param name="stats">The current user stats.</param> private static void ApplyUserStatChanges(UserStats stats) { var delay = stats.AbilityDefinition.CooldownTime(stats.User); var dateUnlocks = DateTime.UtcNow.AddSeconds(delay); if (GetIsPlayer(stats.User)) { var playerID = GetGlobalID(stats.User); var player = PlayerRepo.Get(playerID); var cooldown = CooldownRepo.Get(playerID, stats.Feat); player.MP = stats.MP; cooldown.DateUnlocked = dateUnlocks; PlayerRepo.Set(player); CooldownRepo.Set(playerID, cooldown); } else if (GetIsNPC(stats.User)) { SetLocalInt(stats.User, "MP_CURRENT", stats.MP); SetLocalString(stats.User, $"ABILITY_COOLDOWN_{stats.Feat}", dateUnlocks.ToString("yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture)); } }
public void TestMethodBounty() { bool addPassed = false; bool deletePassed = true; int bountyID = 0; IBountyRepo bountyRepo = new BountyRepo(); string testBounty = "1234567891QWERTYZXCVBNMKGLDOWN"; bountyRepo.addBounty(testBounty, testBounty, 1); IPlayerRepo playerRepo = new PlayerRepo(); Player player = playerRepo.getPlayer(1); foreach (Bounty item in player.bounties) { if (item.description == testBounty) { addPassed = true; bountyID = item.ID; } } bountyRepo.deleteBounty(bountyID); player = playerRepo.getPlayer(1); foreach (Bounty item in player.bounties) { if (item.description == testBounty) { deletePassed = false; } } bool passed = false; if (addPassed && deletePassed) { passed = true; } Assert.AreEqual(passed, true); }
public void TestMethodWeapon() { bool addPassed = false; bool deletePassed = true; int weaponID = 0; IWeaponRepo weaponRepo = new WeaponRepo(); string testWeapon = "1234567891QWERTYZXCVBNMKGLDOWN"; weaponRepo.addWeapon(testWeapon, 100, 1, 1); IPlayerRepo playerRepo = new PlayerRepo(); Player player = playerRepo.getPlayer(1); foreach (Weapon item in player.weapons) { if (item.name == testWeapon) { addPassed = true; weaponID = item.ID; } } weaponRepo.deleteWeapon(weaponID); player = playerRepo.getPlayer(1); foreach (Weapon item in player.weapons) { if (item.name == testWeapon) { deletePassed = false; } } bool passed = false; if (addPassed && deletePassed) { passed = true; } Assert.AreEqual(passed, true); }
public static void Main() { var player = _.GetEnteringObject(); var area = _.GetArea(player); var areaTag = _.GetTag(area); // Must be a player entering the OOC entry area, otherwise we exit early. if (!_.GetIsPlayer(player) || areaTag != "ooc_area") { return; } var playerID = _.GetGlobalID(player); var entity = PlayerRepo.Get(playerID); var locationArea = _.GetAreaByResRef(entity.LocationAreaResref); var position = _.Vector(entity.LocationX, entity.LocationY, entity.LocationZ); var location = _.Location(locationArea, position, entity.LocationOrientation); _.AssignCommand(player, () => { _.ActionJumpToLocation(location); }); }
public readonly PlayerRepo _playerRepo; // DB repo class /// <summary> /// Creates the base controller used by all /// other controllers. Holds functions used /// throughout the controllers. /// </summary> /// <param name="playerRepo"></param> public BaseController(PlayerRepo playerRepo) { _playerRepo = playerRepo; }