public void Setup(ExperienceSystem xpSystem)
    {
        this.xpSystem = xpSystem;

        xpSystem.OnXpChanged += XpSystem_OnXpChanged;
        UpdateXpBar();
    }
Beispiel #2
0
        protected Player(string name, float x, float y, float width, float height, Direction heading) :
            base(name, x, y, width, height, 1.0f, heading)
        {
            _sprites          = JustCombat.GameContent.FumikoImage;
            _spriteSheet      = new SpriteSheet(_sprites, Constants.PLAYER_WIDTH, Constants.PLAYER_HEIGHT);
            _playerDirections = new Texture2D[4];

            _boundingBox.GetPrimRectangle().SetColor(Color.Green);

            InitStaticDirectionSprites();

            _animatePlayerNorthWalking = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "nWalk", 0, 0, 3, ANIMATION_SPEED_WALKING);
            _animatePlayerEastWalking  = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "eWalk", 0, 1, 3, ANIMATION_SPEED_WALKING);
            _animatePlayerSouthWalking = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "sWalk", 0, 2, 3, ANIMATION_SPEED_WALKING);
            _animatePlayerWestWalking  = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "wWalk", 0, 3, 3, ANIMATION_SPEED_WALKING);

            _animatePlayerNorthRunning = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "nRun", 3, 0, 3, ANIMATION_SPEED_RUNNING);
            _animatePlayerEastRunning  = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "eRun", 3, 1, 3, ANIMATION_SPEED_RUNNING);
            _animatePlayerSouthRunning = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "sRun", 3, 2, 3, ANIMATION_SPEED_RUNNING);
            _animatePlayerWestRunning  = AnimationFactory.CreateAnimationHorizontal(_spriteSheet, "wRun", 3, 3, 3, ANIMATION_SPEED_RUNNING);

            _animatePlayerIdle = AnimationFactory.CreateAnimationIdlePlayer(_spriteSheet, "idle", 16, 0, ANIMATION_SPEED_IDLE);

            _currentAnimation = _animatePlayerIdle;

            _experiencePoints    = 0;
            _maxExperiencePoints = ExperienceSystem.GetExperienceForNextLevel(_level);

            _moving = false;
        }
    private void Setup(HealthSystem healthSystem, ExperienceSystem experienceSystem)
    {
        this.healthSystem     = healthSystem;
        this.experienceSystem = experienceSystem;

        healthSystem.OnDead           += HealthSystem_OnDead;
        healthSystem.OnHealthDecrease += HealthSystem_OnHealthDecrease;

        SetupSkills();
        for (int i = 0; i < GameControl.control.cooldowns.Count(); i++)
        {
            skillLevel[i] = GameControl.control.equippedItems.First(item => item.skillID == GameControl.control.cooldowns[i]).level;
        }
        SetupSkillIcons();

        audioManager = FindObjectOfType <AudioManager>();

        Scene currScene = SceneManager.GetActiveScene();

        if (currScene.name == "Prototype")
        {
            audioManager.Play("Jungle", true);
        }
        if (currScene.name == "BeachScene")
        {
            audioManager.Play("Beach", true);
        }
    }
Beispiel #4
0
 private void Awake()
 {
     // Setup singleton
     if (_instance == null)
     {
         _instance = this;
     }
 }
Beispiel #5
0
    public void Start()
    {
        health_bar = new HealthSystem(HealthBarDimens, VerticleHealthBar, HealthBubbleTexture, HealthTexture, HealthBubbleTextureRotation);
        exp_bar = new ExperienceSystem(ExpBarDimens, VerticleExpBar, ExpBubbleTexture, ExperienceTexture, ExpTextureRotation);
        mana_bar = new ManaSystem(ManaBarDimens, ManaBarScrollerDimens, VerticleManaBar, ManaBubbleTexture, ManaTexture, ManaBubbleTextureRotation);

        exp_bar.Initialize();
        health_bar.Initialize();
        mana_bar.Initialize();
    }
Beispiel #6
0
    public void Start()
    {
        health_bar = new HealthSystem(HealthBarDimens, VerticleHealthBar, HealthBubbleTexture, HealthTexture, HealthBubbleTextureRotation);
        exp_bar    = new ExperienceSystem(ExpBarDimens, VerticleExpBar, ExpBubbleTexture, ExperienceTexture, ExpTextureRotation);
        mana_bar   = new ManaSystem(ManaBarDimens, ManaBarScrollerDimens, VerticleManaBar, ManaBubbleTexture, ManaTexture, ManaBubbleTextureRotation);

        exp_bar.Initialize();
        health_bar.Initialize();
        mana_bar.Initialize();
    }
Beispiel #7
0
        public StatusState(StatsSystem sS, ExperienceSystem eS, StateMachine sM, NameSystem nS, PlayerSystem pS, ProfessionSystem profS)
        {
            statsSystem = sS;
            experienceSystem = eS;
            nameSystem = nS;
            playerSystem = pS;
            professionSystem = profS;

            stateSystem = sM;
        }
 public EntityMaintenanceSystem(EffectSystem eSys, EntityManager eMan, EquipmentSystem eqSys, ExperienceSystem xSys, GearSystem gSys, ItemInventorySystem invSys, ItemSystem iSys, NameSystem nSys, PlayerSystem pSys, ProfessionSystem profSys, StatsSystem sSys, StatModifierSystem smSys)
 {
     effectSystem = eSys;
     entityManager = eMan;
     equipmentSystem = eqSys;
     experienceSystem = xSys;
     gearSystem = gSys;
     inventorySystem=invSys;
     itemSystem = iSys;
     nameSystem = nSys;
     playerSystem = pSys;
     professionSystem = profSys;
     statsSystem = sSys;
     modifierSystem = smSys;
 }
Beispiel #9
0
        public ShopState(EntityMaintenanceSystem eMS, GearSystem gSys, StatModifierSystem sMSys, StatsSystem sSys, ExperienceSystem eSys, PlayerSystem pSys, DropSystem dSys, NameSystem nSys, StateMachine sMach, ItemSystem iSys, GameMap gMap)
        {
            entMaintenanceSystem = eMS;
            gearSystem = gSys;
            modifierSystem = sMSys;
            statsSystem = sSys;
            experienceSystem = eSys;
            playerSystem = pSys;
            dropSystem=dSys;
            nameSystem = nSys;
            itemSystem = iSys;

            stateSystem = sMach;

            gameMap = gMap;
            NumItems = 5;
        }
Beispiel #10
0
        public CombatSystem(Lua Lua, ActionSystem actSys, ActionInventorySystem actInvSys, AISystem aiSys, DropSystem dSys, EffectSystem eSys, EntityMaintenanceSystem eMainSys, ExperienceSystem xSys, ItemInventorySystem iSys, NameSystem nSys, PlayerSystem pSys, StatsSystem sSys)
        {
            actionSystem = actSys;
            aInventorySystem = actInvSys;
            aiSystem = aiSys;
            dropSystem = dSys;
            effectSystem = eSys;
            entityMaintenanceSystem = eMainSys;
            experienceSystem = xSys;
            inventorySystem = iSys;
            nameSystem = nSys;
            playerSystem = pSys;
            statsSystem = sSys;

            lua = Lua;
            RegisterLuaFunctions();
        }
Beispiel #11
0
 public EntityManager(StateMachine sMach, DropSystem dSys, PlayerSystem pS, StatsSystem sS, ItemSystem iS, StatModifierSystem mS, EffectSystem efS, EquipmentSystem eqS, AISystem aiS, GearSystem gS, ExperienceSystem xS, ItemInventorySystem invS, NameSystem nS, ProfessionSystem profS, ActionSystem actS, ActionInventorySystem aInvS, CombatSystem cSys, EntityMaintenanceSystem eMS)
 {
     stateSystem = sMach;
     dropSystem = dSys;
     entMaintenanceSystem = eMS;
     aInventorySystem = aInvS;
     combatSystem = cSys;
     playerSystem = pS;
     statsSystem = sS;
     itemSystem = iS;
     modifierSystem = mS;
     effectSystem = efS;
     equipmentSystem = eqS;
     aiSystem = aiS;
     gearSystem = gS;
     experienceSystem = xS;
     inventorySystem = invS;
     nameSystem = nS;
     professionSystem = profS;
     actionSystem = actS;
 }
Beispiel #12
0
    public static PlayerHandler CreatePlayer()
    {
        Transform playerTransform = Instantiate(GameAssets.i.pfPlayerTransform, new Vector3(0, 0), Quaternion.identity);

        HealthSystem healthSystem = new HealthSystem(150 + (GameControl.control.lvl * 8));
        HealthBar    healthBar    = Instantiate(GameAssets.i.pfHealthBar, new Vector3(0, 1.5f), Quaternion.identity, playerTransform).GetComponent <HealthBar>();

        healthBar.Setup(healthSystem);

        ExperienceSystem experienceSystem = new ExperienceSystem(GameControl.control.tempXp);
        Transform        experienceBarObj = Instantiate(GameAssets.i.pfXpBar, new Vector3(0, 0), Quaternion.identity);
        ExperienceBar    experienceBar    = experienceBarObj.GetComponent <ExperienceBar>();

        experienceBarObj.SetParent(GameObject.Find("XpBarHolder").GetComponent <Transform>(), false);
        experienceBar.Setup(experienceSystem);

        PlayerHandler playerHandler = playerTransform.GetComponent <PlayerHandler>();

        playerHandler.Setup(healthSystem, experienceSystem);

        return(playerHandler);
    }
    public void Start()
    {
        //health_bar = new HealthSystem(HealthBarDimens, VerticleHealthBar, HealthBubbleTexture, HealthTexture, HealthBubbleTextureRotation);
        exp_bar = new ExperienceSystem(ExpBarDimens, VerticleExpBar, ExpBubbleTexture, ExperienceTexture, ExpTextureRotation);
        //mana_bar = new ManaSystem(ManaBarDimens, ManaBarScrollerDimens, VerticleManaBar, ManaBubbleTexture, ManaTexture, ManaBubbleTextureRotation);
        //globe_test_bar = new GlobeBarSystem(GlobeBarDimens, VerticleGlobeBar, GlobeBubbleTexture, GlobeTexture, GlobeBubbleTextureRotation);

        exp_bar.Initialize();
        //health_bar.Initialize();
        //mana_bar.Initialize();
        //globe_test_bar.Initialize();
        if (GetComponent <PlayerController>() != null)
        {
            fullHealth = GetComponent <PlayerController>().health;
            level1     = true;
        }

        else
        {
            fullHealth = GetComponent <Health>().health;
        }
        exp_bar.health = fullHealth;
    }
Beispiel #14
0
    private void Setup(HealthSystem healthSystem, ExperienceSystem experienceSystem)
    {
        this.healthSystem     = healthSystem;
        this.experienceSystem = experienceSystem;

        healthSystem.OnDead           += HealthSystem_OnDead;
        healthSystem.OnHealthDecrease += HealthSystem_OnHealthDecrease;

        SetupSkills();
        SetupSkillIcons();

        audioManager = FindObjectOfType <AudioManager>();

        Scene currScene = SceneManager.GetActiveScene();

        if (currScene.name == "Prototype")
        {
            audioManager.Play("Jungle", true);
        }
        if (currScene.name == "BeachScene")
        {
            audioManager.Play("Beach", true);
        }
    }
        public void TestManualSystem()
        {
            long[]           arrLevels = new long[] { 0, 55, 120, 270, 390, 510, 790, 1200, 1680, 2090, 2800 };
            LevelModel       manLevels = new LevelModel(arrLevels);
            ExperienceSystem hero1     = new ExperienceSystem(manLevels);

            //Check starting values
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(0, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(55, hero1.GetLevelGap());

            //Add some xp
            hero1.AddExperience(25, manLevels);
            hero1.AddExperience(12, manLevels);
            hero1.AddExperience(7, manLevels);
            hero1.SubtractExperience(14);

            Assert.AreEqual(30, hero1.GetCurrentExperience());
            Assert.AreEqual(30, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(55, hero1.GetLevelGap());

            //Add xp so we level-up

            hero1.AddExperience(25, manLevels);
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(55, hero1.GetTotalExperience());
            Assert.AreEqual(1, hero1.GetLevel());


            //Add more xp so we level up two levels, then drop and go back up
            hero1.AddExperience(500, manLevels);

            Assert.AreEqual(5, hero1.GetLevel());
            Assert.AreEqual(280, hero1.GetLevelGap());
            Assert.AreEqual(45, hero1.GetCurrentExperience());
            hero1.SubtractExperience(15);
            Assert.AreEqual(30, hero1.GetCurrentExperience());
            Assert.AreEqual(540, hero1.GetTotalExperience());
            hero1.AddExperience(1000, manLevels);
            Assert.AreEqual(7, hero1.GetLevel());
            Assert.AreEqual(340, hero1.GetCurrentExperience());
            hero1.SubtractExperience(400);
            Assert.AreEqual(-60, hero1.GetCurrentExperience());
            Assert.AreEqual(7, hero1.GetLevel());
            Assert.AreEqual(540, hero1.ExperienceTillLevelUp(manLevels));

            //make experience positive again
            hero1.AddExperience(1000, manLevels);

            //Check where we are
            Assert.AreEqual(2140, hero1.GetTotalExperience()); //Currently, total experience is 2140,
            Assert.AreEqual(50, hero1.GetCurrentExperience()); //           current experience is 50,
            Assert.AreEqual(9, hero1.GetLevel());              //           and level is 9

            //and some calculations
            Assert.AreEqual(1350, hero1.ExperienceDelta(6, manLevels));
            Assert.AreEqual(2085, hero1.ExperienceDelta(1, manLevels));
            Assert.AreEqual(660, hero1.ExperienceTillLevelUp(manLevels));
            Assert.AreEqual(7, hero1.ProgressToNextLevel(manLevels), 0.1);
            Assert.AreEqual(710, hero1.GetLevelGap());

            Assert.AreEqual(7, hero1.ExperienceToLevel(1302, manLevels));


            //test ResetExperience()

            hero1.ResetExperience();
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(9, hero1.GetLevel());
            Assert.AreEqual(2090, hero1.GetTotalExperience());

            //test SetLevel()

            hero1.SetLevel(10, manLevels);
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(2800, hero1.GetTotalExperience());
            Assert.AreEqual(10, hero1.GetLevel());
            Assert.AreEqual(long.MaxValue - 2800, hero1.GetLevelGap());
        }
Beispiel #16
0
        private void InitializeSystems()
        {
            Console.WriteLine("Initializing Game Systems");

            professionSystem = new ProfessionSystem();
            effectSystem=new EffectSystem(lua);
            equipmentSystem = new EquipmentSystem();
            experienceSystem = new ExperienceSystem();         
            itemSystem = new ItemSystem();
            inventorySystem = new ItemInventorySystem();
            modifierSystem = new StatModifierSystem();
            nameSystem = new NameSystem(lua);
            playerSystem = new PlayerSystem(nameSystem, stateSystem);
            gearSystem = new GearSystem();
            statsSystem = new StatsSystem();
            aInventorySystem = new ActionInventorySystem(lua, statsSystem);
            actionSystem = new ActionSystem(lua);
            aiSystem = new AISystem();
            dropSystem = new DropSystem(dropMap);
        }
        public void TestLinearSystem()
        {
            LevelModel       linearLevels = new LevelModel(100);
            ExperienceSystem hero1        = new ExperienceSystem(linearLevels);

            //Check starting values
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(0, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(100, hero1.GetLevelGap());

            //Add some xp
            hero1.AddExperience(20, linearLevels);
            hero1.AddExperience(45, linearLevels);
            hero1.AddExperience(13, linearLevels);
            hero1.SubtractExperience(27);

            Assert.AreEqual(51, hero1.GetCurrentExperience());
            Assert.AreEqual(51, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(100, hero1.GetLevelGap());

            //Add xp so we level-up

            hero1.AddExperience(49, linearLevels);
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(100, hero1.GetTotalExperience());
            Assert.AreEqual(1, hero1.GetLevel());
            Assert.AreEqual(100, hero1.GetLevelGap());

            //Add more xp so we level up two levels, then drop and go back up
            hero1.AddExperience(201, linearLevels);
            Assert.AreEqual(3, hero1.GetLevel());
            Assert.AreEqual(1, hero1.GetCurrentExperience());
            hero1.SubtractExperience(49);
            Assert.AreEqual(-48, hero1.GetCurrentExperience());
            Assert.AreEqual(252, hero1.GetTotalExperience());
            Assert.AreEqual(3, hero1.GetLevel());
            hero1.AddExperience(48, linearLevels);
            //level should still be 3
            Assert.AreEqual(3, hero1.GetLevel());

            //make experience positive again
            hero1.AddExperience(27, linearLevels);

            //Check where we are
            Assert.AreEqual(327, hero1.GetTotalExperience());  //Currently, total experience is 327,
            Assert.AreEqual(27, hero1.GetCurrentExperience()); //           current experience is 27,
            Assert.AreEqual(3, hero1.GetLevel());              //           and level is 3

            //and some calculations
            Assert.AreEqual(173, hero1.ExperienceDelta(5, linearLevels));
            Assert.AreEqual(73, hero1.ExperienceTillLevelUp(linearLevels));
            Assert.AreEqual(27, hero1.ProgressToNextLevel(linearLevels));
            Assert.AreEqual(100, hero1.GetLevelGap());
            Assert.AreEqual(53, hero1.ExperienceToLevel(5347, linearLevels));

            //test ResetExperience()

            hero1.ResetExperience();
            Assert.AreEqual(0, hero1.GetCurrentExperience(), 0);
            Assert.AreEqual(3, hero1.GetLevel(), 3);

            //test SetLevel()

            hero1.SetLevel(1, linearLevels);
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(100, hero1.GetTotalExperience());
            Assert.AreEqual(1, hero1.GetLevel());
            Assert.AreEqual(100, hero1.GetLevelGap());
        }
Beispiel #18
0
 // Start is called before the first frame update
 void Start()
 {
     XPke = GameObject.FindGameObjectWithTag("xpSystem").GetComponent <ExperienceSystem>();
 }
    public void Start()
    {
        //health_bar = new HealthSystem(HealthBarDimens, VerticleHealthBar, HealthBubbleTexture, HealthTexture, HealthBubbleTextureRotation);
        exp_bar = new ExperienceSystem(ExpBarDimens, VerticleExpBar, ExpBubbleTexture, ExperienceTexture, ExpTextureRotation);
        //mana_bar = new ManaSystem(ManaBarDimens, ManaBarScrollerDimens, VerticleManaBar, ManaBubbleTexture, ManaTexture, ManaBubbleTextureRotation);
        //globe_test_bar = new GlobeBarSystem(GlobeBarDimens, VerticleGlobeBar, GlobeBubbleTexture, GlobeTexture, GlobeBubbleTextureRotation);

        exp_bar.Initialize();
        //health_bar.Initialize();
        //mana_bar.Initialize();
        //globe_test_bar.Initialize();
        if (GetComponent<PlayerController>() != null)
        {
            fullHealth = GetComponent<PlayerController>().health;
            level1 = true;
        }

        else fullHealth = GetComponent<Health>().health;
        exp_bar.health = fullHealth;
    }
        public void TestExponentialSystem()
        {
            LevelModel       expLevels = new LevelModel(10, 2, UpgradeType.exponential);
            ExperienceSystem hero1     = new ExperienceSystem(expLevels);

            //Check starting values
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(0, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(10, hero1.GetLevelGap());

            //Add some xp
            hero1.AddExperience(2, expLevels);
            hero1.AddExperience(4, expLevels);
            hero1.AddExperience(1, expLevels);
            hero1.SubtractExperience(3);

            Assert.AreEqual(4, hero1.GetCurrentExperience());
            Assert.AreEqual(4, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(10, hero1.GetLevelGap());

            //Add xp so we level-up

            hero1.AddExperience(6, expLevels);
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(10, hero1.GetTotalExperience());
            Assert.AreEqual(1, hero1.GetLevel());


            //Add more xp so we level up two levels, then drop and go back up
            hero1.AddExperience(200, expLevels);

            Assert.AreEqual(5, hero1.GetLevel());
            Assert.AreEqual(160, hero1.GetLevelGap());
            Assert.AreEqual(50, hero1.GetCurrentExperience());
            hero1.SubtractExperience(49);
            Assert.AreEqual(1, hero1.GetCurrentExperience());
            Assert.AreEqual(161, hero1.GetTotalExperience());
            hero1.AddExperience(500, expLevels);
            Assert.AreEqual(7, hero1.GetLevel());
            Assert.AreEqual(21, hero1.GetCurrentExperience());
            hero1.SubtractExperience(41);
            Assert.AreEqual(-20, hero1.GetCurrentExperience());
            Assert.AreEqual(7, hero1.GetLevel());
            Assert.AreEqual(660, hero1.ExperienceTillLevelUp(expLevels));

            //make experience positive again
            hero1.AddExperience(1000, expLevels);

            //Check where we are
            Assert.AreEqual(1620, hero1.GetTotalExperience());  //Currently, total experience is 1620,
            Assert.AreEqual(340, hero1.GetCurrentExperience()); //           current experience is 340,
            Assert.AreEqual(8, hero1.GetLevel());               //           and level is

            //and some calculations
            Assert.AreEqual(3500, hero1.ExperienceDelta(10, expLevels));
            Assert.AreEqual(1610, hero1.ExperienceDelta(1, expLevels));
            Assert.AreEqual(940, hero1.ExperienceTillLevelUp(expLevels));
            Assert.AreEqual(26, hero1.ProgressToNextLevel(expLevels), 0.1);
            Assert.AreEqual(1280, hero1.GetLevelGap());

            Assert.AreEqual(6, hero1.ExperienceToLevel(400, expLevels));


            //test ResetExperience()

            hero1.ResetExperience();
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(8, hero1.GetLevel());
            Assert.AreEqual(1280, hero1.GetTotalExperience());

            //test SetLevel()

            hero1.SetLevel(2, expLevels);
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(20, hero1.GetTotalExperience());
            Assert.AreEqual(2, hero1.GetLevel());
            Assert.AreEqual(20, hero1.GetLevelGap());
        }
        public void TestQuadraticSystem()
        {
            LevelModel       quadrLevels = new LevelModel(100, 2, UpgradeType.polynomial);
            ExperienceSystem hero1       = new ExperienceSystem(quadrLevels);

            //Check starting values
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(0, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(100, hero1.GetLevelGap());

            //Add some xp
            hero1.AddExperience(20, quadrLevels);
            hero1.AddExperience(45, quadrLevels);
            hero1.AddExperience(13, quadrLevels);
            hero1.SubtractExperience(27);

            Assert.AreEqual(51, hero1.GetCurrentExperience());
            Assert.AreEqual(51, hero1.GetTotalExperience());
            Assert.AreEqual(0, hero1.GetLevel());
            Assert.AreEqual(100, hero1.GetLevelGap());

            //Add xp so we level-up

            hero1.AddExperience(49, quadrLevels);
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(100, hero1.GetTotalExperience());
            Assert.AreEqual(1, hero1.GetLevel());
            Assert.AreEqual(300, hero1.GetLevelGap());

            //Add more xp so we level up two levels, then drop and go back up
            hero1.AddExperience(2005, quadrLevels);
            Assert.AreEqual(4, hero1.GetLevel());
            Assert.AreEqual(505, hero1.GetCurrentExperience());
            hero1.SubtractExperience(49);
            Assert.AreEqual(456, hero1.GetCurrentExperience());
            Assert.AreEqual(2056, hero1.GetTotalExperience());
            hero1.AddExperience(500, quadrLevels);
            Assert.AreEqual(5, hero1.GetLevel());
            Assert.AreEqual(56, hero1.GetCurrentExperience());
            hero1.SubtractExperience(156);
            Assert.AreEqual(5, hero1.GetLevel());
            Assert.AreEqual(1200, hero1.ExperienceTillLevelUp(quadrLevels));

            //make experience positive again
            hero1.AddExperience(1000, quadrLevels);

            //Check where we are
            Assert.AreEqual(3400, hero1.GetTotalExperience());  //Currently, total experience is 3400,
            Assert.AreEqual(900, hero1.GetCurrentExperience()); //           current experience is 900,
            Assert.AreEqual(5, hero1.GetLevel());               //           and level is 5

            //and some calculations
            Assert.AreEqual(1500, hero1.ExperienceDelta(7, quadrLevels));
            Assert.AreEqual(200, hero1.ExperienceTillLevelUp(quadrLevels));
            Assert.AreEqual(81, hero1.ProgressToNextLevel(quadrLevels), 0.1);
            Assert.AreEqual(1100, hero1.GetLevelGap());

            Assert.AreEqual(9, hero1.ExperienceToLevel(9014, quadrLevels));


            //test ResetExperience()

            hero1.ResetExperience();
            Assert.AreEqual(0, hero1.GetCurrentExperience());
            Assert.AreEqual(5, hero1.GetLevel());

            //test SetLevel()

            hero1.SetLevel(7, quadrLevels);
            Assert.AreEqual(hero1.GetCurrentExperience(), 0);
            Assert.AreEqual(hero1.GetTotalExperience(), 4900);
            Assert.AreEqual(hero1.GetLevel(), 7);
            Assert.AreEqual(hero1.GetLevelGap(), 1500);
        }
Beispiel #22
0
 private static void UpdateAttributes()
 {
     _player.SetMaxHitPoints(HitPoints.Calculate(_player));
     _player.SetHitPoints(_player.GetMaxHitPoints());
     _player.SetMaxExperiencePoints(ExperienceSystem.GetExperienceForNextLevel(Player.Instance().GetLevel()));
 }