public void Xp_gained_on_exploration() { var level = TestHelper.BuildLevel(@" ... >.. ..#"); level.Difficulty = 3; var player = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 0)); player.Position.Heading = Direction.West; var manager = player.Manager; manager.Queue.ProcessQueue(manager); Assert.Equal(9, player.Being.ExperiencePoints); var travelMessage = manager.TravelSystem.CreateTravelMessage(manager); travelMessage.Entity = player; travelMessage.TargetHeading = Direction.East; travelMessage.TargetCell = new Point(0, 0); manager.Enqueue(travelMessage); manager.Queue.ProcessQueue(manager); Assert.Equal(27, player.Being.ExperiencePoints); }
public void Hp_and_ep_depend_on_might_and_focus_and_regenerate_with_xp() { var level = TestHelper.BuildLevel("."); var playerEntity = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 0)); ItemData.PotionOfOgreness.Instantiate(playerEntity); var manager = playerEntity.Manager; manager.Queue.ProcessQueue(manager); var being = playerEntity.Being; Assert.Equal(100, being.EnergyPointMaximum); Assert.Equal(100, being.EnergyPoints); Assert.Equal(100, being.HitPointMaximum); Assert.Equal(100, being.HitPoints); being.EnergyPoints -= 50; being.HitPoints -= 50; manager.XPSystem.AddPlayerXP(25, manager); manager.Queue.ProcessQueue(manager); Assert.Equal(60, being.EnergyPoints); Assert.Equal(60, being.HitPoints); TestHelper.ActivateAbility(ItemData.PotionOfOgreness.Name + ": Drink", playerEntity, manager); manager.Queue.ProcessQueue(manager); Assert.Equal(90, being.EnergyPointMaximum); Assert.Equal(60, being.EnergyPoints); Assert.Equal(120, being.HitPointMaximum); Assert.Equal(60, being.HitPoints); }
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); } }
public void ItemConsumptionEvent() { var level = TestHelper.BuildLevel(); var flask = ItemData.FlaskOfHealing.Instantiate(level.Entity.Manager).Referenced; var potion = ItemData.PotionOfExperience.Instantiate(level.Entity.Manager).Referenced; var blob = CreatureData.AcidBlob.Instantiate(level, new Point(0, 0)); var player = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 2)); var manager = level.Entity.Manager; var languageService = manager.Game.Services.Language; Assert.Equal("The acid blob drinks from a flask of healing.", languageService.GetString( new ItemActivationEvent(player, flask, blob, blob, SenseType.Sight | SenseType.Sound, SenseType.Sight | SenseType.Sound, SenseType.Sight | SenseType.Sound, consumed: false, successful: true))); Assert.Equal("You drink from the flask of healing.", languageService.GetString( new ItemActivationEvent(player, flask, player, player, SenseType.Sight | SenseType.Sound, SenseType.Sight | SenseType.Touch, SenseType.Sight | SenseType.Touch, consumed: false, successful: true))); Assert.Equal("You drink the potion of experience.", languageService.GetString( new ItemActivationEvent(player, potion, player, player, SenseType.Sight | SenseType.Sound, SenseType.Sight | SenseType.Touch, SenseType.Sight | SenseType.Touch, consumed: true, successful: true))); }
public Player(Position position, char objectSymbol, string name, PlayerRace race) : base(position, objectSymbol, name, 0, 0) { this.Race = race; this.inventory = new List <Item>(); this.SetPlayerStats(); }
void Start() { gridPlayer = new FantPlayer[gridSizeX, gridSizeY]; gridTile = new GameObject[gridSizeX, gridSizeY]; GenerateGrid(gridSizeX, gridSizeY); gridTileMod = new GameObject[gridSizeX, gridSizeY]; SetUpBoard(teamComp); #region Arc Formulas arcFormula[0, 0] = 54.6f; arcFormula[0, 1] = 24.7f; arcFormula[0, 2] = -.0239589f; arcFormula[0, 3] = 2.86863f; arcFormula[0, 4] = -28.2054f; arcFormula[1, 0] = 49.4f; arcFormula[1, 1] = 26.6f; arcFormula[1, 2] = -.0163687f; arcFormula[1, 3] = 2.16521f; arcFormula[1, 4] = -13.812f; #endregion //DEBUG PURPOSES ONLY teamRace = PlayerRace.Human; gridPlayer[0, 0].HasBall = true; //DEBUG PURPOSES ONLY }
//public int Life //{ // get { return _life; } // set // { // _life = value <= MaxLife ? value : MaxLife; // }//set Life //}//Life property #endregion //ctors: FQCTOR only public Player(string name, int hitChance, int block, int maxLife, int life, Weapon equippedWeapon, PlayerRace race) { MaxLife = maxLife; Name = name; HitChance = hitChance; Block = block; Life = life; EquippedWeapon = equippedWeapon; Race = race; switch (Race) { case PlayerRace.Elf: break; case PlayerRace.Dwarf: break; case PlayerRace.Human: break; case PlayerRace.Gnome: break; case PlayerRace.WhiteRabbit: EquippedWeapon.MaxDamage += 5; EquippedWeapon.MinDamage += 2; break; default: break; } }//FQCTOR
void Awake() { charGender = PlayerGender.Unspecified; charClass = PlayerClass.NonSelected; charRace = PlayerRace.NonSelected; }
public void ItemEquipmentEvent() { var level = TestHelper.BuildLevel(); var armor = ItemData.MailArmor.Instantiate(level.Entity.Manager).Referenced; var nymph = CreatureData.WaterNymph.Instantiate(level, new Point(0, 1)); var player = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 2)); var manager = level.Entity.Manager; var languageService = manager.Game.Services.Language; Assert.Equal("The water nymph equips something on the torso.", languageService.GetString(new ItemEquipmentEvent( player, nymph, armor, SenseType.Sight, SenseType.Sound, EquipmentSlot.Torso))); Assert.Equal("Something equips a mail armor.", languageService.GetString(new ItemEquipmentEvent( player, nymph, armor, SenseType.Sound, SenseType.Sight, EquipmentSlot.Torso))); Assert.Equal("You equip something on the torso.", languageService.GetString(new ItemEquipmentEvent( player, player, armor, SenseType.Sight | SenseType.Touch, SenseType.Touch, EquipmentSlot.Torso))); var sword = ItemData.LongSword.Instantiate(level.Entity.Manager).Referenced; Assert.Equal("You equip the long sword in the main hand for melee.", languageService.GetString(new ItemEquipmentEvent( player, player, sword, SenseType.Sight | SenseType.Touch, SenseType.Sight | SenseType.Touch, EquipmentSlot.GraspPrimaryMelee))); }
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 PlayerCharacter() { PlayerRace chosenRace = new PlayerRace(); PlayerCharacterClass chosenCharacterClass = new PlayerCharacterClass(); SetPlayerSavingThrows(); }
public Player(Position position, char objectSymbol, string name, PlayerRace race) : base(position, objectSymbol, name, 0, 0) { this.Race = race; this.inventory = new List<Item>(); this.SetPlayerStats(); }
public CharacterData(SerializationInfo _Info, StreamingContext _Context) { Race = (PlayerRace)_Info.GetInt32("Race"); Class = (PlayerClass)_Info.GetInt32("Class"); Sex = (PlayerSex)_Info.GetInt32("Sex"); Level = _Info.GetInt32("Level"); }
public void Races_level_up() { var level = TestHelper.BuildLevel("."); var playerEntity = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 0)); var player = playerEntity.Player; ItemData.PotionOfExperience.Instantiate(playerEntity, 13); ItemData.PotionOfElfness.Instantiate(playerEntity); var manager = playerEntity.Manager; manager.Queue.ProcessQueue(manager); Assert.Equal(0, player.SkillPoints); Assert.Equal(0, player.TraitPoints); Assert.Equal(0, player.MutationPoints); Assert.Equal(1000, player.NextLevelXP); Assert.Equal(14, manager.AbilitiesToAffectableRelationship[playerEntity.Id].Count()); Assert.Equal(2, manager.EntityItemsToContainerRelationship[playerEntity.Id].Count()); TestHelper.ActivateAbility(ItemData.PotionOfExperience.Name + ": Drink", playerEntity, manager); manager.Queue.ProcessQueue(manager); Assert.Equal(2, manager.XPSystem.GetXPLevel(playerEntity, manager)); Assert.Equal(3, player.SkillPoints); Assert.Equal(3, player.TraitPoints); Assert.Equal(0, player.MutationPoints); Assert.Equal(2000, player.NextLevelXP); var experienceAbility = manager.AffectableAbilitiesIndex[(playerEntity.Id, ItemData.PotionOfExperience.Name + ": Drink")];
public void Visibility_updated_on_travel() { var level = TestHelper.BuildLevel(TestMap); var nymph = CreatureData.WaterNymph.Instantiate(level, new Point(0, 1)); var player = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 2)); player.Position.Heading = Direction.West; var manager = player.Manager; ItemData.Dagger.Instantiate(nymph); manager.Queue.ProcessQueue(manager); var dagger = manager.EntityItemsToContainerRelationship[nymph.Id].Single(); Assert.Equal(SenseType.Sight, manager.SensorySystem.CanSense(player, nymph)); Assert.Equal(SenseType.Sight, manager.SensorySystem.SensedByPlayer(nymph, nymph.Position.LevelCell)); Assert.Equal(SenseType.Sight | SenseType.Touch | SenseType.Telepathy, manager.SensorySystem.CanSense(player, player)); Assert.Equal(SenseType.Sight | SenseType.Touch | SenseType.Telepathy, manager.SensorySystem.SensedByPlayer(player, player.Position.LevelCell)); Assert.Equal(SenseType.Sight, manager.SensorySystem.CanSense(player, dagger)); Assert.Equal(SenseType.Sight, manager.SensorySystem.SensedByPlayer(dagger, nymph.Position.LevelCell)); var expectedVisibleMap = @" . . ."; TestHelper.AssertVisibility(level, expectedVisibleMap, level.VisibleTerrain); var expectedKnownMap = @" . . ."; TestHelper.AssertTerrain(level, expectedKnownMap, level.KnownTerrain); var travelMessage = manager.TravelSystem.CreateTravelMessage(manager); travelMessage.Entity = player; travelMessage.TargetHeading = Direction.South; travelMessage.TargetCell = player.Position.LevelCell; manager.Enqueue(travelMessage); manager.Queue.ProcessQueue(manager); Assert.Equal(SenseType.None, manager.SensorySystem.CanSense(player, nymph)); Assert.Equal(SenseType.None, manager.SensorySystem.SensedByPlayer(nymph, nymph.Position.LevelCell)); Assert.Equal(SenseType.None, manager.SensorySystem.CanSense(player, dagger)); Assert.Equal(SenseType.None, manager.SensorySystem.SensedByPlayer(dagger, nymph.Position.LevelCell)); expectedVisibleMap = @" ..#"; TestHelper.AssertVisibility(level, expectedVisibleMap, level.VisibleTerrain); expectedKnownMap = @" . . ..#"; TestHelper.AssertTerrain(level, expectedKnownMap, level.KnownTerrain); }
public Player(string playerName, PlayerRace playerRace, PlayerSex playerSex) // конструктор для неизменяемых полей { PlayerID = Guid.NewGuid(); PlayerName = playerName; Race = playerRace; Sex = playerSex; Backpack = new Dictionary <Artefact, int>(); }
//allows to set the stats of the player easily public void SetStats(int passing, int moving, int shooting, int combat, int defence, PlayerRace race, Vector2Int poss) { Passing = passing; Moving = moving; Shooting = shooting; Combat = combat; Defence = defence; Race = race; Poss = poss; }
private void UpdateHabRanges(PlayerRace race) { this.GravityRange = race.GravityTolerance; this.TemperatureRange = race.TemperatureTolerance; this.RadiationRange = race.RadiationTolerance; this.MaxGravityTerraform = race.GetMaxTerraformTech(HabitationParameterType.Gravity); this.MaxTemperatureTerraform = race.GetMaxTerraformTech(HabitationParameterType.Temperature); this.MaxRadiationTerraform = race.GetMaxTerraformTech(HabitationParameterType.Radiation); }
// Ctors public Player(string name, int hitChance, int block, int life, int maxLife, Weapon equippedWeapon, PlayerRace race, Inventory playerInventory) { Maxlife = maxLife; Name = name; HitChance = hitChance; Block = block; Life = life; EquippedWeapon = equippedWeapon; Race = race; Potions = 0; // start with 0 potions InventorySize = 5; PlayerInventory = playerInventory; MonstersSlain = 0; //PlayerInventory.Items.Capacity = InventorySize; switch (Race) { case PlayerRace.Human: Potions += 1; HitChance += 5; Block += 5; break; case PlayerRace.Elf: break; case PlayerRace.Dwarf: Maxlife += 10; Life += 10; break; case PlayerRace.Orc: break; case PlayerRace.Gnome: break; case PlayerRace.DragonBorn: break; case PlayerRace.Halfling: break; case PlayerRace.HalfElf: break; case PlayerRace.HalfOrc: break; case PlayerRace.Tiefling: break; default: break; } }
//Constructor that fills in all properties public FantPlayer(int passing, int moving, int shooting, int combat, int defence, string tag, PlayerRace race) { Passing = passing; Moving = moving; Shooting = shooting; Combat = combat; Defence = defence; Race = race; this.tag = tag; HasBall = false; }
public static string GetDisplayName(this PlayerRace race) { return(race switch { PlayerRace.Human => "Human", PlayerRace.Dwarf => "Dwarf", PlayerRace.NightElf => "Night Elf", PlayerRace.Gnome => "Gnome", PlayerRace.Draenei => "Draenei", _ => "Unknown" });
public void Skills_add_abilities() { var level = TestHelper.BuildLevel("."); var playerEntity = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 0)); ItemData.SkillbookOfWaterSourcery.Instantiate(playerEntity); var manager = playerEntity.Manager; manager.Queue.ProcessQueue(manager); Assert.Null(manager.AffectableAbilitiesIndex[(playerEntity.Id, "ice shard")]);
public static string GetDisplayName(this PlayerRace race) { return(race switch { PlayerRace.Human => "Human", PlayerRace.Dwarf => "Dwarf", PlayerRace.NightElf => "Night Elf", PlayerRace.Gnome => "Gnome", PlayerRace.Draenei => "Draenei", _ => throw new ArgumentOutOfRangeException(nameof(race)) });
public void Welcome() { var level = TestHelper.BuildLevel(); var player = PlayerRace.InstantiatePlayer("Conan the Barbarian", Sex.Male, level.Entity, new Point(0, 0)); var manager = level.Entity.Manager; var languageService = manager.Game.Services.Language; var message = languageService.Welcome(player); Assert.Equal("Welcome to the test branch, Conan the Barbarian!", message); }
public static string GetVariableName(this PlayerRace playerRace) { return(playerRace switch { PlayerRace.Human => RacePreferenceName.Human, PlayerRace.Orc => RacePreferenceName.Orc, PlayerRace.NightElf => RacePreferenceName.NightElf, PlayerRace.Undead => RacePreferenceName.Undead, // PlayerRace.Demon => RacePreferenceName.Demon, // _ => RacePreferenceName.UserSelectable, _ => RacePreferenceName.Random, });
public Player(Position position, char playerSymbol, string name, PlayerRace race) : base(position, playerSymbol, name, PlayerDefaultDamage, PlayerDefaultHealth) { this.Race = race; this.inventory = new List <Item>(); this.Experiance = 0; this.LevelUpCap = 200; this.Level = 0; this.LevelUpCapIncreaseStep = 50; this.PlayerMaximumHealth = this.GetPlayerMaximumHealth(); this.SetPlayerStats(); }
public void characterSetupWizard(string value, string step) { if (step == "race") { var selectedRace = PlayerRace.selectRace(value); Clients.Caller.updateCharacterSetupWizard("race", selectedRace.name, selectedRace.help, selectedRace.imgUrl); } else if (step == "class") { var selectedClass = PlayerClass.selectClass(value); Clients.Caller.updateCharacterSetupWizard("class", selectedClass.name, selectedClass.description, selectedClass.imgUrl); } }
public static PlayerFaction GetFaction(PlayerRace _Race) { if (_Race == PlayerRace.Human || _Race == PlayerRace.Gnome || _Race == PlayerRace.Dwarf || _Race == PlayerRace.Night_Elf || _Race == PlayerRace.Draenei) { return(PlayerFaction.Alliance); } else if (_Race == PlayerRace.Orc || _Race == PlayerRace.Undead || _Race == PlayerRace.Tauren || _Race == PlayerRace.Troll || _Race == PlayerRace.Blood_Elf) { return(PlayerFaction.Horde); } return(PlayerFaction.Unknown); }
void Start() { gridPlayer = new FantPlayer[gridSizeX, gridSizeY]; gridTile = new GameObject[gridSizeX, gridSizeY]; GenerateGrid(gridSizeX, gridSizeY); gridTileMod = new GameObject[gridSizeX, gridSizeY]; SetUpBoard(teamComp); //DEBUG PURPOSES ONLY teamRace = PlayerRace.Human; gridPlayer[0, 0].HasBall = true; //DEBUG PURPOSES ONLY }
public void Reserved_ep_does_not_replenish() { var level = TestHelper.BuildLevel("."); var playerEntity = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 0)); var manager = playerEntity.Manager; manager.Queue.ProcessQueue(manager); var being = playerEntity.Being; Assert.Equal(100, being.EnergyPointMaximum); Assert.Equal(100, being.EnergyPoints); Assert.Equal(0, being.ReservedEnergyPoints); being.EnergyPoints += 50; Assert.Equal(100, being.EnergyPoints); being.EnergyPoints -= 120; Assert.Equal(0, being.EnergyPoints); being.ReservedEnergyPoints = -50; Assert.Equal(0, being.ReservedEnergyPoints); being.EnergyPoints = 100; being.ReservedEnergyPoints = 60; Assert.Equal(40, being.EnergyPoints); being.EnergyPoints = 100; Assert.Equal(40, being.EnergyPoints); being.ReservedEnergyPoints = 150; Assert.Equal(100, being.ReservedEnergyPoints); Assert.Equal(0, being.EnergyPoints); being.ReservedEnergyPoints = 0; being.EnergyPoints = 50; being.EnergyPointMaximum = 200; manager.Queue.ProcessQueue(manager); Assert.Equal(200, being.EnergyPointMaximum); Assert.Equal(0, being.ReservedEnergyPoints); Assert.Equal(50, being.EnergyPoints); }
public void DeathEvent() { var level = TestHelper.BuildLevel(); var blob = CreatureData.AcidBlob.Instantiate(level, new Point(0, 0)); var player = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 2)); var manager = level.Entity.Manager; var languageService = manager.Game.Services.Language; Assert.Equal("The acid blob dies.", languageService.GetString(new DeathEvent(player, blob, SenseType.Sight))); Assert.Equal("You die!", languageService.GetString(new DeathEvent(player, player, SenseType.Sight | SenseType.Touch))); }
public void GetPossibleMovementDirections_returns_correct_directions() { var level = TestHelper.BuildLevel(@" .#. .>. ..."); var nymph = CreatureData.WaterNymph.Instantiate(level, new Point(0, 1)); var manager = nymph.Manager; var player = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 2)); manager.Queue.ProcessQueue(manager); Assert.Equal(new[] { Direction.North, Direction.Southeast }, manager.TravelSystem.GetPossibleMovementDirections(nymph.Position, safe: true, manager)); }
/// <summary> /// Picks the player's race. /// </summary> /// <param name="pRace">Player Race.</param> void PickRace(PlayerRace pRace) { // }