Пример #1
0
 public void checkTarget(BattlePuppet enemy)
 {
     if (distance(enemy.HitBox.Center) <= sightRange)
     {
         BattleTargets.Add(enemy);
     }
 }
Пример #2
0
 public void overrideTarget(Point targetPosition)
 {
     overridingTarget = true;
     BattleTargets.Clear();
     CurrentState = BattlePuppetState.Walking;
     Destination  = targetPosition;
 }
Пример #3
0
 public Move(Pokedex pokedex, int id, int type_id, LocalizedString name,
             DamageClass damage_class, int damage, int pp, int accuracy, int priority,
             BattleTargets target)
 {
     m_pokedex   = pokedex;
     ID          = id;
     TypeID      = type_id;
     Name        = name;
     DamageClass = damage_class;
     Damage      = damage;
     PP          = pp;
     Accuracy    = accuracy;
     Priority    = priority;
     Target      = target;
 }
Пример #4
0
        public Move(Pokedex pokedex, int id, int type_id, LocalizedString name,
            DamageClass damage_class, int damage, int pp, int accuracy, int priority,
            BattleTargets target)
            : base(pokedex)
        {
            m_type_pair = Type.CreatePair(m_pokedex);
            m_lazy_pairs.Add(m_type_pair);

            ID = id;
            m_type_pair.Key = type_id;
            Name = name;
            DamageClass = damage_class;
            Damage = damage;
            PP = pp;
            Accuracy = accuracy;
            Priority = priority;
            Target = target;
            // todo: Nice description text
        }
Пример #5
0
        void updateTarget()
        {
            if (overridingTarget)
            {
                if (distance(Destination) <= 10)
                {
                    //successfully reached target;
                    overridingTarget = false;
                }
            }
            else
            {
                //remove dead or out of range targets
                BattleTargets.RemoveAll(target => target.isDead || target.distance(HitBox.Center) > sightRange);
                BattleTargets.OrderBy(target => target.distance(HitBox.Center));
                if (BattleTargets.Count > 0)
                {
                    //target nearest target
                    Destination = BattleTargets[0].HitBox.Center;
                }
                else
                {
                    Enemies.RemoveAll(target => target.isDead);
                    if (Enemies.Count > 0)
                    {
                        Enemies.OrderBy(target => target.distance(HitBox.Center));
                        //Destination = Enemies[0].HitBox.Center;
                        foreach (BattlePuppet enemy in Enemies)
                        {
                            checkTarget(enemy);
                        }
                    }
                    else
                    {
                        //no enemies, hoooraaaay!!
                        CurrentState = BattlePuppetState.Idle;
                        battleOver   = true;

                        //Destination = HitBox.Center;
                    }
                }
            }
        }
Пример #6
0
        //if target is in hitting range
        bool inRangeOfTarget()
        {
            //remove dead or out of range targets
            BattleTargets.RemoveAll(target => target.isDead || target.distance(HitBox.Center) > sightRange);
            BattleTargets.OrderBy(target => target.distance(HitBox.Center));

            if (BattleTargets.Count > 0)
            {
                if (distance(BattleTargets[0].HitBox.Center) <= Unit.Range)
                {
                    return(true);
                }
            }
            else
            {
                CurrentState = BattlePuppetState.Walking;
            }
            return(false);
        }
Пример #7
0
        public Move(Pokedex pokedex, int id, int type_id, LocalizedString name,
                    DamageClass damage_class, int damage, int pp, int accuracy, int priority,
                    BattleTargets target)
            : base(pokedex)
        {
            m_type_pair = Type.CreatePair(m_pokedex);
            m_lazy_pairs.Add(m_type_pair);

            ID = id;
            m_type_pair.Key = type_id;
            Name            = name;
            DamageClass     = damage_class;
            Damage          = damage;
            PP       = pp;
            Accuracy = accuracy;
            Priority = priority;
            Target   = target;
            // todo: Nice description text
        }