示例#1
0
        public Tuple <EntityStat, EntityStat> GetNextLevelStats()
        {
            var primary   = new EntityStat(PrimaryStat.Kind, 0);
            var secondary = new EntityStat(AuxStat.Kind, 0);

            if (Level < MaxLevel)
            {
                {
                    var fac = CalcFactor(true, Level + 1);
                    //if (Kind == PassiveAbilityKind.LootingMastering)
                    //{
                    //  //desc.AddRange(this.GetCustomExtraStatDescription(Level + 1));
                    //}
                    //else
                    {
                        primary.Factor = fac;
                        //desc.Add(PrimaryStat.Kind + ": " + GetFormattedCurrentValue(esN));
                    }
                    if (AuxStat.Kind != EntityStatKind.Unset)
                    {
                        fac              = CalcFactor(false, Level + 1);
                        secondary        = new EntityStat(AuxStat.Kind, 0);
                        secondary.Factor = fac;
                        //desc.Add(AuxStat.Kind + ": " + GetFormattedCurrentValue(esN));
                    }
                }
            }
            return(new Tuple <EntityStat, EntityStat>(primary, secondary));
        }
示例#2
0
        public string GetFormattedCurrentValue(EntityStat es)
        {
            var fv = es.GetFormattedCurrentValue();

            //if (es.Unit != EntityStatUnit.Percentage && IsPercentageFromKind)//Health, Magic... ability is always in %
            //  fv += "%";
            return(fv);
        }
示例#3
0
        EntityStat CreateForLevel(EntityStat src, bool primary, int level)
        {
            var esN = new EntityStat(src.Kind, 0, src.Unit);
            var fac = CalcFactor(primary, level);

            esN.Factor = fac;
            return(esN);
        }
示例#4
0
 public BaseRelic(string name, EntityStat stat, int modvalue, string desc)
 {
     //PartitionKey = "Relic";
     //RowKey = name;
     //Stat2Mod = stat;
     //ModValue = modvalue;
     //Desc = desc;
 }
示例#5
0
 public Equipment(EquipmentKind kind = EquipmentKind.Unset)//default arg for serialization
 {
     ExtendedInfo  = new LootExtendedInfo();
     primaryStat   = new EntityStat();
     EquipmentKind = kind;
     Class         = EquipmentClass.Plain;
     LootKind      = LootKind.Equipment;
 }
示例#6
0
        public string GetFormattedCurrentValue(EntityStat es)
        {
            var fv = es.GetFormattedCurrentValue();

            if (!es.IsPercentage && IsPercentageFromKind())
            {
                fv += "%";
            }
            return(fv);
        }
示例#7
0
文件: Entity.cs 项目: conker87/VBOOP
    public void BuffStat(EntityStat stat, float value)
    {
        switch (stat)
        {
        case EntityStat.CRIT_RATING:
            CritRating += value;
            break;

        case EntityStat.HASTE_RATING:
            HasteRating += value;
            break;

        case EntityStat.HEALTH_REGENERATION:
            HealthRegenerationPerSecond += value;
            break;

        case EntityStat.INCREASED_ABERRATION:
            IncreasedAberrationDamage += value;
            break;

        case EntityStat.INCREASE_BEAST:
            IncreasedBeastDamage += value;
            break;

        case EntityStat.INCREASE_CRITTER:
            IncreasedCritterDamage += value;
            break;

        case EntityStat.INCREASE_DEITY:
            HealthRegenerationPerSecond += value;
            break;

        case EntityStat.INCREASE_DEMON:
            IncreasedDemonDamage += value;
            break;

        case EntityStat.INCREASE_ELEMENTAL:
            IncreasedElementalDamage += value;
            break;

        case EntityStat.INCREASE_HUMANOID:
            IncreasedHumanoidDamage += value;
            break;

        case EntityStat.INCREASE_UNDEAD:
            IncreasedUndeadDamage += value;
            break;

        case EntityStat.MANA_REGENERATION:
            ManaRegenerationPerSecond += value;
            break;
        }
    }
示例#8
0
文件: Entity.cs 项目: conker87/VBOOP
    public void BuffStat(EntityStat stat, int value)
    {
        switch (stat)
        {
        case EntityStat.ARMOR_RATING:
            ArmorRating += value;
            break;

        case EntityStat.INTELLECT:
            Intellect += value;
            break;

        case EntityStat.STAMINA:
            Stamina += value;
            break;
        }
    }
示例#9
0
        public string GetEntityStat(EntityStat stat)
        {
            switch (stat)
            {
            case EntityStat.Speed:
                return(newBoss.Speed.ToString());

            case EntityStat.Attack:
                return(newBoss.Attack.ToString());

            case EntityStat.Health:
                return(newBoss.Health.ToString());

            case EntityStat.Accuracy:
                return(newBoss.Accuracy.ToString());

            case EntityStat.AttackCount:
                return(newBoss.AttackCount.ToString());

            case EntityStat.RespawnCount:
                return(newBoss.RespawnCount.ToString());

            case EntityStat.Score:
                return(newBoss.Score.ToString());

            case EntityStat.DefaultHealth:
                return(newBoss.DefaultHealth.ToString());

            case EntityStat.PartitionKey:
                return(newBoss.PartitionKey);

            case EntityStat.RowKey:
                return(newBoss.RowKey);

            case EntityStat.CurrentThreshold:
                return(newBoss.CurrentThreshold.ToString());

            case EntityStat.AddedHealth:
                return(newBoss.AddedHealth.ToString());

            default:
                return("No Stat Defined");    // No Stat Defined
            }
        }
    bool CanExecute(EntityStat stat)
    {
        bool canExecute = true;

        if (GameManager.player)
        {
            canExecute &= stat.properties.HasProperty(EntityStatProperty.PlayerInRange) == IsInRange(stat.distanceToExecute, GameManager.player.transform.position);
        }
        if (stat.properties.HasProperty(EntityStatProperty.EntityOutOfMoveRegion))
        {
            canExecute &= HasProperty(EntityProperty.AtEndOfMoveRegion);
        }
        if (stat.properties.HasProperty(EntityStatProperty.LowHealth))
        {
            canExecute &= health <= stat.healthToExecute;
        }

        return(canExecute);
    }
    public void InitCamera(bool automatic, bool useSmoothDamp, Vector2 value, float waitTime)
    {
        if (stats == null || stats.Length < 2)
        {
            stats = new EntityStat[2];
        }

        SetProperty(EntityProperty.HasTargetOffset, !automatic);
        stats[0] = new EntityStat
        {
            properties = new Property <EntityStatProperty>(EntityStatProperty.FindNewStat),
            targetType = automatic ? TargetType.MoveRegion : TargetType.Player,
            speed      = value.magnitude,
            moveType   = useSmoothDamp ? MoveType.SmoothDamp : MoveType.Fly,
        };
        prevStat = -1;
        //targetType = automatic ? TargetType.MoveRegion : TargetType.Player;
        //speed = value.magnitude;
        //moveType = useSmoothDamp ? MoveType.SmoothDamp : MoveType.Fly;

        speed  = value.x;
        speedY = value.y;

        stats[1] = new EntityStat {
            properties = new Property <EntityStatProperty>(EntityStatProperty.EntityOutOfMoveRegion), chargeTime = waitTime
        };
        GameInput.BindEvent(GameEventType.NextRoom, room => ToNextRoom(GameManager.GetBoundsFromRoom(room).ToRect()));

        void ToNextRoom(Rect roomRect)
        {
            moveRegion      = roomRect;
            moveRegion.min += cam.HalfSize();
            moveRegion.max -= cam.HalfSize();
            if (automatic)
            {
                transform.position = moveRegion.min.Z(transform.position.z);
                SwitchTargetToMax(true, false);
            }
            Debug.Assert((moveRegion.xMin <= moveRegion.xMax) && (moveRegion.yMin <= moveRegion.yMax),
                         $"Camera's limit is wrong: (Move region: {moveRegion}, Rect: {roomRect})");
        }
    }
示例#12
0
 public void ChangeEntityStat(EntityStat stat, ChangeStatDirection dir, int amt2Change)
 {
     newHero.ChangeStat(stat, dir, amt2Change);
     SyncProperties();
 }
示例#13
0
 void OnHPChange(EntityStat stat, float delta)
 {
     hpBar.sliderValue = stat.curHP/stat.maxHP;
 }
示例#14
0
        public void SetKind(TrophyKind kind)
        {
            Kind = kind;
            Name = Kind.ToString();

            var  st = new EntityStat();
            bool makeEnchantable = false;

            switch (Kind)
            {
            case TrophyKind.Unset:
                break;

            case TrophyKind.SkeletonChemp:
                tag1 = "skeleton_chemp_trophy";
                Name = "Head of Skeleton";
                primaryStatDescription = "Trophy";
                Class = EquipmentClass.Magic;
                break;

            case TrophyKind.BatHead:
                tag1      = "bat_boss_trophy";
                Name      = "Head of Bat's Boss";
                st        = new EntityStat(EntityStatKind.MeleeAttack, 0);
                st.Factor = 3;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Defense, 0);
                st.Factor = 3;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Health, 0);
                st.Factor = 5;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.LifeStealing, 0);
                st.Factor = 3;
                SetMagicStat(st.Kind, st);

                break;

            case TrophyKind.RatHead:
                tag1 = "rat_boss_trophy";
                Name = "Head of Rat's Boss";

                st        = new EntityStat(EntityStatKind.Magic, 0);
                st.Factor = 4;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Mana, 0);
                st.Factor = 4;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ManaStealing, 0);
                st.Factor = 4;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.LightPower, 0);
                st.Factor = 4;
                SetMagicStat(st.Kind, st);

                break;

            case TrophyKind.SkeletonHead://skeleton_king 3rd level
                tag1      = "sk_boss_head";
                Name      = "Head of Skeleton's Boss";
                st        = new EntityStat(EntityStatKind.ChanceToMeleeHit, 0);
                st.Factor = 5;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Health, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                //st = new EntityStat(EntityStatKind.MagicAttackDamageReduction, 0);
                //st.Factor = 5;
                //SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToEvadeElementalProjectileAttack, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                break;

            case TrophyKind.WolfHead://wolf_king
                tag1 = "wolf_boss_trophy";
                Name = "Head of Wolf's Boss";

                st        = new EntityStat(EntityStatKind.Magic, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Mana, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToCastSpell, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                //st = new EntityStat(EntityStatKind.MeleeAttackDamageReduction, 0);
                //st.Factor = 10;
                //SetMagicStat(st.Kind, st);
                break;

            case TrophyKind.DragonClaw:
                tag1      = "dragon_claw";
                Name      = "Dragon's Claw";
                st        = new EntityStat(EntityStatKind.FireAttack, 0);
                st.Factor = 5;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ResistFire, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                makeEnchantable = true;
                break;

            case TrophyKind.Scorpion://scorpion_king , also dragon on 5th
                tag1 = "scorpion_boss_trophy";
                Name = "Stinger of Scorpion's Boss";

                st        = new EntityStat(EntityStatKind.PoisonAttack, 0);
                st.Factor = 6;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ResistPoison, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.LifeStealing, 0);
                st.Factor = 5;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Health, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);
                break;

            case TrophyKind.SpiderHead://spider_king
                tag1 = "spider_boss_trophy";
                Name = "Head of Spider's Boss";

                st        = new EntityStat(EntityStatKind.ChanceToCauseBleeding, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                //st = new EntityStat(EntityStatKind.MeleeAttackDamageReduction, 0);
                //st.Factor = 15;
                //SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToMeleeHit, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToEvadeElementalProjectileAttack, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);
                break;

            case TrophyKind.HydraHead://hydra_king
                tag1 = "hydra_boss_trophy";
                Name = "Head of Hydra's Boss";

                st        = new EntityStat(EntityStatKind.ChanceToCauseStunning, 0);
                st.Factor = 5;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToMeleeHit, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Defense, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Health, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                break;

            case TrophyKind.GriffinHead://griffin_king
                tag1 = "griffin_boss_trophy";
                Name = "Head of Griffin's Boss";

                st        = new EntityStat(EntityStatKind.ChanceToEvadeMeleeAttack, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ManaStealing, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Mana, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Magic, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);
                break;

            case TrophyKind.VampireHead://vampire_king
                tag1 = "wampire_boss_trophy";
                Name = "Head of Vampire's Boss";

                st        = new EntityStat(EntityStatKind.LifeStealing, 0);
                st.Factor = 5;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToCauseBleeding, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToCastSpell, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToEvadeElementalProjectileAttack, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                break;

            case TrophyKind.DarkWizardHand://wizard_king
                tag1 = "dark_wizard_boss_trophy";
                Name = "Hand of Warlock's Boss";

                st        = new EntityStat(EntityStatKind.Health, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                //st = new EntityStat(EntityStatKind.MagicAttackDamageReduction, 0);
                //st.Factor = 15;
                //SetMagicStat(st.Kind, st);

                //st = new EntityStat(EntityStatKind.MeleeAttackDamageReduction, 0);
                //st.Factor = 15;
                //SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToEvadeElementalProjectileAttack, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ChanceToEvadeMeleeAttack, 0);
                st.Factor = 15;
                SetMagicStat(st.Kind, st);

                break;

            case TrophyKind.FallenOneHead://fallen_one
                tag1 = "fallen_one_trophy";
                Name = "Head of Fallen One";

                st        = new EntityStat(EntityStatKind.LifeStealing, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.ManaStealing, 0);
                st.Factor = 10;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.Defense, 0);
                st.Factor = 30;
                SetMagicStat(st.Kind, st);

                st        = new EntityStat(EntityStatKind.LightPower, 0);
                st.Factor = -10;
                SetMagicStat(st.Kind, st);

                makeEnchantable = true;
                break;

            default:
                break;
            }

            if (makeEnchantable)
            {
                MakeEnchantable();//it also increases price
            }
        }
    IEnumerator ExecuteStat(EntityStat stat, float defaultSpeed, float defaultDamage)
    {
        if (stat == null)
        {
            yield break;
        }
        if (stat.properties.properties == null)
        {
            stat.properties.Init();
        }

        rotateType = stat.rotateType;
        targetType = stat.targetType;

        // vfx.Play();
        float timer = 0;

        moveType = MoveType.None;
        while (timer < stat.playerRememberTime)
        {
            if (stat.properties.HasProperty(EntityStatProperty.Interruptible))
            {
                if (!CanExecute(stat))
                {
                    goto END;
                }
            }
            yield return(null);

            timer += Time.deltaTime;
        }
        yield return(new WaitForSeconds(stat.chargeTime - stat.playerRememberTime));

        moveType = stat.moveType;
        speed    = MulAdd(defaultSpeed, stat.speed, stat.properties.HasProperty(EntityStatProperty.MulSpeed), stat.properties.HasProperty(EntityStatProperty.AddSpeed));
        damage   = (int)MulAdd(defaultDamage, stat.damage, stat.properties.HasProperty(EntityStatProperty.MulDamage), stat.properties.HasProperty(EntityStatProperty.AddDamage));


        if (stat.properties.HasProperty(EntityStatProperty.StartFalling))
        {
            rb.velocity  = new Vector2(Random.Range(0f, 1f) * (MathUtils.RandomBool() ? 1f : -1f), Random.Range(0.5f, 1f)).normalized *speed;
            cd.isTrigger = false;
            rb.bodyType  = RigidbodyType2D.Dynamic;
        }
        else if (stat.properties.HasProperty(EntityStatProperty.StartMoving))
        {
            cd.isTrigger = true;
            rb.bodyType  = RigidbodyType2D.Kinematic;
        }

        /*else if (stat.properties.HasProperty(EntityStatProperty.FlipGraviy))
         * {
         *  while (true)
         *  {
         *      float groundTime = 0;
         *      float jumpTime = 0;
         *      do
         *      {
         *          yield return null;
         *          groundTime -= Time.deltaTime;
         *          jumpTime -= Time.deltaTime;
         *          if (GroundCheck())
         *              groundTime = stat.groundRememberTime;
         *          if (GameInput.GetInput(InputType.Jump))
         *              jumpTime = stat.jumpRememberTime;
         *      } while (groundTime < 0 || jumpTime < 0);
         *      rb.gravityScale *= -1;
         *  }
         * }*/

        if (stat.properties.HasProperty(EntityStatProperty.TeleportToTarget))
        {
            float   playerUp = GameManager.player.transform.up.y;
            Vector3 destination;
            {
                destination    = targetPos;
                destination.y += (spriteExtents.y - GameManager.player.spriteExtents.y) * playerUp;

                float playerToEntityX = Mathf.Sign(targetPos.x - transform.position.x);
                float randomDistance  = stat.affectedRange.randomValue * playerToEntityX;
                float minX            = stat.affectedRange.min * playerToEntityX;

                // TODO: Maybe teleport opposite to where the player is heading or teleport to nearby platform
                if (!IsPosValid(randomDistance))
                {
                    if (!IsPosValid(minX))
                    {
                        if (!IsPosValid(-randomDistance))
                        {
                            if (!IsPosValid(-minX))
                            {
                                yield break;
                            }
                        }
                    }
                }

                bool IsPosValid(float offsetX)
                {
                    Vector3 offset     = new Vector3(offsetX, 0);
                    bool    onGround   = BoxCast(destination + offset - new Vector3(0, spriteExtents.y * playerUp), new Vector2(spriteExtents.x, .1f), Color.yellow);
                    bool    insideWall = BoxCast(destination + offset + new Vector3(0, .1f * playerUp), sr.bounds.size, Color.green);

                    if (onGround && !insideWall)
                    {
                        destination.x += offsetX;
                        return(true);
                    }
                    return(false);
                }
            }

            if (playerUp != transform.up.y)
            {
                transform.Rotate(new Vector3(180, 0, 0), Space.World);
            }

            yield return(null);

            transform.position = destination;
            // TODO: Recalculate the moveRegion here or at the default stat
        }

        yield return(new WaitForSeconds(stat.duration));

        if (stat.properties.HasProperty(EntityStatProperty.DamageNearbyEntities))
        {
            if (IsInRange(stat.affectedRange.randomValue, GameManager.player.transform.position))
            {
                GameManager.player.Hurt(damage);
            }
            // TODO: Setup deathVFX for explosion
        }

        if (stat.properties.HasProperty(EntityStatProperty.DieAfterExecution))
        {
            Hurt(health);
        }
        if (stat.properties.HasProperty(EntityStatProperty.TillDeathDoUsPart))
        {
            yield break;
        }

END:
        currentStat = stat.nextStat;
        if (stat.properties.HasProperty(EntityStatProperty.FindNewStat))
        {
            int nextStat = currentStat;
            while (currentStat == nextStat)
            {
                yield return(null);

                for (int i = 0; i < stats.Length; i++)
                {
                    if (i != currentStat)
                    {
                        if (CanExecute(stats[i]))
                        {
                            currentStat = i;
                        }
                    }
                }
            }
        }
    }
示例#16
0
        public void ChangeStat(EntityStat stat, ChangeStatDirection dir, int amt2Change)
        {
            // Change the indicated Stat by adding or subtracting the amt2Change
            // Subtraction is done by multiplying the amt2Change by -1 which creates a negative value that is then "added" to the existing stat.
            switch (stat)
            {
            case EntityStat.Health:
                if (dir == ChangeStatDirection.Set)
                {
                    this.Health = amt2Change;
                }
                else
                {
                    if (dir == ChangeStatDirection.Down)
                    {
                        amt2Change *= (-1);
                    }
                    this.Health += amt2Change;
                }
                break;

            case EntityStat.Attack:
                if (dir == ChangeStatDirection.Set)
                {
                    this.Attack = amt2Change;
                }
                else
                {
                    if (dir == ChangeStatDirection.Down)
                    {
                        amt2Change *= (-1);
                    }
                    this.Attack += amt2Change;
                }
                break;

            case EntityStat.AttackCount:
                if (dir == ChangeStatDirection.Set)
                {
                    this.AttackCount = amt2Change;
                }
                else
                {
                    if (dir == ChangeStatDirection.Down)
                    {
                        amt2Change *= (-1);
                    }
                    this.AttackCount += amt2Change;
                }
                break;

            case EntityStat.RespawnCount:
                if (dir == ChangeStatDirection.Set)
                {
                    this.RespawnCount = amt2Change;
                }
                else
                {
                    if (dir == ChangeStatDirection.Down)
                    {
                        amt2Change *= (-1);
                    }
                    this.RespawnCount += amt2Change;
                }
                break;

            case EntityStat.XP:
                if (dir == ChangeStatDirection.Set)
                {
                    this.XP = amt2Change;
                }
                else
                {
                    if (dir == ChangeStatDirection.Down)
                    {
                        amt2Change *= (-1);
                    }
                    this.XP += amt2Change;
                }
                break;

            case EntityStat.Accuracy:
                if (dir == ChangeStatDirection.Set)
                {
                    this.Accuracy = amt2Change;
                }
                else
                {
                    if (dir == ChangeStatDirection.Down)
                    {
                        amt2Change *= (-1);
                    }
                    this.Accuracy += amt2Change;
                }
                break;

            case EntityStat.Speed:
                if (dir == ChangeStatDirection.Set)
                {
                    this.Speed = amt2Change;
                }
                else
                {
                    if (dir == ChangeStatDirection.Down)
                    {
                        amt2Change *= (-1);
                    }
                    this.Speed += amt2Change;
                }
                break;
            }
        }
示例#17
0
 public Ability()
 {
     PrimaryStat = new EntityStat();
     AuxStat     = new EntityStat();
     Revealed    = true;
 }
示例#18
0
        public string[] GetExtraStatDescription(bool currentLevel)
        {
            List <string> desc = new List <string>();

            bool usesCustomStatDescription = useCustomStatDescription();

            if (currentLevel)
            {
                if (usesCustomStatDescription)

                {
                    desc.AddRange(this.GetCustomExtraStatDescription(Level));
                }
                else
                {
                    desc.Add(PrimaryStat.Kind + ": " + GetFormattedCurrentValue(PrimaryStat));
                    if (AuxStat.Kind != EntityStatKind.Unset)
                    {
                        desc.Add(AuxStat.Kind + ": " + GetFormattedCurrentValue(AuxStat));
                    }
                }
            }
            else
            {
                if (Level < MaxLevel)
                {
                    var esN = new EntityStat(PrimaryStat.Kind, 0);
                    desc.Add("Next Level: ");

                    //if (fightItemKind != FightItemKind.None)
                    //{

                    //}
                    //else
                    {
                        var fac = CalcFactor(true, Level + 1);
                        if (usesCustomStatDescription)
                        {
                            desc.AddRange(this.GetCustomExtraStatDescription(Level + 1));
                        }
                        else
                        {
                            esN.Factor = fac;
                            desc.Add(PrimaryStat.Kind + ": " + GetFormattedCurrentValue(esN));
                        }
                        if (AuxStat.Kind != EntityStatKind.Unset)
                        {
                            fac        = CalcFactor(false, Level + 1);
                            esN        = new EntityStat(AuxStat.Kind, 0);
                            esN.Factor = fac;
                            desc.Add(AuxStat.Kind + ": " + GetFormattedCurrentValue(esN));
                        }
                    }
                }
                else
                {
                    desc.Add(MessageMaxLevelReached);
                }
            }
            return(desc.ToArray());
        }
示例#19
0
文件: Entity.cs 项目: conker87/VBOOP
 public int GetStatValueOnEnum(EntityStat stat)
 {
     return(0);
 }
示例#20
0
    void OnHPChange(EntityStat stat, float delta)
    {
        PlayerStat pstat = (PlayerStat)stat;

        if(pstat.curHP == 0) {
            //decrease level
            SceneWorld sw = SceneWorld.instance;
            if(sw.curLevel > 0) {
                sw.curLevel--;
            }
            else {
                state = Entity.State.die;
            }
        }
        else if(delta < 0) {
            Blink(hurtDelay);
        }
    }
示例#21
0
 void OnHPChange(EntityStat stat, float delta)
 {
     if(stat.curHP == 0) {
         state = State.die;
     }
     else if(delta < 0) {
         Blink(hurtDelay);
     }
 }
示例#22
0
 private void Awake()
 {
     properties = new EntityStat(entityName, attack, defense, speed, health, entityType, weakness, resistance);
 }
示例#23
0
文件: Entity.cs 项目: conker87/VBOOP
 public void DebuffStat(EntityStat stat, float value)
 {
     BuffStat(stat, -value);
 }
示例#24
0
 public void InitStats(string entityTypeName, int level)
 {
     Stats         = EntityTypeInfo[entityTypeName].GetStats(level);
     CurrentHealth = Stats.MaxHealth;
 }
示例#25
0
文件: Style.cs 项目: zhb0318/SOpt-2
 private bool ChangState <T>(T e, EntityStat state)
 {
     Context.Entry(e).State = state;
     Context.SaveChanges();
     return(true);
 }