Ejemplo n.º 1
0
        static void LevelUp()
        {
            var player = GameState.Instance.PlayerRpgState;

            player.Experience = RpgValues.XPToNext(player.Level);
            player.CheckLevelUp();
        }
Ejemplo n.º 2
0
 public void CheckLevelUp()
 {
     if (Experience >= RpgValues.XPToNext(Level))
     {
         QdmsMessageBus.Instance.PushBroadcast(new QdmsFlagMessage("RpgLevelUp"));
         QdmsMessageBus.Instance.PushBroadcast(new HUDPushMessage("<l:IGUI_MESSAGE:LevelUp>"));
     }
 }
Ejemplo n.º 3
0
        private void RecalculateStats()
        {
            //copy base stats
            DerivedStats = new StatsSet(BaseStats);

            //apply conditions
            foreach (Condition c in Conditions)
            {
                c.Apply(BaseStats, DerivedStats);
            }

            //apply equipment bonuses (armor basically)
            if (Equipped.ContainsKey(EquipSlot.Body))
            {
                ArmorItemModel aim = Equipped[EquipSlot.Body].ItemModel as ArmorItemModel;
                if (aim != null)
                {
                    foreach (var key in BaseStats.DamageResistance.Keys)
                    {
                        if (aim.DamageResistance.ContainsKey((DamageType)key))
                        {
                            DerivedStats.DamageResistance[key] = BaseStats.DamageResistance[key] + aim.DamageResistance[(DamageType)key];
                        }
                        if (aim.DamageThreshold.ContainsKey((DamageType)key))
                        {
                            DerivedStats.DamageThreshold[key] = BaseStats.DamageThreshold[key] + aim.DamageThreshold[(DamageType)key];
                        }
                    }
                }
                else
                {
                    Debug.LogWarning("Player has non-armor item in armor slot!");
                }
            }

            //apply derived skills
            if (GameParams.UseDerivedSkills)
            {
                RpgValues.SkillsFromStats(BaseStats, DerivedStats);
            }

            //recalculate max health and energy
            DerivedStats.MaxHealth = RpgValues.MaxHealth(this);
            DerivedStats.MaxEnergy = RpgValues.MaxEnergy(this);

            //apply endurance from difficulty
            float endurance = ConfigState.Instance.GetGameplayConfig().Difficulty.PlayerEndurance;

            DerivedStats.MaxHealth *= endurance;
            DerivedStats.MaxEnergy *= endurance;
        }