예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }
예제 #4
0
        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)));
        }
예제 #5
0
 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();
 }
예제 #6
0
    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
    }
예제 #7
0
        //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
예제 #8
0
    void Awake()
    {
        charGender = PlayerGender.Unspecified;

        charClass = PlayerClass.NonSelected;
        charRace = PlayerRace.NonSelected;
    }
예제 #9
0
        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 }));
        }
예제 #11
0
        public PlayerCharacter()
        {
            PlayerRace           chosenRace           = new PlayerRace();
            PlayerCharacterClass chosenCharacterClass = new PlayerCharacterClass();

            SetPlayerSavingThrows();
        }
예제 #12
0
 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();
 }
예제 #13
0
 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");
 }
예제 #14
0
        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")];
예제 #15
0
        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);
        }
예제 #16
0
파일: Program.cs 프로젝트: LozovskiM/GAME
 public Player(string playerName, PlayerRace playerRace, PlayerSex playerSex) // конструктор для неизменяемых полей
 {
     PlayerID   = Guid.NewGuid();
     PlayerName = playerName;
     Race       = playerRace;
     Sex        = playerSex;
     Backpack   = new Dictionary <Artefact, int>();
 }
예제 #17
0
 //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;
 }
예제 #18
0
        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);
        }
예제 #19
0
        // 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;
            }
        }
예제 #20
0
 //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;
 }
예제 #21
0
 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"
     });
예제 #22
0
        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")]);
예제 #23
0
 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))
     });
예제 #24
0
        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);
        }
예제 #25
0
 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,
     });
예제 #26
0
 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();
 }
예제 #27
0
 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);
     }
 }
예제 #28
0
        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);
        }
예제 #29
0
    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

    }
예제 #30
0
        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);
        }
예제 #31
0
        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)));
        }
예제 #32
0
        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));
        }
예제 #33
0
 /// <summary>
 /// Picks the player's race.
 /// </summary>
 /// <param name="pRace">Player Race.</param>
 void PickRace(PlayerRace pRace)
 {
     //
 }