Exemple #1
0
 public BarbarianChaseState(BarbarianAnimator anim, EnemyMovement movement, Barbarian barbarian)
 {
     enemyAnim      = anim;
     enemyMovement  = movement;
     movementSpeed  = enemyMovement.MoveSpeed;
     this.barbarian = barbarian;
 }
Exemple #2
0
        protected static void MoveReallyFast(float x, float y)
        {
            switch (Me.SNOId)
            {
            case SNOActorId.Barbarian_Male:
            case SNOActorId.Barbarian_Female:
                Barbarian.SprintEverywhere(x, y);
                break;

            case SNOActorId.WitchDoctor_Male:
            case SNOActorId.WitchDoctor_Female:
                Walk(x, y);
                break;

            case SNOActorId.Wizard_Male:
            case SNOActorId.Wizard_Female:
                Walk(x, y);
                break;

            case SNOActorId.Demonhunter_Male:
            case SNOActorId.Demonhunter_Female:
                DemonHunter.MoveSuperFuckingFast(x, y);
                break;

            case SNOActorId.Monk_Male:
            case SNOActorId.Monk_Female:
                Walk(x, y);
                break;
            }
        }
Exemple #3
0
    void Update()
    {
        if (!gameInit)
        {
            return;
        }

        this.curBarbTime += Time.deltaTime;

        if (this.curBarbTime >= this.barbSpawnTime)
        {
            List <GameObject> remainingVillagers = new List <GameObject> (this.VillagerGameObjects.Values);

            for (int i = 0; i < this.barbsInNextWave; i++)
            {
                Vector3 spawnPos = resourceObjects [Random.Range(0, resourceObjects.Count)].transform.position;
                spawnPos = new Vector3(spawnPos.x + Random.Range(-2.0f, 2.0f), spawnPos.y, spawnPos.z + Random.Range(-2.0f, 2.0f));
                GameObject curGO = Instantiate(this.barbarianPrefab, spawnPos, Quaternion.identity) as GameObject;
                curGO.transform.SetParent(this.transform);
                Barbarian barb = new Barbarian();
                curGO.GetComponent <UnitController> ().SetUnitData(barb, this.BaseGO);

                int number = 1;

                // Set attack target
                if (number == 0)
                {
                    curGO.GetComponent <UnitController> ().SetNewTargetPosition(this.BaseGO.transform.position, UnitController.ActionMode.ATTACK, this.BaseGO);
                }
                else
                {
                    Vector3    targetPos      = Vector3.zero;
                    float      latestDist     = 1000.0f;
                    GameObject targetVillager = null;
                    foreach (GameObject villager in remainingVillagers)
                    {
                        float curDist = Vector3.Distance(curGO.transform.position, villager.transform.position);
                        if (curDist < latestDist)
                        {
                            targetPos      = villager.transform.position;
                            latestDist     = curDist;
                            targetVillager = villager;
                        }
                    }
                    if (targetPos == Vector3.zero || targetVillager == null)
                    {
                        return;
                    }
                    else
                    {
                        curGO.GetComponent <UnitController> ().SetNewTargetPosition(targetVillager.transform.position, UnitController.ActionMode.ATTACK, targetVillager);
                    }
                }
            }

            this.barbSpawnTime  += 5.0f;
            this.curBarbTime     = 0.0f;
            this.barbsInNextWave = Random.Range(1, 3);
        }
    }
 public static void AddBarbarian(Character character)
 {
     Barbarian.Base(character);
     Barbarian.Features(character);
     Barbarian.Equipment(character);
     character.Archetype = Barbarian.PathName;
 }
Exemple #5
0
        public void TestMethod1()
        {
            Barbarian barbarian = new Barbarian();

            Assert.AreEqual(20, barbarian.GetClassAbilitiesTableList().Count);
            Assert.AreEqual(20, barbarian.ClassDataTableRows().Count);
        }
    private void Update()
    {
        transform.localPosition += (direction * speed * Time.deltaTime);

        cDist = Vector3.Distance(transform.localPosition, targetPos);
        if (cDist < 0.1f)
        {
            //hit

            FX.Emit(transform.position, transform.rotation, FX.VFX.ShadowBoltHit, 50);
            Barbarian.FindBarbarian().Damage(10);

            ParticleSystem ps = GetComponentInChildren <ParticleSystem>();
            Transform      tr = GetComponentInChildren <TrailRenderer>().transform;
            ParticleSystem.EmissionModule em = ps.emission;
            em.enabled = false;

            tr.SetParent(null, true);
            ps.transform.SetParent(tr, true);

            GetComponentInChildren <VLight>().Hide();

            Destroy(tr.gameObject, 0.5f);
            Destroy(gameObject);
        }
    }
Exemple #7
0
        public void BarbarianSubclassTest()
        {
            List <PrimalPath> paths = new List <PrimalPath>()
            {
                new BeserkBarbarian(1), new TotemBarbarian(1)
            };

            for (int i = 1; i < 1000; i++)
            {
                Barbarian b = new Barbarian();
                if (b.Level < 3)
                {
                    Assert.IsInstanceOf <EmptyBarbarian>(b.primalPath);
                }
                else if (b.Level >= 3)
                {
                    bool isType = false;
                    foreach (PrimalPath p in paths)
                    {
                        if (b.primalPath.GetType() == p.GetType())
                        {
                            isType = true;
                        }
                    }
                    Assert.IsTrue(isType);
                }
            }
        }
Exemple #8
0
        public void TestBaseAttackBonus()
        {
            // Arrange
            Barbarian barbarian = new Barbarian("barbarian");
            Monk      monk      = new Monk("monk");
            Wizard    wizard    = new Wizard("wizard");

            barbarian.CharacterLevel = 11;
            monk.CharacterLevel      = 6;
            wizard.CharacterLevel    = 20;

            double[] barbarianTemplate = { 11, 6, 1, 0 };
            double[] monkTemplate      = { 4, 0, 0, 0 };
            double[] wizardTemplate    = { 10, 5, 0, 0 };

            // Act
            barbarian.CalculateBaseAttackBonus();
            monk.CalculateBaseAttackBonus();
            wizard.CalculateBaseAttackBonus();

            // Assert
            Assert.Equal(barbarianTemplate, barbarian.BaseAttackBonus);
            Assert.Equal(monkTemplate, monk.BaseAttackBonus);
            Assert.Equal(wizardTemplate, wizard.BaseAttackBonus);
        }
        public Special Trap_Sense(Barbarian barbarian)
        {
            int bonus = barbarian.Level / 3;

            Name        = "Trap Sense +" + bonus;
            Description = "At 3rd level, a barbarian gains a +1 bonus on Reflex saves made to avoid traps and a +1 dodge bonus to armor class against attacks made by traps. These bonuses increase by +1 every three barbarian levels thereafter (6th, 9th, 12th, 15th, and 18th level). Trap sense bonuses gained from multiple classes stack.";
            return(this);
        }
Exemple #10
0
        private static string[] getSubClassDnD(CLASSES C, int lv)
        {
            string[] Sub = new string[20];// may need to change temp size

            if (C == BARBARIAN)
            {
                Sub = Barbarian.getDnD(lv);
            }
            else if (C == BARD)
            {
                Sub = Bard.getDnD();
            }
            else if (C == CLERIC)
            {
                Sub = Cleric.getDnD(D5Core);
            }
            else if (C == DRUID)
            {
                Sub = Druid.getDnD(D5Core);
            }
            else if (C == FIGHTER)
            {
                Sub = Fighter.getDnD(D5Core, lv);
            }
            else if (C == MONK)
            {
                Sub = Monk.getDnD(D5Core, lv);
            }
            else if (C == PALADIN)
            {
                Sub = Paladin.getDnD(D5Core);
            }
            else if (C == RANGER)
            {
                Sub = Ranger.getDnD(D5Core, lv);
            }
            else if (C == ROGUE)
            {
                Sub = Rogue.getDnD(D5Core);
            }
            else if (C == SORCERER)
            {
                Sub = Sorcerer.getDnD(D5Core, lv);
            }
            else if (C == WARLOCK)
            {
                Sub = Warlock.getDnD(D5Core, lv);
            }
            else if (C == WIZARD)
            {
                Sub = Wizard.getDnD(D5Core);
            }

            Sub = Vars.shorten <string>(Sub);

            return(Sub);
        }
        public Special Damage_Reduction(Character character, Barbarian barbarian)
        {
            int bonus = (barbarian.Level - 7) / 3 + 1;

            Name        = "Damage Reduction " + bonus + "/-";
            Description = "At 7th level, a barbarian gains damage reduction. Subtract 1 from the damage the barbarian takes each time she is dealt damage from a weapon or a natural attack. At 10th level, and every three barbarian levels thereafter (13th, 16th, and 19th level), this damage reduction rises by 1 point. Damage reduction can reduce damage to 0 but not below 0.";
            //set up functionality (DR on character)
            return(this);
        }
Exemple #12
0
    public static Barbarian FindBarbarian()
    {
        if (barbarian == null)
        {
            barbarian = (Barbarian)FindObjectOfType <Barbarian>();
        }

        return(barbarian);
    }
 public Special Rage_Powers(Barbarian barbarian)
 {
     Name        = "Rage Powers";
     Description =
         "As a barbarian gains levels, she learns to use her rage in new ways. Starting at 2nd level, a barbarian gains a rage power. She gains another rage power for every two levels of barbarian attained after 2nd level. A barbarian gains the benefits of rage powers only while raging, and some of these powers require the barbarian to take an action first. Unless otherwise noted, a barbarian cannot select an individual power more than once."
         + "\n\n" +
         "Any barbarian who meets the powers’ prerequisites can select and use rage powers. Totem rage powers grant powers related to a theme. A barbarian cannot select from more than one group of totem rage powers; for example, a barbarian who selects a beast totem rage power cannot later choose to gain any of the dragon totem rage powers (any rage power with “dragon totem” in its title).";
     //set up functionality
     return(this);
 }
Exemple #14
0
    private void Initialize()
    {
        map       = Map.FindMap();
        barbarian = Barbarian.FindBarbarian();
        anim      = GetComponent <AnimatedObject>();
        anim.Initialize();
        anim.PlayAnimation("Slime_Idle");

        value = 3;
    }
 public void Attack_WhenGivenAMonster_ShouldHitMonsterWithHisWeapon()
 {
     // Arrange
     var barbarian = new Barbarian {Name = "Conan", Weapon = new Weapon {Name = "Sword", Damage = 1.5}, HitPoints = 150};
     var monster = new Monster {Name = "Goblin", HitPoints = 10};
     // Act
     string description = barbarian.Attack(monster);
     // Assert
     Assert.That(description, Is.StringContaining("Conan swings his Sword and hits the Goblin in strength. Goblin loses"));
 }
Exemple #16
0
    // Start is called before the first frame update
    void Start()
    {
        // init players
        // TODO get players from player select scene, for now hard coded to 2 players and 2 enemies
        players = new List <PlayerClassBase>();
        for (int i = 1; i < Meta.CURRENTPLAYERS + 1; i++)
        {
            PlayerClassBase player = new Barbarian($"{i}", statusPrefab);  // todo this loop stupid, there are other classes (soon)
            player.Init();
            players.Add(player);
        }

        // set turn order
        // TODO for now just all players then all enemies
        currentPlayer = players[0];
        currentTurn   = new Tuple <string, int>(PLAYERS, 0); // access with currentTurn.Item1 and currentTurn.Item2
        Debug.Log($"Current player is {currentTurn.Item2}");

        phaseIndex = 0;

        // init enemies TODO make dynamic
        enemies = new List <EnemyBase>();
        EnemyBase e1 = new Bandit("1");

        enemies.Add(e1);
        enemies[0].Init();
        EnemyBase e2 = new Bandit("2");

        enemies.Add(e2);
        enemies[1].Init();

        SetupUi();

        lookCard    = 0;
        deselectedY = hand1.transform.position.y;
        selectedY   = deselectedY + cardLift;
        last_select = Time.time;
        last_play   = Time.time;

        for (int i = 0; i < Meta.MAX_HAND_SIZE; i++)
        {
            // find the card, set it inactive
            GameObject hcard = GameObject.Find($"Hand{i + 1}");
            GameObject hcd   = hcard.transform.Find("CardDesc").gameObject;
            hcd.GetComponent <MeshRenderer>().enabled = false;

            GameObject hcn = hcard.transform.Find("CardName").gameObject;
            hcn.GetComponent <MeshRenderer>().enabled = false;

            GameObject hcc = hcard.transform.Find("CardCost").gameObject;
            hcc.GetComponent <MeshRenderer>().enabled = false;
            hcard.GetComponent <Renderer>().enabled   = false;
        }
    }
Exemple #17
0
 public void validateLevel2(Barbarian barb)
 {
     if (barb.Level < 2)
     {
         Assert.IsFalse(barb.DangerSense);
         validateLevel1(barb);
         return;
     }
     Assert.IsTrue(barb.UnarmoredDefense);
     Assert.IsTrue(barb.RecklessAttack);
 }
Exemple #18
0
        private void generateClass()
        {
            int randomNumber = NumberGen.gen(12);

            if (randomNumber == 0)
            {
                characterClass = new Barbarian();
            }
            else if (randomNumber == 1)
            {
                characterClass = new Bard();
            }
            else if (randomNumber == 2)
            {
                characterClass = new Cleric();
            }
            else if (randomNumber == 3)
            {
                characterClass = new Druid();
            }
            else if (randomNumber == 4)
            {
                characterClass = new Fighter();
            }
            else if (randomNumber == 5)
            {
                characterClass = new Monk();
            }
            else if (randomNumber == 6)
            {
                characterClass = new Paladin();
            }
            else if (randomNumber == 7)
            {
                characterClass = new Ranger();
            }
            else if (randomNumber == 8)
            {
                characterClass = new Rogue();
            }
            else if (randomNumber == 9)
            {
                characterClass = new Sorcerer();
            }
            else if (randomNumber == 10)
            {
                characterClass = new Warlock();
            }
            else if (randomNumber == 11)
            {
                characterClass = new Wizard();
            }
        }
Exemple #19
0
        public void BarbarianConstructorTest()
        {
            var barb = new Barbarian();

            for (int i = 0; i < 100000; i++)
            {
                barb = new Barbarian();
                Assert.AreEqual("", validateCharacter(barb));
                Assert.AreEqual("", validateHero(barb, "StrSave", "ConSave"));
                validateLevel20(barb);
            }
        }
        public string AddHero(IList <string> arguments)
        {
            string heroName     = arguments[0];
            string heroTypeName = arguments[1];

            IHero hero = new Barbarian(heroName);

            this.heroes.Add(heroTypeName, hero);

            string result = string.Format(Constants.HeroCreateMessage, hero.GetType().Name, hero.Name);;

            return(result);
        }
Exemple #21
0
    void Start()
    {
        // Initialize all static classes here.
        FX.Initialize();
        map = Map.FindMap();
        //map.Generate(false);


        barbarian = FindObjectOfType <Barbarian>();
        enemies   = map.Enemies();

        //GameObject go = MeshGenerator.GenerateCube(1, 1, 1, 3, c1, c2);
        //GameObject go2 = MeshGenerator.GenerateCube(1, 1, 1, 4, c1, c2);
    }
        /// <summary>
        /// När man trycker A på Xbox-kontrollen så väljer man den nuvarande gubben man bläddrat till, trycker man B så ångrar man sitt val.
        /// Om den användaren som har kontroll nummer 1 trycker på B så går spelet tillbaka till huvudmenyn.
        /// </summary>
        private void SelectingCharacter()
        {
            for (int i = 0; i < nrOfPlayers; i++)
            {
                if (controllerArray[i].ButtonPressed(Buttons.A) && selectingCharacter[i] && !characterChosen[i])
                {
                    if (currentCharacter[i] == 0)
                    {
                        PlayerArray[i] = new Knight(TextureBank.playerTextureList[0], new Vector2(100 * i + 100, 200), i, controllerArray[i]);
                    }

                    else if (currentCharacter[i] == 1)
                    {
                        PlayerArray[i] = new Barbarian(TextureBank.playerTextureList[1], new Vector2(100 * i + 100, 200), i, controllerArray[i]);
                    }

                    else if (currentCharacter[i] == 2)
                    {
                        PlayerArray[i] = new Druid(TextureBank.playerTextureList[2], new Vector2(100 * i + 100, 200), i, controllerArray[i]);
                    }

                    else if (currentCharacter[i] == 3)
                    {
                        PlayerArray[i] = new Ranger(TextureBank.playerTextureList[3], new Vector2(100 * i + 100, 200), i, controllerArray[i]);
                    }

                    characterChosen[i] = true;
                    readyPlayers++;
                }

                if (controllerArray[i].ButtonPressed(Buttons.B) && characterChosen[i])
                {
                    characterChosen[i] = false;
                    readyPlayers--;
                    justPressed = true;
                }

                else if (controllerArray[0].ButtonPressed(Buttons.B) && selectingCharacter[0] && !justPressed)
                {
                    for (int j = 0; j < nrOfPlayers; j++)
                    {
                        characterChosen[j]  = false;
                        currentCharacter[j] = 0;
                        readyPlayers        = 0;
                    }
                    GameManager.currentState = GameState.MainMenu;
                }
            }
        }
Exemple #23
0
        public void CreatePlayerClass(string playerClass)
        {
            switch (playerClass)
            {
            case "Barbarian":
                PlayerClass = new Barbarian();
                break;

            case "Bard":
                PlayerClass = new Bard();
                break;

            case "Cleric":
                PlayerClass = new Cleric();
                break;

            case "Druid":
                PlayerClass = new Druid();
                break;

            case "Fighter":
                PlayerClass = new Fighter();
                break;

            case "Monk":
                PlayerClass = new Monk();
                break;

            case "Paladin":
                PlayerClass = new Paladin();
                break;

            case "Ranger":
                PlayerClass = new Ranger();
                break;

            case "Rogue":
                PlayerClass = new Rogue();
                break;

            case "Sorcerer":
                PlayerClass = new Sorcerer();
                break;

            case "Wizard":
                PlayerClass = new Wizard();
                break;
            }
        }
Exemple #24
0
        public void getRageDamageTest()
        {
            Barbarian b        = new Barbarian();
            int       Expected = 2;

            for (int i = 1; i < 21; i++)
            {
                b.Level = i;
                if (b.Level == 9 || b.Level == 16)
                {
                    Expected++;
                }
                Assert.AreEqual(Expected, b.getRageDamage());
            }
        }
Exemple #25
0
        public void AttributeBonusTest()
        {
            Barbarian b = new Barbarian();
            int       ExpectedAttributeBonus = -6;

            for (int i = 0; i < 31; i++)
            {
                if (i % 2 == 0)
                {
                    ExpectedAttributeBonus++;
                }
                int bonus = b.calculateAttributeBonus(i);
                Assert.AreEqual(ExpectedAttributeBonus, bonus);
            }
        }
Exemple #26
0
 public void validateLevel7(Barbarian barb)
 {
     if (barb.Level < 7)
     {
         Assert.IsFalse(barb.FeralInstinct);
         validateLevel5(barb);
         return;
     }
     Assert.IsTrue(barb.UnarmoredDefense);
     Assert.IsTrue(barb.RecklessAttack);
     Assert.IsTrue(barb.DangerSense);
     Assert.IsTrue(barb.PrimalPath);
     Assert.IsTrue(barb.ExtraAttack);
     Assert.IsTrue(barb.FastMovement);
     Assert.IsTrue(barb.FeralInstinct);
 }
Exemple #27
0
        /// <summary>
        ///     Saves all the tabs at once
        /// </summary>
        public void SaveAll()
        {
            Save();

            Barbarian.Save();
            Crusader.Save();
            DemonHunter.Save();
            Monk.Save();
            WitchDoctor.Save();
            Wizard.Save();

            Debug.Save();
            Avoidance.Save();
            Kiting.Save();

            Log.Info("Saved All Settings");
        }
Exemple #28
0
 public void validateLevel11(Barbarian barb)
 {
     if (barb.Level < 11)
     {
         Assert.IsFalse(barb.RelentlessRage);
         validateLevel9(barb);
         return;
     }
     Assert.IsTrue(barb.UnarmoredDefense);
     Assert.IsTrue(barb.RecklessAttack);
     Assert.IsTrue(barb.DangerSense);
     Assert.IsTrue(barb.PrimalPath);
     Assert.IsTrue(barb.ExtraAttack);
     Assert.IsTrue(barb.FastMovement);
     Assert.IsTrue(barb.FeralInstinct);
     Assert.IsTrue(barb.BrutalCritical);
     Assert.IsTrue(barb.RelentlessRage);
 }
Exemple #29
0
        public void calculateRagesTest()
        {
            Barbarian b     = new Barbarian();
            int       rages = 2;

            for (int i = 1; i < 21; i++)
            {
                b.Level = i;
                int expected = b.calculateRages();
                if (i == 3 || i == 6 || i == 12 || i == 16 || i == 20)
                {
                    rages++;
                }
                if (b.Level == 20)
                {
                    rages = 1000;
                }
                Assert.AreEqual(rages, b.calculateRages());
            }
        }
        public void Setup()
        {
            _input       = new MockInput();
            _output      = new MockOutput();
            _menuManager = new TestMenuManager(_input, _output);

            _chanceService = new MockChanceService();

            _battleManager = new TestBattleManager(_chanceService, _input, _output);

            TestFighterFactory.SetChanceService(_chanceService);

            _barbarian = (Barbarian)FighterFactory.GetFighter(FighterType.Barbarian, 1);
            _enemyTeam = new Team(_menuManager, _barbarian);

            _hero      = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Hero");
            _sidekick  = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "SideKick");
            _humanTeam = new TestTeam(new List <HumanFighter> {
                _hero, _sidekick
            });
        }
Exemple #31
0
    private IEnumerator MoveMap(float time)
    {
        Vector3 end = Vector3.zero;
        float   t   = 0.0f;
        float   d   = Vector3.Distance(transform.localPosition, end);

        while (t < time)
        {
            float delta = (d * Time.deltaTime) / time;

            transform.localPosition = Vector3.MoveTowards(transform.localPosition, end, delta);


            t += Time.deltaTime;

            yield return(null);
        }

        transform.localPosition = end;
        Barbarian.FindBarbarian().StartLevel();
    }