コード例 #1
0
    public void Setup(ExperienceSystem xpSystem)
    {
        this.xpSystem = xpSystem;

        xpSystem.OnXpChanged += XpSystem_OnXpChanged;
        UpdateXpBar();
    }
コード例 #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;
        }
コード例 #3
0
    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);
        }
    }
コード例 #4
0
ファイル: ExperienceSystem.cs プロジェクト: kyanicu/Endpoint
 private void Awake()
 {
     // Setup singleton
     if (_instance == null)
     {
         _instance = this;
     }
 }
コード例 #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();
    }
コード例 #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();
    }
コード例 #7
0
ファイル: StatusState.cs プロジェクト: InferiorOlive/AIQuest
        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;
        }
コード例 #8
0
 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;
 }
コード例 #9
0
ファイル: ShopState.cs プロジェクト: InferiorOlive/AIQuest
        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;
        }
コード例 #10
0
ファイル: CombatSystem.cs プロジェクト: InferiorOlive/AIQuest
        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();
        }
コード例 #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;
 }
コード例 #12
0
ファイル: PlayerHandler.cs プロジェクト: FlipDD/Kuto
    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);
    }
コード例 #13
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);
        //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;
    }
コード例 #14
0
ファイル: PlayerHandler.cs プロジェクト: FlipDD/Kuto
    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);
        }
    }
コード例 #15
0
        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());
        }
コード例 #16
0
ファイル: AIQuest.cs プロジェクト: InferiorOlive/AIQuest
        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);
        }
コード例 #17
0
        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());
        }
コード例 #18
0
 // Start is called before the first frame update
 void Start()
 {
     XPke = GameObject.FindGameObjectWithTag("xpSystem").GetComponent <ExperienceSystem>();
 }
コード例 #19
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);
        //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;
    }
コード例 #20
0
        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());
        }
コード例 #21
0
        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);
        }
コード例 #22
0
 private static void UpdateAttributes()
 {
     _player.SetMaxHitPoints(HitPoints.Calculate(_player));
     _player.SetHitPoints(_player.GetMaxHitPoints());
     _player.SetMaxExperiencePoints(ExperienceSystem.GetExperienceForNextLevel(Player.Instance().GetLevel()));
 }