public void checkTarget(BattlePuppet enemy) { if (distance(enemy.HitBox.Center) <= sightRange) { BattleTargets.Add(enemy); } }
public void overrideTarget(Point targetPosition) { overridingTarget = true; BattleTargets.Clear(); CurrentState = BattlePuppetState.Walking; Destination = targetPosition; }
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; }
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 }
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; } } } }
//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); }