public void AutoDelete() { NewCharacter CharToDelete = _context.NewCharacter.FirstOrDefault(ctd => ctd.isSaved == false && ctd.CreatedAt < DateTime.Now.AddHours(-6)); if (CharToDelete != null) { //Need to unravel the new character object and delete the character objects connected to it //Spell Associations - check //Feature Associations - check //playerClass - check //playerRace - check //playerStat - check //playerBG - check List <SpellAssoc> SpellsAssocToDelete = _context.Spell_Associations.Where(sa => sa.CharacterId == CharToDelete.CharacterId).ToList(); foreach (SpellAssoc sa in SpellsAssocToDelete) { _context.Spell_Associations.Remove(sa); } List <FeatureAssoc> FeatAssocToDelete = _context.Feature_Associations.Where(fa => fa.CharacterId == CharToDelete.CharacterId).ToList(); foreach (FeatureAssoc fa in FeatAssocToDelete) { _context.Feature_Associations.Remove(fa); } PlayerClass PClassToDelete = _context.PlayerClasses.FirstOrDefault(pc => pc.PlayerClassId == CharToDelete.playerClassId); _context.PlayerClasses.Remove(PClassToDelete); PlayerRace PRaceToDelete = _context.PlayerRaces.FirstOrDefault(pr => pr.PlayerRaceId == CharToDelete.playerRaceId); _context.PlayerRaces.Remove(PRaceToDelete); PlayerStat PStatToDelete = _context.PlayerStats.FirstOrDefault(ps => ps.PlayerStatId == CharToDelete.playerStatId); _context.PlayerStats.Remove(PStatToDelete); PlayerBG PGBToDelete = _context.PlayerBGs.FirstOrDefault(pbg => pbg.PlayerBGId == CharToDelete.playerBGId); _context.PlayerBGs.Remove(PGBToDelete); _context.NewCharacter.Remove(CharToDelete); } }
/// <summary> /// Creates a new character associated with a single campaign /// </summary> /// <param name="model"></param> /// <param name="userId"></param> /// <param name="shouldValidate">Whether to explicitly validate the given model</param> /// <exception cref="ArgumentNullException">If model is empty</exception> /// <exception cref="ValidationException">If shouldValidate = true and the given model is invalid</exception> /// <exception cref="DataNotCreatedException">If the character was not added to the database</exception> /// <returns>The character's ID</returns> public async Task <Guid> CreateCharacter(NewCharacter model, string userId, bool shouldValidate = false) { if (model == null || string.IsNullOrWhiteSpace(userId)) { throw new ArgumentNullException(nameof(model), "Character and user ID must not be null"); } if (shouldValidate) { Validator.ValidateObject(model, new ValidationContext(model), true); } using (var db = new DatabaseContext(options)) { var character = new Character(model, userId); db.Characters.Add(character); int changes = await db.SaveChangesAsync(); if (changes != 1) { throw new DataNotCreatedException("Could not add character to campaign"); } return(character.CharacterId); } }
public IActionResult deleteChar(int characterid) { NewCharacter CharToDelete = _context.NewCharacter.FirstOrDefault(ctd => ctd.CharacterId == characterid); if (CharToDelete != null) { List <SpellAssoc> SpellsAssocToDelete = _context.Spell_Associations.Where(sa => sa.CharacterId == CharToDelete.CharacterId).ToList(); foreach (SpellAssoc sa in SpellsAssocToDelete) { _context.Spell_Associations.Remove(sa); } List <FeatureAssoc> FeatAssocToDelete = _context.Feature_Associations.Where(fa => fa.CharacterId == CharToDelete.CharacterId).ToList(); foreach (FeatureAssoc fa in FeatAssocToDelete) { _context.Feature_Associations.Remove(fa); } PlayerClass PClassToDelete = _context.PlayerClasses.FirstOrDefault(pc => pc.PlayerClassId == CharToDelete.playerClassId); _context.PlayerClasses.Remove(PClassToDelete); PlayerRace PRaceToDelete = _context.PlayerRaces.FirstOrDefault(pr => pr.PlayerRaceId == CharToDelete.playerRaceId); _context.PlayerRaces.Remove(PRaceToDelete); PlayerStat PStatToDelete = _context.PlayerStats.FirstOrDefault(ps => ps.PlayerStatId == CharToDelete.playerStatId); _context.PlayerStats.Remove(PStatToDelete); PlayerBG PGBToDelete = _context.PlayerBGs.FirstOrDefault(pbg => pbg.PlayerBGId == CharToDelete.playerBGId); _context.PlayerBGs.Remove(PGBToDelete); _context.NewCharacter.Remove(CharToDelete); } _context.SaveChanges(); int?SessionId = HttpContext.Session.GetInt32("UserId"); return(RedirectToAction("Profile", new { ID = SessionId })); }
public InventoryPage(NewCharacter page)//(Creature Data) { InitializeComponent(); // Set the data binding for the page BindingContext = _viewModel = ItemsViewModel.Instance; newcPage = page; //page to assign items in new character page character = page.Data; }
public void NewCharacter(NewCharacter character) { dataUpdated = false; string json = JsonUtility.ToJson(character); string token = RandomString.Generate(); StartCoroutine(SendData("https://www.pixelsouls.be/newCharacter/" + token + "/" + user.tempToken, json, token)); //StartCoroutine(SendData("http://127.0.0.1:8000/newCharacter/" + token, json, token)); }
public static void NewCharacter() { NewCharacter P = new NewCharacter { CharacterName = NewCharacterDialog.CharacterNameTextBox.Text, Class = NewCharacterDialog.NewClass, Gender = NewCharacterDialog.NewGender }; Network.Enqueue(P); }
public bool CreateCharacter(BasicSheet sheet) { NewCharacter newCharacter = new NewCharacter(); Character = newCharacter.Get(sheet); DataCharacter dataCharacter = new DataCharacter(); dataCharacter.Save(Character); return(true); }
private IEnumerator SendNewCharacterData(string text) { NewCharacter character = new NewCharacter(); character.name = text; DBManager.Instance.NewCharacter(character); yield return(new WaitUntil(() => DBManager.Instance.dataUpdated)); GameManager.Instance.ChangeLevel("chooseCharacter"); checkCoroutine = null; }
public async Task <Character> CreateChar(Guid playerid, NewCharacter character) { Character _character = new Character() { _CharId = Guid.NewGuid(), _Name = character._Name, _Strength = character._Strength, _Agility = character._Agility, _Intelligence = character._Intelligence }; return(await _repository.CreateChar(playerid, _character)); }
public async Task Success_WithoutCampaign() { // Arrange var options = DatabaseSetup.CreateContextOptions(); const string userId = "The Best ID"; const string name = "My Character"; Guid? result = null; Type eType = null; // Act var games = new GameService(options); var character = new NewCharacter { Name = name, Strength = 10, Dexterity = 10, Mind = 10, CampaignId = null, Class = Micro20ClassType.Fighter, Race = Micro20RaceType.Human }; try { result = await games.CreateCharacter(character, userId, true); } catch (DataNotCreatedException e) { eType = e.GetType(); } // Assert Assert.NotNull(result); Assert.Null(eType); using (var db = new DatabaseContext(options)) { Assert.Equal(1, db.Characters.Count()); var dbCharacter = await db.Characters.SingleAsync(); Assert.Equal(result, dbCharacter.CharacterId); Assert.Equal(character.Strength, dbCharacter.BaseStrength); Assert.Equal(character.Dexterity, dbCharacter.BaseDexterity); Assert.Equal(character.Mind, dbCharacter.BaseMind); Assert.Equal(character.Race, dbCharacter.Race); Assert.Equal(character.Class, dbCharacter.Class); Assert.Null(dbCharacter.CampaignId); Assert.Equal(userId, dbCharacter.UserId); Assert.Equal(1, dbCharacter.Level); } }
public async Task Fail_BadCharacterData(string name, int str, int dex, int mind, int classType, int raceType) { // Arrange var options = DatabaseSetup.CreateContextOptions(); const string userId = "A user id"; var campaign = new Campaign { GmUserId = userId, Name = "A campaign" }; Type ex = null; Guid?result = null; using (var db = new DatabaseContext(options)) { db.Campaigns.Add(campaign); int changes = await db.SaveChangesAsync(); Assert.Equal(1, changes); } // Act var games = new GameService(options); var character = new NewCharacter { Name = name, Strength = str, Dexterity = dex, Mind = mind, CampaignId = campaign.CampaignId, Class = (Micro20ClassType)classType, Race = (Micro20RaceType)raceType }; try { result = await games.CreateCharacter(character, userId, true); } catch (ValidationException e) { ex = e.GetType(); } // Assert Assert.Null(result); Assert.NotNull(ex); using (var db = new DatabaseContext(options)) { Assert.False(db.Characters.Any()); } }
// Use this for initialization private void Start() { Input.multiTouchEnabled = false; // 플레이어 객체 캐싱 player = GameObject.Find("Player").GetComponent <NewCharacter>(); // Rect Component 캐싱 rectTrans = GetComponent <RectTransform>(); // 최대 ClickArea 이동 거리 지정 maxMove = 25.0f; }
public NewCharacter GetNewCharacter() { //Get player,player skills and player stats var newCharacter = new NewCharacter(); newCharacter.Races = new StoredRaces().GetRaces(); newCharacter.Stats = new StoredStat().GetStats(); newCharacter.Skills = new StoredSkill().GetSkills(); newCharacter.Feats = new StoredFeat().GetFeats(); newCharacter.Genders = new StoredGender().GetGenders(); newCharacter.Alignments = new StoredAlignment().GetAlignments(); newCharacter.Classes = new StoredClass().GetClasses(); return(newCharacter); }
public Character(NewCharacter model, string userId) { CampaignId = model.CampaignId; UserId = userId; Name = model.Name; Height = model.Height; Weight = model.Weight; HairColor = model.HairColor; EyeColor = model.EyeColor; BaseStrength = model.Strength; BaseDexterity = model.Dexterity; BaseMind = model.Mind; Race = model.Race; Class = model.Class; }
public async Task <IActionResult> AddCharacter([FromBody] NewCharacter character) { try { Console.WriteLine(character.characterVisualData.ToString(Newtonsoft.Json.Formatting.None)); var res = await characterModerationManager.CreateCharacter(HttpContext.GetUserIDFromJWTHeader(), character.characterName, character.characterVisualData); return(Ok(res)); } catch (Exception e) { Console.WriteLine(e.ToString()); return(BadRequest()); } }
public static void NewCharacter(NewCharacter P) { NewCharacterDialog.CharacterNameTextBox.Enabled = true; NewCharacterDialog.ConfirmButton.Enabled = true; switch (P.Result) { case 0: SceneFunctions.ShowMessage("An error occured when trying create your character."); break; case 1: NewCharacterDialog.Hide(); SceneFunctions.ShowMessage("Creating new characters is currently disabled."); break; case 2: SceneFunctions.ShowMessage("Your Character Name is not acceptable."); NewCharacterDialog.CharacterNameTextBox.SetFocus(); break; case 3: SceneFunctions.ShowMessage("The gender you selected does not exist.\n Contact a GM for assistance."); break; case 4: SceneFunctions.ShowMessage("The class you selected does not exist.\n Contact a GM for assistance."); break; case 5: SceneFunctions.ShowMessage("You cannot make anymore then " + Globals.MaxCharacterCount + " Characters."); NewCharacterDialog.Hide(); break; case 6: SceneFunctions.ShowMessage("A Character with this name already exists."); NewCharacterDialog.CharacterNameTextBox.SetFocus(); break; #if DEBUG default: throw new NotImplementedException(); #endif } }
public IActionResult UpdateNote(int characterId, string name, string notes) { // User Check to make sure login is completed, if not theredirect to login int? SessionId = HttpContext.Session.GetInt32("UserId"); User SessionUser = _context.Users.FirstOrDefault(u => u.UserId == SessionId); if (SessionUser == null) { return(View("UserLogin")); } NewCharacter CharacterUpdate = _context.NewCharacter.FirstOrDefault(c => c.CharacterId == characterId); CharacterUpdate.playerName = name; CharacterUpdate.playerNotes = notes; //isSaved Bool now in use v CharacterUpdate.isSaved = true; //isSaved Bool now in use ^ _context.SaveChanges(); return(RedirectToAction("ViewCharacter", new { ID = characterId })); }
public async Task <IActionResult> CreateCharacter(NewCharacter model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { string userId = users.GetUserId(); var result = await games.CreateCharacter(model, userId); return(Created(string.Empty, new { CharacterId = result.ToString() })); } catch (DataNotCreatedException e) { logger.LogWarning(0, e, "Could not create character"); return(BadRequest(new { Error = e.Message })); } }
public IActionResult ViewCharacter(int ID) { NewCharacter character = _context.NewCharacter.Include(c => c.playerRace).Include(c => c.playerClass).Include(c => c.playerStat).Include(c => c.playerBG).FirstOrDefault(c => c.CharacterId == ID); int?SessionId = HttpContext.Session.GetInt32("UserId"); ViewBag.SessionId = SessionId; User SessionUser = _context.Users.FirstOrDefault(u => u.UserId == SessionId); List <Feature> Feats = _context.NewCharacter .Include(c => c.FeaturesList) .ThenInclude(fa => fa.FeatureA) .FirstOrDefault(c => c.CharacterId == character.CharacterId) .FeaturesList.Select(f => f.FeatureA) .OrderBy(f => f.FeatLevel) .ToList(); List <Spell> Spells = _context.NewCharacter .Include(c => c.SpellList) .ThenInclude(sa => sa.SpellA) .FirstOrDefault(c => c.CharacterId == character.CharacterId) .SpellList.Select(s => s.SpellA) .OrderBy(f => f.SpellLevel) .ToList(); int passiveperception = 10 + character.playerStat.Perception; dynamic MyModel = new ExpandoObject(); MyModel.User = SessionUser; MyModel.Login = new Login(); MyModel.Character = character; MyModel.Spells = Spells; MyModel.Features = Feats; MyModel.PassivePerception = passiveperception; return(View("Index", MyModel)); }
public MainPage() { MAINPAGE = this; ApplicationViewTitleBar titleBar = ApplicationView.GetForCurrentView().TitleBar; titleBar.BackgroundColor = Colors.Black; titleBar.ForegroundColor = Colors.White; titleBar.ButtonBackgroundColor = Colors.Black; titleBar.ButtonForegroundColor = Colors.White; titleBar.InactiveBackgroundColor = Colors.Black; titleBar.InactiveForegroundColor = App.Colors.BUTTON_CLICK.Color; titleBar.ButtonInactiveBackgroundColor = Colors.Black; titleBar.ButtonHoverBackgroundColor = App.Colors.BUTTON_IDLE_LEFT.Color; titleBar.ButtonHoverForegroundColor = Colors.White; InitializeComponent(); NavCharacter.SetPageType(PageType.CHARACTER); NavBase.SetPageType(PageType.BASE); NavCombat.SetPageType(PageType.COMBAT); NavSkills.SetPageType(PageType.SKILLS); NavFeats.SetPageType(PageType.FEATS); NavInventory.SetPageType(PageType.INVENTORY); NavSpells.SetPageType(PageType.SPELLS); NavParty.SetPageType(PageType.PARTY); NavSettings.SetPageType(PageType.SETTINGS); NavSettings1.SetPageType(PageType.SETTINGS); NewCharacter.SetLoadType(LoadType.NEW); LoadCharacter.SetLoadType(LoadType.LOAD); DeleteCharacter.SetLoadType(LoadType.DELETE); SortOptions.SetLoadType(LoadType.SORT); NavCharactersMenu.SetLoadType(LoadType.MENU); LoadCharacters(); //ChangePage(NavCharacter); }
public static void CreateNewCharacter(PartyWin partywin, Button charpos) { Character chara = new Character(); NewCharacter newcharacter = new NewCharacter(partywin, charpos); newcharacter.CharTypeCombo.Items.Add("Warrior"); newcharacter.CharTypeCombo.Items.Add("Cleric"); newcharacter.CharTypeCombo.Items.Add("Rogue"); newcharacter.CharTypeCombo.Items.Add("Wizard"); newcharacter.CharTypeCombo.Items.Add("Barbarian"); newcharacter.CharTypeCombo.Items.Add("Elf"); newcharacter.CharTypeCombo.Items.Add("Dwarf"); newcharacter.CharTypeCombo.Items.Add("Halfling"); newcharacter.GoldBox.Text = "0"; for (int i = 1; i < 16; i++) { newcharacter.LevelCombo.Items.Add(i); } newcharacter.LevelCombo.SelectedIndex = 0; newcharacter.Show(); }
public void PlayerLoggedIn(ScoreoidPlayer player) { /**HACK: The only reason this is stored in this case is to support if a player registers, does not select a weapon, logs in later, and is brought to the weaponselect screen. The weaponselection screen is designed to read a new- character object so we fill this out just in case. ***/ // Start a new character object character = new NewCharacter(); //TODO: Since this is global, should be forcefully dereferenced // Store these details between this step and the weapon selection phase character.name = player.playerName; character.password = passwordInput; Utilities().setCurrentCharacter(player); }
public IActionResult SpecificGeneration(string selectedrace, string selectedclass, string selectedlevel) { AutoDelete(); int? SessionId = HttpContext.Session.GetInt32("UserId"); User SessionUser = _context.Users.FirstOrDefault(u => u.UserId == SessionId); if (SessionUser == null) { return(View("UserLogin")); } int Level = Int32.Parse(selectedlevel); if (Level == 0) //Assign the base choice value as == 0 { Level = rand.Next(1, 21); } //creating input for creation and modification of base in other functions PlayerStat playerStat = new PlayerStat(Level); // Run player stat through background PlayerBG playerBG = new PlayerBG(); // Returns player Stat VVV playerBG.BGSelector(playerStat, playerBG); // Determines player Race and then run stats PlayerRace playerRace = new PlayerRace(); // Returns player Stat VVV // Determine Player Class and run playerStat if (selectedrace != "Random") { playerRace.SpecificRaceSelector(Level, playerStat, playerRace, selectedrace); } else { playerRace.RaceSelector(Level, playerStat, playerRace); } PlayerClass playerClass = new PlayerClass(Level, playerStat); // Returns player Stat VVV if (selectedclass != "Random") { playerClass.SpecClassSelector(Level, playerStat, playerClass, selectedclass); } else { playerClass.ClassSelector(Level, playerStat, playerClass); } // reruns numbers based on updated proficiencies and skill increases playerStat.UpdatePro(playerStat); // create connection to all character objects within the character NewCharacter newPlayer = new NewCharacter(Level, playerStat, playerRace, playerClass, playerBG, SessionUser); _context.PlayerStats.Add(playerStat); _context.PlayerBGs.Add(playerBG); _context.PlayerClasses.Add(playerClass); _context.PlayerRaces.Add(playerRace); _context.NewCharacter.Add(newPlayer); // Feat Generation List <Feature> charFeatures = _context.Features.Where(f => ((f.FeatSource == playerClass.ClassName) && (f.FeatLevel <= Level)) || ((f.FeatSource == playerClass.SubClassName) && (f.FeatLevel <= Level))).ToList(); foreach (Feature feat in charFeatures) { var Fassoc = new FeatureAssoc(newPlayer, feat); _context.Feature_Associations.Add(Fassoc); _context.SaveChanges(); } List <Feature> Feats = _context.NewCharacter.Include(c => c.FeaturesList) .ThenInclude(fa => fa.FeatureA) .FirstOrDefault(c => c.CharacterId == newPlayer.CharacterId) .FeaturesList.Select(f => f.FeatureA) .OrderBy(f => f.FeatLevel) .ToList(); List <Spell> ClassAvailbleSpells = _context.Spells.Where(s => s.Source1 == newPlayer.playerClass.ClassName || s.Source2 == newPlayer.playerClass.ClassName || s.Source3 == newPlayer.playerClass.ClassName || s.Source4 == newPlayer.playerClass.ClassName || s.Source5 == newPlayer.playerClass.ClassName || s.Source6 == newPlayer.playerClass.ClassName || s.Source7 == newPlayer.playerClass.ClassName ).ToList(); List <Spell> NonClassSpells = _context.Spells.Where(s => s.Source1 != newPlayer.playerClass.ClassName || s.Source2 != newPlayer.playerClass.ClassName || s.Source3 != newPlayer.playerClass.ClassName || s.Source4 != newPlayer.playerClass.ClassName || s.Source5 != newPlayer.playerClass.ClassName || s.Source6 != newPlayer.playerClass.ClassName || s.Source7 != newPlayer.playerClass.ClassName ).ToList(); Spell FetchSpell = new Spell(); List <Spell> availableSpells = FetchSpell.GetPossibleSpells(newPlayer, ClassAvailbleSpells, NonClassSpells); SpellAssoc AlwaysPreppedChecker = new SpellAssoc(); foreach (Spell s in availableSpells) { SpellAssoc a = new SpellAssoc(newPlayer, s);//always true AlwaysPreppedChecker.AlwaysPreppedChecker(newPlayer, s, a); _context.Spell_Associations.Add(a); _context.SaveChanges(); } List <Spell> Spells = _context.NewCharacter .Include(c => c.SpellList) .ThenInclude(sa => sa.SpellA) .FirstOrDefault(c => c.CharacterId == newPlayer.CharacterId) .SpellList.Select(s => s.SpellA) .OrderBy(f => f.SpellLevel) .ThenBy(f => f.SpellName) .ToList(); _context.SaveChanges(); int passiveperception = 10 + newPlayer.playerStat.Perception; //Dynamic model with USer, Login, Character dynamic MyModel = new ExpandoObject(); MyModel.User = SessionUser; MyModel.Login = new Login(); MyModel.Character = newPlayer; MyModel.Features = Feats; MyModel.Spells = Spells; MyModel.PassivePerception = passiveperception; return(View("Index", MyModel)); }
public IActionResult Index() { // Check for features, if null populate DB Feature featTest = _context.Features.FirstOrDefault(f => f.FeatureId == 1); if (featTest == null) { Feature feats = new Feature(); List <Feature> FeatureList = feats.GenerateFeatureList(); foreach (Feature f in FeatureList) { _context.Features.Add(f); _context.SaveChanges(); } } // Check for spells, if null populate DB Spell spellTest = _context.Spells.FirstOrDefault(s => s.SpellId == 1); if (spellTest == null) { Spell spell = new Spell(); List <Spell> SpellList = spell.GenerateSpellList(); foreach (Spell s in SpellList) { _context.Spells.Add(s); _context.SaveChanges(); } } // Check for base user, if null Populate DB User userCheck = _context.Users.FirstOrDefault(u => u.UserId == 1); if (userCheck == null) { string email = "*****@*****.**"; string uName = "UnameTest"; string PW = "vu942kjdaiduq934i3o4odsud9qw324"; User testUser = new User(email, uName, PW); _context.Users.Add(testUser); _context.SaveChanges(); userCheck = testUser; } // Create a function to generate 1 character for display if none in dB NewCharacter characterCheck = _context.NewCharacter.FirstOrDefault(c => c.CharacterId == 1); if (characterCheck == null) { NewCharacter test = new NewCharacter(1, userCheck); test.isSaved = true; test.playerName = "First Character Generated"; _context.PlayerStats.Add(test.playerStat); _context.PlayerBGs.Add(test.playerBG); _context.PlayerClasses.Add(test.playerClass); _context.PlayerRaces.Add(test.playerRace); _context.NewCharacter.Add(test); _context.SaveChanges(); List <Feature> charFeatures = _context.Features.Where(f => ((f.FeatSource == test.playerClass.ClassName) && (f.FeatLevel <= test.Level)) || ((f.FeatSource == test.playerClass.SubClassName) && (f.FeatLevel <= test.Level))).ToList(); foreach (Feature feat in charFeatures) { var Fassoc = new FeatureAssoc(test, feat); //id 1- 42 _context.Feature_Associations.Add(Fassoc); _context.SaveChanges(); } // Get all associated features with characterID List <Feature> Feats = _context.NewCharacter .Include(c => c.FeaturesList) .ThenInclude(fa => fa.FeatureA) .FirstOrDefault(c => c.CharacterId == test.CharacterId) .FeaturesList.Select(f => f.FeatureA) .OrderBy(f => f.FeatLevel) .ToList(); List <Spell> ClassAvailbleSpells = _context.Spells.Where(s => s.Source1 == test.playerClass.ClassName || s.Source2 == test.playerClass.ClassName || s.Source3 == test.playerClass.ClassName || s.Source4 == test.playerClass.ClassName || s.Source5 == test.playerClass.ClassName || s.Source6 == test.playerClass.ClassName || s.Source7 == test.playerClass.ClassName ).ToList(); List <Spell> NonClassSpells = _context.Spells.Where(s => s.Source1 != test.playerClass.ClassName || s.Source2 != test.playerClass.ClassName || s.Source3 != test.playerClass.ClassName || s.Source4 != test.playerClass.ClassName || s.Source5 != test.playerClass.ClassName || s.Source6 != test.playerClass.ClassName || s.Source7 != test.playerClass.ClassName ).ToList(); Spell FetchSpell = new Spell(); List <Spell> Spells = FetchSpell.GetPossibleSpells(test, ClassAvailbleSpells, NonClassSpells); SpellAssoc AlwaysPreppedChecker = new SpellAssoc(); foreach (Spell s in Spells) { SpellAssoc a = new SpellAssoc(test, s); //insert alwayspreppedfunction here AlwaysPreppedChecker.AlwaysPreppedChecker(test, s, a); _context.Spell_Associations.Add(a); _context.SaveChanges(); } int passiveperception = 10 + test.playerStat.Perception; // Dynamic model to provide all available objects and data dynamic MyModel = new ExpandoObject(); MyModel.User = userCheck; MyModel.Login = new Login(); MyModel.Character = test; MyModel.Features = Feats; MyModel.Spells = Spells; MyModel.PassivePerception = passiveperception; return(View("index", MyModel)); } // if DB is populated with spells, feats, 1 character and 1 user are already present else { // Home screen selects and shows previously generated characters. IF players would like to generate new characters or save them, they must login int? SessionId = HttpContext.Session.GetInt32("UserId"); User SessionUser = _context.Users.FirstOrDefault(u => u.UserId == SessionId); // Get list of all Currently generated characters List <NewCharacter> CharacterList = _context.NewCharacter.ToList(); // select random character and gather all stats, BG, Race and class // random selection might need tweaking int characterNum = 1; NewCharacter character = _context.NewCharacter.Include(c => c.playerRace).Include(c => c.playerClass).Include(c => c.playerStat).Include(c => c.playerBG).FirstOrDefault(c => c.CharacterId == characterNum); // LINQ query all Feature Associations List <Feature> Feats = _context.NewCharacter .Include(c => c.FeaturesList) .ThenInclude(fa => fa.FeatureA) .FirstOrDefault(c => c.CharacterId == character.CharacterId) .FeaturesList.Select(f => f.FeatureA) .OrderBy(f => f.FeatLevel) .ToList(); List <Spell> Spells = _context.NewCharacter .Include(c => c.SpellList) .ThenInclude(sa => sa.SpellA) .FirstOrDefault(c => c.CharacterId == character.CharacterId) .SpellList.Select(s => s.SpellA) .OrderBy(f => f.SpellLevel) .ThenBy(f => f.SpellName) .ToList(); // Pass Model User, Character, Feats //passiveperception, because it hates trying to do it on the front end int passiveperception = 10 + character.playerStat.Perception; dynamic MyModel = new ExpandoObject(); MyModel.User = SessionUser; MyModel.Login = new Login(); MyModel.Character = character; MyModel.Features = Feats; MyModel.Spells = Spells; MyModel.PassivePerception = passiveperception; return(View("index", MyModel)); } }
public void Initialize() { #region Toolbar setup _fileMenu = new Menu(); _fileMenuItem = new MenuItem(); _fileMenuItem.Header = "File"; _saveFile = new MenuItem(); _saveFile.Click += (sender, args) => { Save?.Invoke(); }; _saveFile.Header = "Save character"; _loadFile = new MenuItem(); _loadFile.Click += (sender, args) => { Load?.Invoke(); }; _loadFile.Header = "Load character"; _newCharacter = new MenuItem(); _newCharacter.Click += (sender, args) => { NewCharacter?.Invoke(); }; _newCharacter.Header = "New character"; _fileMenuItem.Items.Add(_newCharacter); _fileMenuItem.Items.Add(_saveFile); _fileMenuItem.Items.Add(_loadFile); _fileMenu.Items.Add(_fileMenuItem); _toolBar = new ToolBar(); _toolBar.Items.Add(_fileMenu); Grid.SetColumn(_toolBar, 0); Grid.SetRow(_toolBar, 0); #endregion #region Content setup StackPanel contentLayout = new StackPanel(); Grid.SetColumn(contentLayout, 0); Grid.SetRow(contentLayout, 1); Label nameLabel = new Label(); nameLabel.Content = "Character name:"; contentLayout.Children.Add(nameLabel); _name = new TextBox(); contentLayout.Children.Add(_name); Label baseInfoLabel = new Label(); baseInfoLabel.Content = "Base information:"; contentLayout.Children.Add(baseInfoLabel); _baseInformation = new TextBox(); _baseInformation.Height = 70; _baseInformation.TextWrapping = TextWrapping.Wrap; _baseInformation.AcceptsReturn = true; contentLayout.Children.Add(_baseInformation); Label appearanceLabel = new Label(); appearanceLabel.Content = "Character appearance:"; contentLayout.Children.Add(appearanceLabel); _appearance = new TextBox(); _appearance.Height = 70; _appearance.TextWrapping = TextWrapping.Wrap; _appearance.AcceptsReturn = true; contentLayout.Children.Add(_appearance); Label desctiptionLabel = new Label(); desctiptionLabel.Content = "Character description:"; contentLayout.Children.Add(desctiptionLabel); _description = new TextBox(); _description.Height = 300; _description.TextWrapping = TextWrapping.Wrap; _description.AcceptsReturn = true; contentLayout.Children.Add(_description); #endregion #region Grid setup _gridPanel = new Grid(); RowDefinition rd1 = new RowDefinition(); rd1.Height = GridLength.Auto; _gridPanel.RowDefinitions.Add(rd1); RowDefinition rd2 = new RowDefinition(); _gridPanel.RowDefinitions.Add(rd2); ColumnDefinition cd1 = new ColumnDefinition(); _gridPanel.ColumnDefinitions.Add(cd1); _gridPanel.Children.Add(_toolBar); _gridPanel.Children.Add(contentLayout); _gridPanel.HorizontalAlignment = HorizontalAlignment.Stretch; _gridPanel.VerticalAlignment = VerticalAlignment.Stretch; _gridPanel.Margin = new Thickness(0.2); #endregion }
// Use this for initialization void Start() { soundEffect = GetComponentInChildren <AudioSource>(); character = GetComponent <NewCharacter>(); StartCoroutine(MovingSound()); }
public void OnNewCharacter(NewCharacter package) { _stateHandler.EntityManager.AddEntity(package.ObjectId, package.CharacterName, GameObject.GameObjectType.Player, GameObject.GameObjectSubType.Player); }
protected override void SpecificInit() { player = FindObjectOfType <NewPlayer>(); }
// -- Registration: Step 2 - Username and Password were available, and a "Player" was created public void PlayerRegistered() { // Start a new character object character = new NewCharacter(); // Store these details between this step and the character selection phase character.name = characterNameInput; character.password = passwordInput; // Start the character selection Utilities().setGameState(GameState.WeaponSelection); }
public static void handlePacket(GameClient client, byte[] buff) { byte id = buff[0]; string cninfo = "handlepacket: request " + id.ToString("x2") + " size " + buff.Length; string str = "header: " + buff[0].ToString("x2") + "\n"; foreach (byte b in buff) { str += b.ToString("x2") + " "; } Console.WriteLine(str); //File.WriteAllText("header_" + buff[0].ToString("x2")+".txt", str); GameServerNetworkRequest msg = null; switch (id) { case 0x00: msg = new ProtocolVersion(client, buff); break; case 0x08: msg = new AuthLogin(client, buff); break; case 0x09: msg = new Logout(client, buff); break; case 0x0b: msg = new CharacterCreate(client, buff); break; //case 0x0c: // msg = new CharacterDelete(client, buff); // break; case 0x0d: msg = new CharacterSelected(client, buff); break; case 0x0e: msg = new NewCharacter(client, buff); break; //case 0x62: // msg = new CharacterRestore(client, buff); // break; //case 0x68: // msg = new RequestPledgeCrest(client, buff); // break; //case 0x0c: // msg = new CharacterCreate(client, buff); // break; //case 0x00: // msg = new ProtocolVersion(client, buff); // break; //case 0x09: // msg = new RequestSetPledgeCrest(client, buff); // break; case 0x01: msg = new MoveBackwardToLocation(client, buff); break; case 0x03: msg = new EnterWorld(client, buff); break; case 0x0f: msg = new RequestItemList(client, buff); break; case 0x11: msg = new RequestUnEquipItem(client, buff); break; case 0x14: msg = new RequestUseItem(client, buff); break; case 0x1A: msg = new RequestStartTrade(client, buff); break; case 0x16: msg = new RequestAddTradeItem(client, buff); break; case 0x17: msg = new RequestTradeDone(client, buff); break; case 0x04: msg = new RequestAction(client, buff); break; case 0x20: msg = new RequestLinkHtml(client, buff); break; case 0x21: msg = new RequestBypassToServer(client, buff); break; case 0x26: msg = new RequestWithdrawalPledge(client, buff); break; case 0x8c: msg = new RequestGetItemFromPet(client, buff); break; case 0x1b: msg = new RequestSocialAction(client, buff); break; case 0x1e: msg = new RequestSellItem(client, buff); break; case 0x2f: msg = new RequestMagicSkillUse(client, buff); break; case 0x30: msg = new Appearing(client, buff); break; case 0x3B: msg = new RequestWarehouseDeposit(client, buff); break; case 0x32: msg = new RequestWarehouseWithdraw(client, buff); break; case 0x33: msg = new RequestShortCutReg(client, buff); break; case 0x35: msg = new RequestShortCutDel(client, buff); break; case 0x1f: msg = new RequestBuyItem(client, buff); break; case 0x29: msg = new RequestJoinParty(client, buff); break; case 0x2a: msg = new RequestAnswerJoinParty(client, buff); break; case 0x2b: msg = new RequestWithDrawalParty(client, buff); break; case 0x2c: msg = new RequestOustPartyMember(client, buff); break; case 0x36: msg = new CannotMoveAnymore(client, buff); break; case 0x37: msg = new RequestTargetCanceld(client, buff); break; case 0x38: msg = new Say2(client, buff); break; case 0x42: msg = new RequestGetOnVehicle(client, buff); break; case 0x43: msg = new RequestGetOffVehicle(client, buff); break; case 0x44: msg = new AnswerTradeRequest(client, buff); break; case 0x45: msg = new RequestActionUse(client, buff); break; case 0x46: msg = new RequestRestart(client, buff); break; case 0x48: msg = new ValidatePosition(client, buff); break; case 0x4a: msg = new StartRotating(client, buff); break; case 0x4b: msg = new FinishRotating(client, buff); break; case 0x57: msg = new RequestShowBoard(client, buff); break; case 0x58: msg = new RequestEnchantItem(client, buff); break; case 0x59: msg = new RequestDestroyItem(client, buff); break; case 0x64: msg = new RequestQuestAbort(client, buff); break; case 0x66: msg = new RequestPledgeInfo(client, buff); break; case 0xcd: msg = new RequestShowMiniMap(client, buff); break; case 0x6D: msg = new RequestSendMsnChatLog(client, buff); break; case 0xcf: msg = new RequestRecordInfo(client, buff); break; case 0x73: msg = new RequestAcquireSkillInfo(client, buff); break; case 0x74: msg = new SendBypassBuildCmd(client, buff); break; case 0x75: msg = new RequestMoveToLocationInVehicle(client, buff); break; case 0x7C: msg = new RequestAcquireSkill(client, buff); break; case 0x7D: msg = new RequestRestartPoint(client, buff); break; case 0x80: msg = new RequestPartyMatchList(client, buff); break; case 0x85: msg = new RequestTutorialLinkHtml(client, buff); break; case 0x86: msg = new RequestTutorialPassCmdToServer(client, buff); break; // case 0x87: // msg = new RequestTutorialQuestionMark(); // break; case 0x93: msg = new RequestChangePetName(client, buff); break; case 0x94: msg = new RequestPetUseItem(client, buff); break; case 0x95: msg = new RequestGiveItemToPet(client, buff); break; case 0xB0: msg = new MultiSellChoose(client, buff); break; case 0xB1: msg = new NetPingResponse(client, buff); break; case 0xaa: msg = new BypassUserCmd(client, buff); break; case 0xB5: msg = new RequestRecipeBookOpen(client, buff); break; case 0xB6: msg = new RequestRecipeBookDestroy(client, buff); break; case 0xB7: msg = new RequestRecipeItemMakeInfo(client, buff); break; case 0xB8: msg = new RequestRecipeItemMakeSelf(client, buff); break; case 0xC1: msg = new ObserverReturn(client, buff); break; case 0xC7: msg = new RequestWearItem(client, buff); break; case 0xD0: byte id2 = buff[1]; cninfo = "handlepacket: request unk id2 " + id2.ToString("x2") + " size " + buff.Length; switch (id2) { case 8: msg = new RequestManorList(client, buff); break; case 0x11: msg = new RequestExSetPledgeCrestLarge(client, buff); break; case 5: msg = new RequestAutoSoulShot(client, buff); break; case 0x16: msg = new RequestPledgeMemberInfo(client, buff); break; case 0x1E: msg = new RequestExRqItemLink(client, buff); break; case 0x24: msg = new RequestSaveInventoryOrder(client, buff); break; case 0x22: msg = new RequestCursedWeaponList(client, buff); break; case 0x4B: msg = new RequestDispel(client, buff); break; case 0x4C: msg = new RequestExTryToPutEnchantTargetItem(client, buff); break; case 0x4D: msg = new RequestExTryToPutEnchantSupportItem(client, buff); break; case 0x4E: msg = new RequestExCancelEnchantItem(client, buff); break; //case 0x51: // byte id3 = buff[3]; // cninfo = "handlepacket: request unk id3 " + id3.ToString("x2") + " size " + buff.Length; // switch (id3) // { // case 0: // msg = new RequestBookMarkSlotInfo(client, buff); // break; // case 1: // msg = new RequestSaveBookMarkSlot(client, buff); // break; // case 2: // msg = new RequestModifyBookMarkSlot(client, buff); // break; // case 3: // msg = new RequestDeleteBookMarkSlot(client, buff); // break; // case 4: // msg = new RequestTeleportBookMark(client, buff); // break; // } // break; case 0x58: msg = new RequestDominionInfo(client, buff); break; case 0x65: msg = new RequestPostItemList(client, buff); break; case 0x67: msg = new RequestReceivedPostList(client, buff); break; case 0x69: msg = new RequestReceivedPost(client, buff); break; case 0x6C: msg = new RequestSentPostList(client, buff); break; case 0x6E: msg = new RequestSentPost(client, buff); break; case 0x76: msg = new RequestBuySellUIClose(client, buff); break; case 0x78: msg = new RequestPartyLootModification(client, buff); break; case 0x79: msg = new AnswerPartyLootModification(client, buff); break; case 0x7F: msg = new RequestBR_GamePoint(client, buff); break; case 0x80: msg = new RequestBR_ProductList(client, buff); break; case 0x81: msg = new RequestBR_ProductInfo(client, buff); break; case 0x82: msg = new RequestBR_BuyProduct(client, buff); break; case 0x83: msg = new RequestBR_RecentProductList(client, buff); break; case 0x84: msg = new RequestBR_MinigameLoadScores(client, buff); break; case 0x85: msg = new RequestBR_MinigameInsertScore(client, buff); break; default: // out_debug(2, buff); break; } break; default: // out_debug(1, buff); break; } // Console.WriteLine(cninfo + ", " + cnt); if (msg == null) { Console.WriteLine(cninfo + ", " + cnt); // out_debug(0, buff); // cnt++; return; } if (msg.Client.IsTerminated) { return; } new Thread(new ThreadStart(msg.run)).Start(); }
public async Task <Character> CreateChar(Guid userid, [FromBody] NewCharacter character) { return(await _processor.CreateChar(userid, character)); }