Inheritance: MonoBehaviour
 public override void Fire(PlayerCharacter character)
 {
     if (Ammo <= 0)
     {
         Reload();
     }
 }
Esempio n. 2
0
    void Awake()
    {
        _playerSpawnPointPos = new Vector3(1078,252,1055);
        GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT);

        if(go == null){
            Debug.LogWarning("Can not find player spawn point.");

            go = new GameObject(GameSettings.PLAYER_SPAWN_POINT);
            Debug.Log("Created player spawn point.");
            go.transform.position = _playerSpawnPointPos;
        }

        _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject;
        _pc.name = "pc";

        _pcScript = _pc.GetComponent<PlayerCharacter>();

        zOffset = -2.5f;
        yOffset = 2.5f;
        xRotOffset = 22.5f;

        //		mainCamera.transform.position = new Vector3(_pc.transform.position.x,_pc.transform.position.y +yOffset,_pc.transform.position.z +zOffset);
        //		mainCamera.transform.Rotate(xRotOffset, 0, 0);

        //LoadCharacter();
    }
Esempio n. 3
0
File: Weapon.cs Progetto: MPLLC/GitS
 public void Equip(PlayerCharacter PC)
 {
     try
     {
         if (PC.LeftHand != null)
         {
             if (PC.RightHand != null)
             {
                 PC.Inventory.Add(this);
             }
             else
             {
                 PC.RightHand = this;
             }
         }
         else
         {
             PC.LeftHand = this;
         }
     }
     catch (Exception e)
     {
         Console.Write(e.Message);
     }
 }
        public override PlayerCharacter ApplyEffect(PlayerCharacter pc)
        {
            switch (AbilityScoreToModify)
            {
                case enumAbilityScore.Strength:
                    pc.AbilityScore.Strength += Value;
                    break;
                case enumAbilityScore.Dexterity:
                    pc.AbilityScore.Dexterity += Value;
                    break;
                case enumAbilityScore.Constitution:
                    pc.AbilityScore.Constitution += Value;
                    break;
                case enumAbilityScore.Intelligence:
                    pc.AbilityScore.Intelligence += Value;
                    break;
                case enumAbilityScore.Wisdom:
                    pc.AbilityScore.Wisdom += Value;
                    break;
                case enumAbilityScore.Charisma:
                    pc.AbilityScore.Charisma += Value;
                    break;
                default:
                    break;
            }

            return pc;
        }
Esempio n. 5
0
    // Use this for initialization
    void Start()
    {
        _playerSpawnPointPos = new Vector3 (0.0f, 0.057f, -136.9f);
        GameObject go = GameObject.Find (GameSettings.PLAYER_SPAWN_POINT) as GameObject;

        if (go == null) {
            Debug.LogWarning ("Couldn't find Player Spawn Point. Did you forget to add it, mate?");

            go = new GameObject (GameSettings.PLAYER_SPAWN_POINT);
            Debug.Log ("Created Player Spawn Point");

            go.transform.position = _playerSpawnPointPos;
            Debug.Log ("Moved Player Spawn Point");
        }
        _player = Instantiate (playerCharacter, go.transform.position, Quaternion.identity) as GameObject;
        _player.name = "Player";

        _playerScript = _player.GetComponent<PlayerCharacter> ();

        //		mainCamera.transform.position = new Vector3 (_player.transform.position.x, _player.transform.position.y + yOffset, _player.transform.position.z + zOffset);
        //		mainCamera.transform.Rotate (xRotOffset, 0, 0);

        LoadCharacter ();
        _isLoadComplete = true;
    }
Esempio n. 6
0
 public void Start()
 {
     player = GameMainReferences.Instance.PlayerCharacter;
     _spell = player.GetSpellAtIndex(_spellIndex);
     ChangeSpellIcon(_spell);
     player.OnSpellChanged += OnSpellChanged;
 }
Esempio n. 7
0
        public static void checkSpecialCollisions(PlayerCharacter pc, EBossS1 boss, Rectangle fieldBounds)
        {
            // This is a pretty hackey way to do this and I'll re-write this system in a bit but I'm in a hurry now because it's 2AM on Monday.
            foreach (ExplodingBullet b in boss.getExplodingBullets())
            {
                Rectangle bulletRect = b.getRect();

                // If the bullet is exploded, check the shards.
                if (b.isExploded())
                {
                    foreach (Bullet bullet in b.getShards())
                    {
                        Rectangle shardRect = bullet.getRect();
                        if (shardRect.Intersects(pc.getRect()) && bullet.inPlay && pc.alive && !pc.respawning)
                        {
                            pc.Hit();
                            bullet.inPlay = false;
                        }
                    }
                }
                // Otherwise check the main bullet and not the shards.
                else
                {
                    if (bulletRect.Intersects(pc.getRect()) && b.inPlay && pc.alive && !pc.respawning)
                    {
                        pc.Hit();
                        b.inPlay = false;
                    }
                }
            }
        }
        private void handleHarvest(PlayerCharacter pc, IncommingMessage msg)
        {
            if (pc.LoginState == PlayerCharacterLoginState.LoginSuccesfull)
            {
                HarvestIncommingMessage msgHarvest = (HarvestIncommingMessage)msg;

                switch (pc.LocationCurrentMap.Name)
                {
                    case ("calindor_startmap.elm"):
                        {
                            switch (msgHarvest.TargetObjectID)
                            {
                                case(138):
                                case (139):
                                    {

                                        ActionDescriptor actDesc = new HarvestActionDescriptor(2000, 1000);
                                        actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 3, 15));
                                        HarvestableResourceDescriptor rscDef =
                                            new HarvestableResourceDescriptor(
                                            ItemDefinitionCache.GetItemDefinitionByID(2), actDesc , 1);
                                        pc.HarvestStart(rscDef);
                                        break;
                                    }
                                case (274):
                                    {
                                        ActionDescriptor actDesc = new HarvestActionDescriptor(3000, 1000);
                                        actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 10, 25));
                                        HarvestableResourceDescriptor rscDef =
                                            new HarvestableResourceDescriptor(
                                            ItemDefinitionCache.GetItemDefinitionByID(3), actDesc, 1);
                                        pc.HarvestStart(rscDef);
                                        break;
                                    }
                                case (194):
                                    {
                                        ActionDescriptor actDesc = new HarvestActionDescriptor(3000, 1000);
                                        actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 10, 25));
                                        HarvestableResourceDescriptor rscDef =
                                            new HarvestableResourceDescriptor(
                                            ItemDefinitionCache.GetItemDefinitionByID(3), actDesc, 2);
                                        pc.HarvestStart(rscDef);
                                        break;
                                    }
                                case (276):
                                    {
                                        ActionDescriptor actDesc = new HarvestActionDescriptor(3000, 1000);
                                        actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 8, 20));
                                        HarvestableResourceDescriptor rscDef =
                                            new HarvestableResourceDescriptor(
                                            ItemDefinitionCache.GetItemDefinitionByID(7), actDesc, 1);
                                        pc.HarvestStart(rscDef);
                                        break;
                                    }
                            }
                            break;
                        }
                }
            }
        }
Esempio n. 9
0
        public void ShouldNoHaveNickName()
        {
            PlayerCharacter test = new PlayerCharacter();
            var actualResult = test.NickName;

            Assert.Null(actualResult);
        }
Esempio n. 10
0
    // Use this for initialization
    void Start()
    {
        _playerSpawnPointPos = new Vector3(3,-20,0); //the default position for our player spawn point

        GameObject go = GameObject.Find(GameSettings.PLAYER_POSITION);

        if(go == null) {
            go = new GameObject(GameSettings.PLAYER_POSITION);

            go.transform.position = GameSettings.LoadPlayerPosition();
            //go.transform.position = _playerSpawnPointPos;
        }

        _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject;
        _pc.name = "pc";

        _pcScript = _pc.GetComponent<PlayerCharacter>();

        zOffset = -2.5f;
        yOffset = 2.5f;
        xRotOffset = 22.5f;

        mainCamera.transform.position = new Vector3(_pc.transform.position.x, _pc.transform.position.y + yOffset, _pc.transform.position.z + zOffset);
        mainCamera.transform.Rotate(xRotOffset, 0, 0);

        LoadCharacter();
    }
Esempio n. 11
0
 public override void OnStart()
 {
     base.OnStart();
     _slowStat = new EntityStats(-2f, 0f, ElementalStats.Zero, ElementalStats.Zero, ElementalStats.Zero, ElementalStats.Zero);
     _slowTimer = new Timer(0.25f);
     _lastSelectTime = Time.time;
     _playerCharacter = gameObject.GetComponent<PlayerCharacter>();
     _costumeBaseSpellReference = GetComponent<PlayerCostume>().CostumeBaseSpell;
     GameMainController.Instance.OnCinematicChange += OnCinematicChange;
     // Unlock all saved elements
     int eIndex = 0;
     if (GameDataManager.GameData != null)
     {
         foreach (Element e in GameDataManager.GameData.PlayerData.UnlockedElements)
         {
             SetSelectedElement(eIndex, e);
             eIndex++;
         }
     }
     else
     {
         // Load debug elements
         SetSelectedElement(0, LevelMetaInfo.Instance.FirstDebugElement);
         SetSelectedElement(1, LevelMetaInfo.Instance.SecondDebugElement);
         SetSelectedElement(2, LevelMetaInfo.Instance.ThirdDebugElement);
         SetSelectedElement(3, LevelMetaInfo.Instance.FourthDebugElement);
     }
     var p = StatusTextPool.Instance.GetObjectFromPool((e) =>
     {
         e.TextColor = Color.green;
         e.StatusText = "This is test";
         e.Target = Entity.GUIHealthPoint;
     });
 }
	private Vector3 _playerSpawnPointPos;	// this is the position of the player's spawn point

	// Use this for initialization
	void Start () {
		_playerSpawnPointPos = new Vector3(96, 9, 47);	// position of spawn point
		GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT);
		
		if(go == null ){
			Debug.LogWarning("Cant find Player's Spawn");
			
			go = new GameObject(GameSettings.PLAYER_SPAWN_POINT);
			Debug.Log(" Created Spawn Point");
			
			go.transform.position = _playerSpawnPointPos;
			Debug.Log("Moved the Spawn Point");
		}
		_pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity)as GameObject;
	
		_pc.name = "pc";
		_pcScript = _pc.GetComponent<PlayerCharacter>();
		zOffset = -0.58f;
		yOffset = 0.3f;
		xOffset = -0.03f;
		xRotOffset = 21.45f;
		yRotOffset = 0.94f;
		zRotOffset = 0.38f;
		
		mainCamara.transform.position = new Vector3(_pc.transform.position.x + xOffset, _pc.transform.position.y +yOffset,_pc.transform.position.z + zOffset);
		mainCamara.transform.Rotate(xRotOffset, yRotOffset, zRotOffset);
		
		LoadCharacter();
	}
Esempio n. 13
0
    // Use this for initialization
    void Start()
    {
        GameObject go = GameObject.Find (GameSettings.PLAYER_SPAWN_POINT);
        _playerSpawnPosition = new Vector3 (570, 6, 630);

        if( go == null ) {

            go = new GameObject( GameSettings.PLAYER_SPAWN_POINT );
            go.transform.position = _playerSpawnPosition;
        }

        _pc = Instantiate( playerCharacter, go.transform.position, Quaternion.identity ) as GameObject;
        _pc.name = "pc";

        _pcScript = _pc.GetComponent<PlayerCharacter>();

        zOffset = -2.5f;
        yOffset = 2.5f;
        xRotOffset = 15f;

        mainCamera.transform.position = new Vector3(_pc.transform.position.x , _pc.transform.position.y + yOffset, _pc.transform.position.z + zOffset);
        mainCamera.transform.Rotate(xRotOffset, 0, 0);
        _mainCameraScript = mainCamera.GetComponent<CameraMove>();
        _mainCameraScript.target = _pc.transform;

        LoadCharacter();
    }
Esempio n. 14
0
    // Use this for initialization
    void Start()
    {
        GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT);	// player spawn point gameobject

        _playerSpawnPointPos = new Vector3(1285, 5, 1666);					// default position for player spawn point

        if (go == null) // check if go isn't null
        {
            Debug.LogWarning("Cannot find player spawn point");
            go = new GameObject(GameSettings.PLAYER_SPAWN_POINT);
            go.transform.position = _playerSpawnPointPos;
            Debug.Log("Created player spawn point");
        }

        _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject;
        _pc.name = "pc";

        _pcScript = _pc.GetComponent<PlayerCharacter>();

        // Get camera to be behind player char
        zOffset = -2.5f;
        yOffset = 2.5f;
        xRotOffset = 22.5f;
        mainCamera.transform.position = new Vector3(_pc.transform.position.x,
                                                    _pc.transform.position.y + yOffset,
                                                    _pc.transform.position.z + zOffset);
        mainCamera.transform.Rotate(xRotOffset, 0, 0);

        LoadCharacter();
    }
 public void ReferenceEqualityDemo()
 {
     var player1 = new PlayerCharacter();
     var player2 = new PlayerCharacter();
     var somePlayer = player1;
     Assert.That(somePlayer,Is.SameAs(player1));
 }
 public void ShouldGainHealthAfterSleeping()
 {
     var playerCharacter = new PlayerCharacter();
     playerCharacter.Sleep();
     playerCharacter.HitPoints.ShouldBeGreaterThan(100);
     playerCharacter.HitPoints.ShouldBeLessThanOrEqualTo(200);
 }
Esempio n. 17
0
    // Use this for initialization
    void Start()
    {
        _playerSpawnPointPos = new Vector3(0,5,0);			//The default position for our player spawn point

        GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT);

        if(go == null) {
        //			Debug.LogWarning("Can not find Player Spawn Point");

            go = new GameObject(GameSettings.PLAYER_SPAWN_POINT);
        //			Debug.Log("Created Player Spawn Point");

            go.transform.position = _playerSpawnPointPos;
        //			Debug.Log("Moved Player Spawn Point");
        }

        _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject;

        _pc.name = "pc";
        _pcScript = _pc.GetComponent<PlayerCharacter>();

        zOffset = -2.5f;
        yOffset = 2.5f;
        xRotOffset = 34.5f;

        mainCamera.transform.position = new Vector3(_pc.transform.position.x, _pc.transform.position.y + yOffset, _pc.transform.position.z + zOffset);
        mainCamera.transform.Rotate(xRotOffset, 0 , 0);

        LoadCharacter();
    }
Esempio n. 18
0
 private void Start()
 {
     _player = GameMainReferences.Instance.PlayerController;
     _playerCharacter = GameMainReferences.Instance.PlayerCharacter;
     _playerCharacter.OnLevelUp += _playerCharacter_OnLevelUp;
     GameMainController.Instance.OnCinematicChange += OnCinematicChange;
 }
Esempio n. 19
0
        static void Main()
        {
            var playerOne = new PlayerCharacter(new DiamondSkinDefense())
            {
                Name = "Jeremy"
            };

            var playerTwo = new PlayerCharacter(new IronBonesDefence()){
                Name = "Jac",
                DateOfBirth =  DateTime.Now,
                DaysSinceLastLogin = 5,
                Health = 100,
                IsNoob = true
            };

            var playerThree = new PlayerCharacter(SpecialDefense.Null)
            {
                Name = "John"
            };

            playerOne.Hit(10);
            playerTwo.Hit(10);
            playerThree.Hit(10);

            PlayerDisplayer.Write(playerOne);
            PlayerDisplayer.Write(playerTwo);
            PlayerDisplayer.Write(playerThree);
        }
        private void handlePM(PlayerCharacter pc, IncommingMessage msg)
        {
            if (pc.LoginState == PlayerCharacterLoginState.LoginSuccesfull)
            {
                SendPMIncommingMessage msgSendPM = (SendPMIncommingMessage)msg;
                PlayerCharacter sendToPlayer = getPlayerByName(msgSendPM.RecipientName);

                if (sendToPlayer == null)
                {
                    RawTextOutgoingMessage msgToSender =
                        (RawTextOutgoingMessage)OutgoingMessagesFactory.Create(OutgoingMessageType.RAW_TEXT);
                    msgToSender.Color = PredefinedColor.Blue1;
                    msgToSender.Channel = PredefinedChannel.CHAT_LOCAL;
                    msgToSender.Text = "The one you seek is not here...";
                    pc.PutMessageIntoMyQueue(msgToSender);
                }
                else
                {
                    RawTextOutgoingMessage msgToSender =
                        (RawTextOutgoingMessage)OutgoingMessagesFactory.Create(OutgoingMessageType.RAW_TEXT);
                    msgToSender.Color = PredefinedColor.Purple1;
                    msgToSender.Channel = PredefinedChannel.CHAT_PERSONAL;
                    msgToSender.Text = "[PM to " + sendToPlayer.Name + ": " + msgSendPM.Text + "]";
                    pc.PutMessageIntoMyQueue(msgToSender);

                    RawTextOutgoingMessage msgToRecipient =
                        (RawTextOutgoingMessage)OutgoingMessagesFactory.Create(OutgoingMessageType.RAW_TEXT);
                    msgToRecipient.Color = PredefinedColor.Purple1;
                    msgToRecipient.Channel = PredefinedChannel.CHAT_PERSONAL;
                    msgToRecipient.Text = "[PM from " + pc.Name + ": " + msgSendPM.Text + "]";
                    sendToPlayer.PutMessageIntoMyQueue(msgToRecipient);
                }
            }
        }
Esempio n. 21
0
        public void ShouldHaveDeafultName2()
        {
            PlayerCharacter test = new PlayerCharacter();
            var actualResult = test.Name;

            Assert.True(!string.IsNullOrEmpty(actualResult));
        }
 private void handleTurnRight(PlayerCharacter pc, IncommingMessage msg)
 {
     if (pc.LoginState == PlayerCharacterLoginState.LoginSuccesfull)
     {
         pc.LocationTurnRight();
     }
 }
 public PlayerState( PlayerStateMachine stateMachine, PlayerCharacter character, PlayerController controller )
 {
     this.stateMachine = stateMachine;
     this.controller = controller;
     this.character = character;
     Actions = character.Input.Actions;
 }
 public void JustTestingOutDoublesWithShouldlyAgain()
 {
     var playerCharacter = new PlayerCharacter();
     // The additional parameter is a floating point tolerance
     // This uses the configured tolerance assigned in the constructor
     playerCharacter.AddDoubles(1.1, 2.2).ShouldNotBe(0);
 }
Esempio n. 25
0
 void Awake()
 {
     healthSlider = GameObject.Find ("Health").GetComponent<Slider> ();
     staminaSlider = GameObject.Find ("Stamina").GetComponent<Slider> ();
     hungerSlider = GameObject.Find ("Hunger").GetComponent<Slider> ();
     thirstSlider = GameObject.Find ("Thirst").GetComponent<Slider> ();
     playerCharacter = GameObject.Find ("Player").GetComponent<PlayerCharacter>();
 }
Esempio n. 26
0
        public void ShouldIncreaseHealthAfterSleeping()
        {
            var sut = new PlayerCharacter {Health = 100};

            sut.Sleep();

            Assert.That(sut.Health, Is.GreaterThan(100));
        }
 public void MagicDamageTakesAPercentageOfHitPoints()
 {
     var playerCharacter = new PlayerCharacter();
     var currentHitPoints = playerCharacter.HitPoints;
     var percent = 10;
     var percentage = currentHitPoints * (percent / 100.0);
     playerCharacter.MagicDamage(percent).ShouldBe(currentHitPoints - percentage);
 }
 public void PotionsShouldAddHitPoints()
 {
     var playerCharacter = new PlayerCharacter();
     var currentHitPoints = playerCharacter.HitPoints;
     const int potion = 5;
     playerCharacter.TakePotion(potion).ShouldBe(currentHitPoints + potion);
     playerCharacter.HitPoints.ShouldBe(currentHitPoints + potion);
 }
Esempio n. 29
0
        public void ShouldIncreaseHealthInExpectedRangeAfterSleeping()
        {
            var sut = new PlayerCharacter { Health = 100 };

            sut.Sleep();

            Assert.That(sut.Health, Is.InRange(101, 200));            
        }
	// Use this for initialization
    #region setup and unequip
    public override void Initialise(PlayerCharacter manager, int index)
    {
        base.Initialise(manager, index);
        currentAmmoCount = maxAmmoCount;
		AddPrefabToPool(projectilePrefab);
		AddPrefabToPool(hitDecal);
		fireSpeedTimer = 0;
    }
        public void ShouldHaveAtLeastOneKindOfSword()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Weapons, Has.Some.ContainsSubstring("Sword"));
        }
Esempio n. 32
0
        static void Main(string[] args)
        {
            bool            keepGoing = true;
            bool            repeat    = true;
            bool            choose    = true;
            bool            again     = true;
            PlayerCharacter player    = new PlayerCharacter();
            Fighter         mal       = new Fighter("Captain Reynolds- Big Bad Veterin - A man of honor in a din of thieves", 12, true, 12, "Capt. Malcom Reynolds", 3, 1, 3, 1, 6);
            Fighter         zoe       = new Fighter("First Mate", 12, true, 12, "Zo\u00eb", 3, 2, 4, 2, 6);

            Console.Title = "The 'Verse";
            Console.WriteLine("Press escape to exit.\n\n\n\n" +
                              "You're peacefully floating through the 'verse when...\n\n");
            Thread.Sleep(2000);
            //TODONE Keep score
            do
            {
                //Choose Character Loop
                do
                {
                    Console.WriteLine("\tChoose your character: \n" +
                                      "\t\tM)al\n" +
                                      "\t\tZ)o\u00eb\n" +
                                      "\t\tE)xit");
                    //"\t\tW)ash\n" +
                    //"\t\tI)nara\n" +
                    //"\t\tJ)ayne\n" +
                    //"\t\tK)aylee\n" +
                    //"\t\tS)imon\n" +
                    //"\t\tR)iver\n" +
                    //"\t\tB)ook\n");
                    ConsoleKey chooseCharacter = Console.ReadKey(true).Key;
                    switch (chooseCharacter)
                    {
                    case ConsoleKey.Escape:
                    case ConsoleKey.E:
                    case ConsoleKey.X:
                        Console.WriteLine("As I understand it, it's a bit cold outside. Better put on a suit.");
                        //Console.WriteLine("\n\n\t\t\t\t\tPress enter to exit...");
                        //Console.ReadLine();//TODONE Remove and replace with Sleep()
                        repeat    = false;
                        choose    = true;
                        repeat    = false;
                        keepGoing = false;
                        //Thread.Sleep(2500);
                        break;

                    case ConsoleKey.M:
                        player = mal;
                        Console.WriteLine("\n\n\tHello Captain.\n\n\t\t\t\t\tPress enter to continue...");
                        //Console.ReadLine();
                        Thread.Sleep(2500);
                        choose = true;
                        break;

                    case ConsoleKey.Z:
                        player = zoe;
                        Console.WriteLine("\n\n\tHello Zo\u00eb\n\n\t\t\t\t\tPress enter to continue...");
                        //Console.ReadLine();
                        Thread.Sleep(2500);
                        choose = true;
                        break;

                    //case ConsoleKey.W:
                    //    player = Wash;
                    //    Console.WriteLine("Hello Wash");
                    //    break;
                    //case ConsoleKey.I:
                    //    player = Inara;
                    //    Console.WriteLine("Welcome Inara");
                    //    break;
                    //case ConsoleKey.J:
                    //    player = Jayne;
                    //    Console.WriteLine("Hello Jayne");
                    //    break;
                    //case ConsoleKey.K:
                    //    player = Kaylee;
                    //    Console.WriteLine("Hi Kaylee");
                    //    break;
                    //case ConsoleKey.S:
                    //    player = Simon;
                    //    Console.WriteLine("Welcome Dr.Tam");
                    //    break;
                    //case ConsoleKey.R:
                    //    player = River;
                    //    Console.WriteLine("Hello River");
                    //    break;
                    //case ConsoleKey.B:
                    //    player = Sheppard Book;
                    //    Console.WriteLine("Welcome Sheppard");
                    //    break;
                    default:
                        Console.WriteLine("I'm thinkin you're not burdoned with an overabundance of schooling...choose from the menu."); choose = false;
                        player = mal;
                        break;
                    }//end Character switch
                } while (!choose);
                //if (repeat)//choose &&
                //{
                //Load Scenario and Combat
                do
                {
                    //TODO Seperate loop based on land vs space scenario

                    Console.Clear();//TODONE Fix the clearing issue so you can read the output - Add a "Press Ent to continue"
                    Console.WriteLine(GetScenario());
                    Console.WriteLine($"{player.Name} Hit Points: {player.HitPoints}\t{croanie.Name} Hit Points: {croanie.HitPoints}\t{boss.Name} Hit Points: {boss.HitPoints}");
                    Console.WriteLine($"Score: {score}");
                    //Combat or Run
                    do
                    {
                        Console.WriteLine($"\n\n\tWhat do you do, {player.Name}?\n" + //TODONE Display chosen character name in place of Player name.
                                                                                      // $"\t\t R)elease the Cry Baby\n" +
                                          $"\n\t\t I)t's time to fight!\n" +
                                          $"\t\t G)o for burn\n");
                        ConsoleKey playerChoice = Console.ReadKey(true).Key;
                        switch (playerChoice)
                        {
                        case ConsoleKey.X:
                        case ConsoleKey.E:
                        case ConsoleKey.Escape:
                            Console.WriteLine("As I understand it, it's a bit cold outside. Better put on a suit.");
                            repeat    = false;
                            choose    = true;
                            keepGoing = false;
                            again     = false;
                            break;

                        //case ConsoleKey.R:
                        //This is a distraction tactic to buy time
                        //Console.WriteLine("Cry Baby Cry - Make your mother sigh");
                        //break;
                        case ConsoleKey.I:
                            //TODONE Combat Functionality

                            Combat.Battle(player, croanie);
                            if (croanie.HitPoints <= 0)
                            {
                                Console.WriteLine($"You killed {croanie.Name}");
                                score++;
                            }
                            Combat.Battle(player, boss);
                            if (boss.HitPoints <= 0)
                            {
                                Console.WriteLine($"You killed {boss.Name}");
                                score++;
                            }
                            if (boss.HitPoints <= 0 && croanie.HitPoints <= 0)
                            {
                                Console.WriteLine("\n\n\tYou're able to keep flying...\n");
                                again = false;
                            }
                            Console.WriteLine($"\n\n\t{player.Name} Hit Points: {player.HitPoints}\t{croanie.Name} Hit Points: {croanie.HitPoints}\t{boss.Name} Hit Points: {boss.HitPoints}");
                            Console.WriteLine($"\n\n\tScore: {score}");
                            Console.WriteLine("\n\n\t\t\t\t\tPress enter to continue...");
                            Console.ReadLine();
                            break;

                        case ConsoleKey.G:
                            //TODO Run away Functionality
                            break;

                        default:
                            Console.WriteLine("I'm thinkin you're not burdoned with an overabundance of schooling...choose from the menu.");
                            break;
                        }//end Action switch
                    } while (again);
                } while (keepGoing && repeat && choose);
                //}
            } while (keepGoing && repeat && choose);
        }//end Main
        public void BeInexperiencedWhenNew()
        {
            var sut = new PlayerCharacter();

            Assert.IsTrue(sut.IsNoob);
        }
        public void ShouldNotHaveMoreThanOneTypeOfAGivenWeapon()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Weapons, Is.Unique);
        }
Esempio n. 35
0
        public static void RemoveCoins(this Player player, int amount)
        {
            int[] coinType = { 71, 72, 73, 74 };

            //splitting the cost into individual coin types
            int[] cost = SeparateCoinTypes(amount);

            int[] coins = new int[4];
            for (int i = 0; i < coins.Length; i++)
            {
                coins[i] = 0;
            }

            coins = SeparateCoinTypes(player.Wealth());

            PlayerCharacter character = player.GetModPlayer <PlayerCharacter>();

            //foreach (Item[] inventory in character.inventories)
            //    foreach (Item i in inventory)
            //        coins = SumCoins(coins, CountCoins(i));

            //foreach (Item i in player.bank.item)
            //    coins = SumCoins(coins, CountCoins(i));

            //foreach (Item i in player.bank2.item)
            //    coins = SumCoins(coins, CountCoins(i));

            //foreach (Item i in player.bank3.item)
            //    coins = SumCoins(coins, CountCoins(i));

            for (int i = 0; i < 4; i++)
            {
                if (coins[i] >= cost[i])
                {
                    foreach (Item item in player.inventory)
                    {
                        item.stack = RemoveCoins(item, coinType[i], ref cost[i]);
                    }

                    for (int j = 0; j < character.Inventories.Length; j += 1)
                    {
                        if (character.ActiveInvPage != j)
                        {
                            foreach (Item item in character.Inventories[j])
                            {
                                item.stack = RemoveCoins(item, coinType[i], ref cost[i]);
                            }
                        }
                    }

                    foreach (Item item in player.bank.item)
                    {
                        item.stack = RemoveCoins(item, coinType[i], ref cost[i]);
                    }

                    foreach (Item item in player.bank2.item)
                    {
                        item.stack = RemoveCoins(item, coinType[i], ref cost[i]);
                    }

                    foreach (Item item in player.bank3.item)
                    {
                        item.stack = RemoveCoins(item, coinType[i], ref cost[i]);
                    }
                }

                else
                {
                    cost[i + 1] += 1;
                    cost[i]     -= 100;
                    Item.NewItem((int)player.position.X, (int)player.position.Y, 0, 0, coinType[i], -cost[i], true, 0, true);
                }
            }
        }
Esempio n. 36
0
 public void CanMakeNewCharacter()
 {
     PlayerCharacter character = new PlayerCharacter("Kresh", 9, "Jason");
 }
Esempio n. 37
0
 protected override void Initialized()
 {
     Character = new PlayerCharacter();
     Game.Zone.AddAgent(Character);
 }
Esempio n. 38
0
        public void BuildEntity(Entity entity, params object[] args)
        {
            _characterType = args.Length > 0 ? (CharacterType)args[0] : CharacterType.X;
            LoadPlayerDataFile();

            entity.AddComponent(BuildSprite());
            PlayerCharacter character = _componentFactory.Create <PlayerCharacter>();

            character.MaxDashLength    = _playerData.MaxDashLength;
            character.MaxJumpLength    = _playerData.MaxJumpLength;
            character.MoveSpeed        = _playerData.MoveSpeed;
            character.DashSpeed        = _playerData.DashSpeed;
            character.JumpSpeed        = _playerData.JumpSpeed;
            character.CharacterType    = _characterType;
            character.MaxNumberOfJumps = _playerData.MaxNumberOfJumps;

            entity.AddComponent(character);

            Health health = _componentFactory.Create <Health>();

            health.MaxHitPoints     = 16;
            health.CurrentHitPoints = 8;
            entity.AddComponent(health);

            Position position = _componentFactory.Create <Position>();

            position.Facing = Direction.Right;
            position.X      = (int?)args[1] ?? 0;
            position.Y      = (int?)args[2] ?? 0;
            entity.AddComponent(position);

            entity.AddComponent(_componentFactory.Create <LocalData>());
            entity.AddComponent(_componentFactory.Create <Velocity>());
            entity.AddComponent(_componentFactory.Create <Renderable>());
            entity.AddComponent(BuildCollisionBox());

            Nameable nameable = _componentFactory.Create <Nameable>();

            nameable.Name = _playerData.Name;
            entity.AddComponent(nameable);

            Heartbeat heartbeat = _componentFactory.Create <Heartbeat>();

            heartbeat.Interval = _playerData.HeartbeatInterval;
            entity.AddComponent(heartbeat);

            Script script = _componentFactory.Create <Script>();

            script.FilePath = _playerData.Script;
            entity.AddComponent(script);

            PlayerStateMap stateMap = _componentFactory.Create <PlayerStateMap>();

            stateMap.States.Add(PlayerState.Idle, _playerStateFactory.Create <IdleState>());
            stateMap.States.Add(PlayerState.Move, _playerStateFactory.Create <MoveState>());
            stateMap.States.Add(PlayerState.Dash, _playerStateFactory.Create <DashState>());
            stateMap.States.Add(PlayerState.Jump, _playerStateFactory.Create <JumpState>());
            stateMap.States.Add(PlayerState.Fall, _playerStateFactory.Create <FallState>());
            stateMap.States.Add(PlayerState.Land, _playerStateFactory.Create <LandState>());
            stateMap.CurrentState = PlayerState.Idle;
            entity.AddComponent(stateMap);

            Gravity gravity = _componentFactory.Create <Gravity>();

            gravity.Speed = _playerData.GravitySpeed;
            entity.AddComponent(gravity);

            PlayerStats stats = _componentFactory.Create <PlayerStats>();

            stats.Lives = 2;
            entity.AddComponent(stats);

            EntitySystem.BlackBoard.SetEntry("Player", entity);
        }
Esempio n. 39
0
        public void HasNoEmptyOrNullDefaultWeapons()
        {
            var sut = new PlayerCharacter();

            Assert.All(sut.Weapons, weapon => Assert.False(string.IsNullOrWhiteSpace(weapon)));
        }
        public void ShouldHaveEmptyDefaultWeapons()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Weapons, Is.All.Not.Empty);
        }
        public void ShouldNotHaveAStaffOfWonder()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Weapons, Has.None.EqualTo("Staff Of Wonder"));
        }
Esempio n. 42
0
        public bool Run(params object[] args)
        {
            NWPlaceable resource = NWPlaceable.Wrap(Object.OBJECT_SELF);
            NWPlayer    oPC      = NWPlayer.Wrap(_.GetLastDamager(resource.Object));

            if (oPC.GetLocalInt("NOT_USING_CORRECT_WEAPON") == 1)
            {
                oPC.DeleteLocalInt("NOT_USING_CORRECT_WEAPON");
                return(true);
            }

            PlayerCharacter pcEntity = _db.PlayerCharacters.Single(x => x.PlayerID == oPC.GlobalID);

            NWItem    oWeapon            = NWItem.Wrap(_.GetLastWeaponUsed(oPC.Object));
            Location  location           = oPC.Location;
            string    resourceItemResref = resource.GetLocalString("RESOURCE_RESREF");
            int       activityID         = resource.GetLocalInt("RESOURCE_ACTIVITY");
            string    resourceName       = resource.GetLocalString("RESOURCE_NAME");
            int       resourceCount      = resource.GetLocalInt("RESOURCE_COUNT");
            int       difficultyRating   = resource.GetLocalInt("RESOURCE_DIFFICULTY_RATING");
            int       weaponChanceBonus;
            SkillType skillType;
            int       perkChanceBonus;
            int       secondResourceChance;
            int       durabilityChanceReduction = 0;
            int       hasteChance;
            int       lucky = _perk.GetPCPerkLevel(oPC, PerkType.Lucky);
            bool      hasBaggerPerk;

            if (activityID == 1) // 1 = Logging
            {
                weaponChanceBonus = oWeapon.LoggingBonus;
                if (weaponChanceBonus > 0)
                {
                    weaponChanceBonus        += _perk.GetPCPerkLevel(oPC, PerkType.LoggingAxeExpert) * 5;
                    durabilityChanceReduction = _perk.GetPCPerkLevel(oPC, PerkType.LoggingAxeExpert) * 10 + lucky;
                }

                skillType            = SkillType.Logging;
                perkChanceBonus      = _perk.GetPCPerkLevel(oPC, PerkType.Lumberjack) * 5 + lucky;
                secondResourceChance = _perk.GetPCPerkLevel(oPC, PerkType.PrecisionLogging) * 10;
                hasteChance          = _perk.GetPCPerkLevel(oPC, PerkType.SpeedyLogger) * 10 + lucky;

                if (pcEntity.BackgroundID == (int)BackgroundType.Lumberjack)
                {
                    hasteChance += 10;
                }

                hasBaggerPerk = _perk.GetPCPerkLevel(oPC, PerkType.WoodBagger) > 0;
            }
            else if (activityID == 2) // Mining
            {
                weaponChanceBonus = oWeapon.MiningBonus;
                if (weaponChanceBonus > 0)
                {
                    weaponChanceBonus        += _perk.GetPCPerkLevel(oPC, PerkType.PickaxeExpert) * 5;
                    durabilityChanceReduction = _perk.GetPCPerkLevel(oPC, PerkType.PickaxeExpert) * 10 + lucky;
                }
                skillType            = SkillType.Mining;
                perkChanceBonus      = _perk.GetPCPerkLevel(oPC, PerkType.Miner) * 5 + lucky;
                secondResourceChance = _perk.GetPCPerkLevel(oPC, PerkType.PrecisionMining) * 10;
                hasteChance          = _perk.GetPCPerkLevel(oPC, PerkType.SpeedyMiner) * 10 + lucky;

                if (pcEntity.BackgroundID == (int)BackgroundType.Miner)
                {
                    hasteChance += 10;
                }

                hasBaggerPerk = _perk.GetPCPerkLevel(oPC, PerkType.OreBagger) > 0;
            }
            else
            {
                return(false);
            }
            PCSkill skill = _skill.GetPCSkillByID(oPC.GlobalID, (int)skillType);
            int     durabilityLossChance = 100 - durabilityChanceReduction;

            if (_random.Random(100) <= durabilityLossChance)
            {
                _durability.RunItemDecay(oPC, oWeapon);
            }

            int baseChance = 10;
            int chance     = baseChance + weaponChanceBonus;

            chance += CalculateSuccessChanceDeltaModifier(difficultyRating, skill.Rank);
            chance += perkChanceBonus;

            bool givePityItem = false;

            if (chance > 0)
            {
                if (_random.Random(100) + 1 <= hasteChance)
                {
                    _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, _.EffectHaste(), oPC.Object, 8.0f);
                }

                // Give an item if the player hasn't gotten anything after 6-8 attempts.
                int      attemptFailureCount = oPC.GetLocalInt("RESOURCE_ATTEMPT_FAILURE_COUNT") + 1;
                NWObject failureResource     = NWObject.Wrap(oPC.GetLocalObject("RESOURCE_ATTEMPT_FAILURE_OBJECT"));

                if (!failureResource.IsValid || !Equals(failureResource, resource))
                {
                    failureResource     = resource;
                    attemptFailureCount = 1;
                }

                int pityItemChance = 0;
                if (attemptFailureCount == 6)
                {
                    pityItemChance = 60;
                }
                else if (attemptFailureCount == 7)
                {
                    pityItemChance = 80;
                }
                else if (attemptFailureCount >= 8)
                {
                    pityItemChance = 100;
                }

                if (_random.Random(100) + 1 <= pityItemChance)
                {
                    givePityItem        = true;
                    attemptFailureCount = 0;
                }

                oPC.SetLocalInt("RESOURCE_ATTEMPT_FAILURE_COUNT", attemptFailureCount);
                oPC.SetLocalObject("RESOURCE_ATTEMPT_FAILURE_OBJECT", failureResource.Object);
            }

            if (chance <= 0)
            {
                oPC.FloatingText("You do not have enough skill to harvest this resource...");
            }
            else if (_random.Random(100) <= chance || givePityItem)
            {
                if (hasBaggerPerk)
                {
                    _.CreateItemOnObject(resourceItemResref, oPC.Object);
                }
                else
                {
                    _.CreateObject(OBJECT_TYPE_ITEM, resourceItemResref, location);
                }


                oPC.FloatingText("You break off some " + resourceName + ".");
                resource.SetLocalInt("RESOURCE_COUNT", --resourceCount);
                _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectHeal(10000), resource.Object);

                if (_random.Random(100) + 1 <= secondResourceChance)
                {
                    oPC.FloatingText("You break off a second piece.");

                    if (hasBaggerPerk)
                    {
                        _.CreateItemOnObject(resourceItemResref, oPC.Object);
                    }
                    else
                    {
                        _.CreateObject(OBJECT_TYPE_ITEM, resourceItemResref, location);
                    }
                }

                float deltaModifier = CalculateXPDeltaModifier(difficultyRating, skill.Rank);
                float baseXP        = (100 + _random.Random(20)) * deltaModifier;
                int   xp            = (int)_skill.CalculateSkillAdjustedXP(baseXP, oWeapon.RecommendedLevel, skill.Rank);
                _skill.GiveSkillXP(oPC, skillType, xp);

                oPC.DeleteLocalInt("RESOURCE_ATTEMPT_FAILURE_COUNT");
                oPC.DeleteLocalObject("RESOURCE_ATTEMPT_FAILURE_OBJECT");
            }

            if (resourceCount <= 0)
            {
                SpawnSeed(resource, oPC);

                NWObject prop = NWObject.Wrap(resource.GetLocalObject("RESOURCE_PROP_OBJ"));
                if (prop.IsValid)
                {
                    prop.Destroy();
                }
                resource.Destroy();
            }
            return(true);
        }
Esempio n. 43
0
 public virtual void OnPlayerInteract(PlayerCharacter source)
 {
 }
Esempio n. 44
0
 public Tree(GameServiceContainer services, Tile tile)
     : base(services, tile)
 {
     _playerCharacter = services.GetService <PlayerCharacter>();
 }
Esempio n. 45
0
 public Item(string name, PlayerCharacter player, string desc)
 {
     this.Name        = name;
     this.Player      = player;
     this.Description = desc;
 }
Esempio n. 46
0
 public override void OnJumpButtonDown(PlayerCharacter character)
 {
     character.TransitionState(PlayerStates.SpearJumpStart);
 }
Esempio n. 47
0
        public static bool SharedCheckCanInteract(
            ICharacter character,
            IWorldObject worldObject,
            bool writeToLog)
        {
            if (worldObject == null ||
                worldObject.IsDestroyed)
            {
                return(false);
            }

            var staticWorldObject = (IStaticWorldObject)worldObject;

            if (!staticWorldObject.ProtoStaticWorldObject.SharedCanInteract(character,
                                                                            worldObject,
                                                                            writeToLog))
            {
                return(false);
            }

            using var tempCharactersNearby = Api.Shared.GetTempList <ICharacter>();
            if (IsClient)
            {
                Client.Characters.GetKnownPlayerCharacters(tempCharactersNearby);
            }
            else
            {
                Server.World.GetScopedByPlayers(staticWorldObject, tempCharactersNearby);
            }

            foreach (var otherPlayerCharacter in tempCharactersNearby.AsList())
            {
                if (ReferenceEquals(character, otherPlayerCharacter))
                {
                    continue;
                }

                if (PlayerCharacter.GetPublicState(otherPlayerCharacter).CurrentPublicActionState
                    is HackingActionState.PublicState hackingState &&
                    ReferenceEquals(hackingState.TargetWorldObject, staticWorldObject))
                {
                    // already hacking by another player
                    if (!writeToLog)
                    {
                        return(false);
                    }

                    Logger.Important($"Cannot start hacking {staticWorldObject} - already hacking by another player",
                                     character);
                    if (IsClient)
                    {
                        NotificationSystem.ClientShowNotification(
                            CoreStrings.Notification_ErrorCannotInteract,
                            CoreStrings.Notification_ErrorObjectUsedByAnotherPlayer,
                            NotificationColor.Bad,
                            icon: staticWorldObject.ProtoStaticWorldObject.Icon);
                    }

                    return(false);
                }
            }

            return(true);
        }
Esempio n. 48
0
        public EmbedBuilder RollMeleeAttack(PlayerCharacter character, ValkFinderWeapon weapon, string attackType)
        {
            var attackTypeHitBonus    = 0;
            var attackTypeDamageBonus = 0;

            switch (attackType)
            {
            case "heavy":
                attackTypeHitBonus    = 2;
                attackTypeDamageBonus = 1;
                break;

            case "light":
                attackTypeHitBonus    = -4;
                attackTypeDamageBonus = -2;
                break;

            case "normal":
                break;

            default:
                var embedBuilderError = new EmbedBuilder().WithColor(Color.Purple);
                embedBuilderError.AddField("Error", "Unknown attack type");
                return(embedBuilderError);
            }

            var rnd = new Random();

            var strMod = 0; //GetStatAsModifier(CharacterAttribute.STR, character);
            var dexMod = 0; //GetStatAsModifier(CharacterAttribute.DEX, character); -- ditto as below

            if (weapon.WeaponTrait == WeaponTrait.Finesse)
            {
                dexMod = GetStatAsModifier(CharacterAttribute.DEX, character);
            }
            else
            {
                strMod = GetStatAsModifier(CharacterAttribute.STR, character);
            }

            var attackRollRaw = rnd.Next(1, 21);

            var attackRoll = attackRollRaw + strMod + dexMod + attackTypeHitBonus + weapon.HitBonus;

            if (attackRoll < 0)
            {
                attackRoll = 0;
            }

            var crit = attackRollRaw == 20;             //are we crittin'?

            var damageRollsRaw = new List <int>();

            for (var i = 0; i < weapon.DamageDieAmount; i++)
            {
                damageRollsRaw.Add(rnd.Next(1, weapon.DamageDieSize + 1));
            }

            var critRolls = new List <int>();

            if (crit)
            {
                for (var i = 0; i < weapon.DamageDieAmount; i++)
                {
                    critRolls.Add(rnd.Next(1, weapon.DamageDieSize + 1));
                }
            }
            var damage = damageRollsRaw.Sum() + weapon.DamageBonus + attackTypeDamageBonus + critRolls.Sum() + strMod + dexMod;

            //TODO: Clean this up into something modular, redefining the entire string each time just isn't maintainable.
            //Done: cleaned up into something modular
            var attackRollString = $"(1d20 = {attackRollRaw}) + {strMod + dexMod}";

            if (attackTypeHitBonus != 0)
            {
                attackRollString += $" + {attackTypeHitBonus} from attack type";
            }
            if (weapon.HitBonus != 0)
            {
                attackRollString += $" + {weapon.HitBonus} from weapon";
            }
            attackRollString += $" = {attackRoll}";

            if (crit)
            {
                attackRollString += " **!Critical Hit!**";
            }

            var damageRollsRawString = string.Join(" + ", damageRollsRaw);
            var critRollsString      = string.Join(" + ", critRolls);
            var damageRollString     = $"({weapon.DamageDieAmount}d{weapon.DamageDieSize} = {damageRollsRawString})";

            if (crit)
            {
                damageRollString += $" + ({weapon.DamageDieAmount}d{weapon.DamageDieSize} = {critRollsString}) from crit";
            }

            if (attackTypeDamageBonus != 0)
            {
                damageRollString += $" + {attackTypeDamageBonus} from attack type";
            }

            if (weapon.DamageBonus != 0)
            {
                damageRollString += $" + {weapon.DamageBonus} from weapon";
            }
            damageRollString += $" + {strMod}(STR) + {dexMod}(DEX) = {damage}";

            var embedBuilder = new EmbedBuilder().WithColor(Color.Purple).WithTitle($"Melee: {weapon.WeaponName} ({attackType}) by {character.CharacterName}");

            embedBuilder.AddField("Attack Roll", attackRollString);
            embedBuilder.AddField("Damage Roll", damageRollString);

            return(embedBuilder);
        }
        public void ShouldBeNewbie()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.IsNoob, Is.True);
        }
        public void ShouldHaveTwoBows()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Weapons, Has.Exactly(2).EndsWith("Bow"));
        }
Esempio n. 51
0
 public override void Update(PlayerCharacter character)
 {
     throw new System.NotImplementedException();
 }
        public void ShouldHaveANickName()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.NickName, Is.Null);
        }
Esempio n. 53
0
        public EmbedBuilder RollRangedAttack(PlayerCharacter character, ValkFinderWeapon weapon, int range = 0)
        {
            var rnd = new Random();

            var perMod = GetStatAsModifier(CharacterAttribute.PER, character);
            var dexMod = GetStatAsModifier(CharacterAttribute.DEX, character);

            var rangePenalty = 0;             //-(range / 2);

            var attackRollRaw = rnd.Next(1, 21);
            var attackRoll    = attackRollRaw + perMod + dexMod + rangePenalty + weapon.HitBonus;
            var crit          = attackRollRaw == 20;

            /*if (attackRoll < 0)
             * {
             *      attackRoll = 0;
             * }
             *
             * var damageRollBonus = 0; //GetStatAsModifier(weapon.DamageModifier, character); -- ―〃―
             * var rawDamageRoll = rnd.Next(1, weapon.DamageDieSize + 1);
             * var damageRoll =  rawDamageRoll + damageRollBonus;
             *
             * if (crit)
             * damageRoll += rawDamageRoll;
             *
             * if (damageRoll < 0)
             * {
             *      damageRoll = 0;
             * }*/

            var damageRollsRaw = new List <int>();

            for (int i = 0; i < weapon.DamageDieAmount; i++)
            {
                damageRollsRaw.Add(rnd.Next(1, weapon.DamageDieSize + 1));
            }

            var damage = damageRollsRaw.Sum() + weapon.DamageBonus + dexMod;

            if (crit)
            {
                damage = damageRollsRaw.Sum() * 2 + weapon.DamageBonus;
            }

            var attackRollString = $"(1d20 = {attackRollRaw}) + {perMod + dexMod}";

            if (weapon.HitBonus != 0)
            {
                attackRollString += $" + {weapon.HitBonus} from weapon";
            }
            attackRollString += $" = {attackRoll}";

            if (crit)
            {
                attackRollString += " **!Critical Hit!**";
            }

            var damageRollsRawString = string.Join(" + ", damageRollsRaw);
            var damageRollString     = $"({weapon.DamageDieAmount}d{weapon.DamageDieSize} = {damageRollsRawString})";

            if (crit)
            {
                damageRollString += $" * 2 from crit";
            }

            if (weapon.DamageBonus != 0)
            {
                damageRollString += $" + {weapon.DamageBonus} from weapon";
            }
            damageRollString += $" + {dexMod}(DEX) = {damage}";

            var embedBuilder = new EmbedBuilder().WithColor(Color.Purple).WithTitle($"Ranged: {weapon.WeaponName}");

            embedBuilder.AddField("Attack Roll", attackRollString);
            embedBuilder.AddField("Damage Roll", damageRollString);

            return(embedBuilder);
        }
        public void ShouldHaveDefaultWeaponsInAlphabeticalOrder()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Weapons, Is.Ordered);
        }
        public void NotHaveNickNameByDefault()
        {
            var sut = new PlayerCharacter();

            Assert.IsNull(sut.Nickname);
        }
Esempio n. 56
0
        public override void Process()
        {
            if (_texture == null)
            {
                _texture = _content.Load <Texture2D>(".\\Graphics\\Items\\Items");
            }

            Entity          player    = BlackBoard.GetEntry <Entity>("Player");
            Health          hp        = player.GetComponent <Health>();
            PlayerCharacter character = player.GetComponent <PlayerCharacter>();

            Vector2 position =
                new Vector2(
                    _camera.TopLeft.X + 20,
                    _camera.TopLeft.Y + 70);

            Rectangle sourceBottom = new Rectangle(2, 55, 14, 16);
            Rectangle sourceLife   = new Rectangle(2, 51, 14, 2);
            Rectangle sourceEmpty  = new Rectangle(2, 32, 14, 2);
            Rectangle sourceTop    = new Rectangle(2, 13, 14, 4);

            if (character.CharacterType == CharacterType.Zero)
            {
                sourceBottom = new Rectangle(50, 55, 14, 16);
            }

            Vector2 origin = new Vector2(14.0f / 2.0f, 3.0f / 2.0f);

            _spriteBatch.Draw(_texture,
                              position,
                              sourceBottom,
                              Color.White,
                              0.0f,
                              origin,
                              1.0f,
                              SpriteEffects.None,
                              0);

            for (int x = 1; x <= hp.MaxHitPoints; x++)
            {
                Rectangle source = sourceLife;

                if (x > hp.CurrentHitPoints)
                {
                    source = sourceEmpty;
                }

                if (x == 1)
                {
                    position = new Vector2(
                        position.X,
                        position.Y - 1);
                }
                else
                {
                    position = new Vector2(
                        position.X,
                        position.Y - 2);
                }

                _spriteBatch.Draw(_texture,
                                  position,
                                  source,
                                  Color.White,
                                  0.0f,
                                  origin,
                                  1.0f,
                                  SpriteEffects.None,
                                  0);
            }

            position = new Vector2(
                position.X,
                position.Y - 4);

            _spriteBatch.Draw(_texture,
                              position,
                              sourceTop,
                              Color.White,
                              0.0f,
                              origin,
                              1.0f,
                              SpriteEffects.None,
                              0);
        }
Esempio n. 57
0
        public void ShouldHaveDefaultRandomGeneratedName()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Name, Is.Not.Empty);
        }
        public void ShouldHaveALongBow()
        {
            var sut = new PlayerCharacter();

            Assert.That(sut.Weapons, Contains.Item("Long Bow"));
        }
Esempio n. 59
0
 void Start()
 {
     player = GetComponent <PlayerCharacter>();
 }
Esempio n. 60
0
        public void NickNameNullWhenNew()
        {
            var sut = new PlayerCharacter();

            Assert.Null(sut.Nickname);
        }