Beispiel #1
0
        public override void AddComponents(Entity entity)
        {
            base.AddComponents(entity);
            entity.Add(new SkillRequirement(Skill, RequiredSkillRank));
            var equipment = entity.Add(new Equipment(EquipmentSlot));
            var stats     = entity.GetOrAdd <StatsContainer>();

            for (int i = 0; i < AttributeBonuses.Length; i++)
            {
                var attributeBonus = AttributeBonuses[i];
                if (attributeBonus == 0)
                {
                    continue;
                }
                equipment.StatsToEquip.Add(Attributes.GetID(i));
                stats.Add(new BaseStat(entity, Attributes.GetNameAt(i), Attributes.GetID(i), AttributeBonuses[i]));
            }
            for (int i = 0; i < DefenseBonuses.Length; i++)
            {
                var defBonus = DefenseBonuses[i];
                if (defBonus == 0)
                {
                    continue;
                }
                equipment.StatsToEquip.Add(Defenses.GetID(i));
                stats.Add(new BaseStat(entity, Defenses.GetNameAt(i), Defenses.GetID(i), DefenseBonuses[i]));
            }
        }
        public static void SetupDefenseStats(StatsContainer stats)
        {
            var owner  = stats.GetEntity();
            var defend = owner.Add(new DefendDamageWithStats());

            for (int i = 0; i < Defenses.Count; i++)
            {
                var typeDef = new BaseStat(owner, string.Format("{0} Defense", Defenses.GetNameAt(i)), Defenses.GetID(i), 0);
                stats.Add(typeDef);
                defend.AddStat(Defenses.GetID(i), typeDef.ID, typeDef);
            }
            stats.Add(new BaseStat(owner, Stats.Evasion, 0));
        }
        public static void GetCharacterStatValues(this StatsContainer statsContainer, ref StringBuilder sb)
        {
            for (int i = 0; i < Attributes.Count; i++)
            {
                sb.AppendNewLine(statsContainer.Get(Attributes.GetID(i)).ToString());
            }
            var atkStats = GameData.Enums[Stats.AttackStats];

            if (atkStats != null)
            {
                for (int i = 0; i < atkStats.Length; i++)
                {
                    sb.AppendNewLine(statsContainer.Get(atkStats.IDs[i]).ToString());
                }
            }
            for (int i = 0; i < Defenses.Count; i++)
            {
                sb.AppendNewLine(statsContainer.Get(Defenses.GetID(i)).ToString());
            }
        }