public static List <BattlePlayer> GetShipsPlayerByTargetRange(TargetRange targetRange, BattlePlayer player) { List <BattlePlayer> res = new List <BattlePlayer>(); if ((targetRange & TargetRange.SelfDeck) != 0) { res.Add(player); } if ((targetRange & TargetRange.SelfShip) != 0) { res.Add(player); } if ((targetRange & TargetRange.EnemyDeck) != 0) { res.Add(player.MyEnemyPlayer); } if ((targetRange & TargetRange.EnemyShip) != 0) { res.Add(player.MyEnemyPlayer); } return(res); }
bool FindTarget(SideEffectExecute see) { foreach (SideEffectBase se in see.SideEffectBases) { if (se is TargetSideEffect tse && tse.IsNeedChoice) { if (tse is TargetSideEffectEquip && ((TargetSideEffectEquip)tse).IsNeedChoice) { HasTargetEquip = true; targetEquipRange = ((TargetSideEffectEquip)tse).TargetRange; } else { TargetRange temp = tse.TargetRange; if ((temp & TargetRange.Ships) != TargetRange.None || (temp & TargetRange.Decks) != TargetRange.None) { HasTargetShip = true; targetShipRange = temp; } if ((temp & TargetRange.Mechs) != TargetRange.None) { HasTargetMech = true; targetMechRange = temp; } } } } return(HasTarget); }
/// <summary> /// Gets a string representation of the HealthGoal. /// </summary> /// /// <returns> /// A string representation of the HealthGoal. /// </returns> /// public override string ToString() { if (TargetRange != null && Recurrence != null) { return(string.Format( CultureInfo.CurrentUICulture, Resources.HealthGoalWithTargetRangeAndRecurrenceFormat, Name.Text, TargetRange.ToString(), Recurrence.ToString())); } if (TargetRange != null) { return(string.Format( CultureInfo.CurrentUICulture, Resources.HealthGoalFormat, Name.Text, TargetRange.ToString())); } if (Recurrence != null) { return(string.Format( CultureInfo.CurrentUICulture, Resources.HealthGoalFormat, Name.Text, Recurrence.ToString())); } return(Name.Text); }
public static int GetValidTargetCountByTargetRange(TargetRange targetRange, BattlePlayer callerPlayer) { int count = 0; if ((targetRange & TargetRange.SelfHeroes) != 0) { count += callerPlayer.BattleGroundManager.HeroCount; } if ((targetRange & TargetRange.SelfSoldiers) != 0) { count += callerPlayer.BattleGroundManager.SoldierCount; } if ((targetRange & TargetRange.EnemyHeroes) != 0) { count += callerPlayer.MyEnemyPlayer.BattleGroundManager.HeroCount; } if ((targetRange & TargetRange.EnemySoldiers) != 0) { count += callerPlayer.MyEnemyPlayer.BattleGroundManager.SoldierCount; } return(count); }
public override TargetType GetTargetType() { TargetUnit targetUnit = spellData.targetUnit; TargetRange targetRange = spellData.targetRange; return(new TargetType(targetUnit, targetRange)); }
public void SummonMechPreview(CardMech mechCard, int mechPlaceIndex, TargetRange targetRange) //用于具有指定目标的副作用的机甲的召唤预览、显示指定箭头 { currentSummonPreviewMechCard = mechCard; ModuleMech mech = AddMech_PrePass((CardInfo_Mech)mechCard.CardInfo, (int)Const.SpecialMechID.Empty, (int)Const.SpecialMechID.ClientTempMechIDNormal); CurrentSummonPreviewMech = mech; AddMech(mechPlaceIndex); DragManager.Instance.StartSummonMechTargetArrowAiming(mech, targetRange); }
public List <BattleCharacter> EnemyToFilter(BattleCommand battleCommand) { BattleCharacter owner = battleCommand.owner; TargetType targetType = battleCommand.GetTargetType(); TargetUnit targetUnit = targetType.targetUnit; TargetRange targetRange = targetType.targetRange; return(EnemyToFilter(owner, targetUnit, targetRange)); }
public void KillMechs(int count, List <int> mechIds, BattlePlayer callerPlayer, TargetRange targetRange, TargetSelect targetSelect, int exceptMechId = -1) { List <BattlePlayer> battlePlayers = GetMechsPlayerByTargetRange(targetRange, callerPlayer); MechTypes mechType = GetMechTypeByTargetRange(targetRange); switch (targetSelect) { case TargetSelect.All: { KillMechs(GetMechsByType(battlePlayers, mechType)); break; } case TargetSelect.Multiple: { List <ModuleMech> mechs = new List <ModuleMech>(); foreach (int mechId in mechIds) { mechs.Add(GetMech(mechId)); } KillMechs(mechs); break; } case TargetSelect.MultipleRandom: { List <ModuleMech> mechs = new List <ModuleMech>(); foreach (ModuleMech mech in Utils.GetRandomFromList(GetMechsByType(battlePlayers, mechType), count)) { mechs.Add(mech); } KillMechs(mechs); break; } case TargetSelect.Single: { KillMechs(new List <ModuleMech> { GetMech(mechIds[0]) }); break; } case TargetSelect.SingleRandom: { KillMechs(new List <ModuleMech> { GetRandomMech(battlePlayers, mechType, exceptMechId) }); break; } } }
public void Validate() { Name.ValidateRequired("Name"); StartDate.ValidateOptional("StartDate"); EndDate.ValidateOptional("EndDate"); AssociatedTypeInfo.ValidateOptional("AssociatedTypeInfo"); TargetRange.ValidateOptional("TargetRange"); GoalAdditionalRanges.ValidateOptional("GoalAdditionalRanges"); Recurrence.ValidateOptional("Recurrence"); }
public static void AddAllSideEffects() { Reset(); SortedDictionary <string, string> descKeyDict = new SortedDictionary <string, string>(); foreach (int v in Enum.GetValues(typeof(LanguageShorts))) { string strName = Enum.GetName(typeof(LanguageShorts), v); descKeyDict[strName] = "desc_" + strName; } string text; using (StreamReader sr = new StreamReader(SideEffectsXMLFile)) { text = sr.ReadToEnd(); } XmlDocument doc = new XmlDocument(); doc.LoadXml(text); XmlElement node_AllSideEffects = doc.DocumentElement; for (int i = 0; i < node_AllSideEffects.ChildNodes.Count; i++) { XmlNode node_SideEffect = node_AllSideEffects.ChildNodes.Item(i); string name = node_SideEffect.Attributes["name"].Value; SideEffectBase se = (SideEffectBase)CurrentAssembly.CreateInstance("SideEffects." + name); if (se == null) { Utils.DebugLog("SideEffects: " + name + " does not exist"); continue; } se.Name = node_SideEffect.Attributes["name"].Value; se.DescRaws = new SortedDictionary <string, string>(); foreach (KeyValuePair <string, string> kv in descKeyDict) { se.DescRaws[kv.Key] = node_SideEffect.Attributes[kv.Value].Value; } if (se is TargetSideEffect t_se) { t_se.M_SideEffectParam.GetParam("TargetSelect").SetValue(t_se.ValidTargetSelects[0].ToString()); Dictionary <TargetSelect, List <TargetRange> > validTargetRangeDict = TargetSelector.TargetSelectorPresets[t_se.TargetSelectorType]; TargetRange validTargetRange = validTargetRangeDict[t_se.ValidTargetSelects[0]][0]; t_se.M_SideEffectParam.GetParam("TargetRange").SetValue(validTargetRange.ToString()); } addSideEffect(se); } }
public List <BattleCharacter> PlayerToFilter(BattleCommand battleCommand) { List <PlayerCharacter> playerCharacters = BattleController.instance.AlivePlayerCharacters; List <EnemyCharacter> enemyCharacters = BattleController.instance.AliveEnemyCharacters; BattleCharacter owner = battleCommand.owner; TargetType targetType = battleCommand.GetTargetType(); TargetUnit targetUnit = targetType.targetUnit; TargetRange targetRange = targetType.targetRange; IReadOnlyCollection <BattleCharacter> target = new List <BattleCharacter>(); switch (targetUnit) { case TargetUnit.自分: return(new List <BattleCharacter>() { owner }); case TargetUnit.味方: target = playerCharacters; break; case TargetUnit.相手: target = enemyCharacters; break; case TargetUnit.死亡者: var allPlayer = BattleController.instance.playerCharacters; target = allPlayer.Where(x => x.IsDead()).ToList(); break; default: break; } switch (targetRange) { case TargetRange.単体: return(Randam(target)); case TargetRange.全体: return(target.Cast <BattleCharacter>().ToList()); default: break; } return(null); }
public bool Equals(LinesRangeDiffResult other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } //Trying to short circuit with simple comparisons first. return(SourceRange.Equals(other.SourceRange) && TargetRange.Equals(other.TargetRange) && DiffStatus == other.DiffStatus && AffectedLines.Count == other.AffectedLines.Count && AffectedLines.SequenceEqual(other.AffectedLines)); }
public static List <BattlePlayer> GetMechsPlayerByTargetRange(TargetRange targetRange, BattlePlayer player) { List <BattlePlayer> res = new List <BattlePlayer>(); if ((targetRange & TargetRange.SelfMechs) != 0) { res.Add(player); } if ((targetRange & TargetRange.EnemyMechs) != 0) { res.Add(player.MyEnemyPlayer); } return(res); }
private void GetValidTargets(IEnumerable <Pawn> targets) { targetList.Clear(); foreach (var target in targets) { if (!TargetRange.Contains(target.Position.DistanceTo(User.Position)) || Ability.SuccessChanceOnTarget(target) < MinSuccessChance || !TargetMatchesTargetType(target) || AdditionalFilters.Any(filter => !filter.TargetMeetsFilter(target))) { continue; } targetList.Add(target); } }
public static string GetDescOfTargetSelector(TargetRange targetRange, TargetSelect targetSelect, int choiceCount) { string textKey = "TargetRange_" + targetSelect + "_" + targetRange; string rawDesc = ""; rawDesc = LanguageManager_Common.GetText(textKey); if (rawDesc != null && rawDesc.Contains("{0}")) { if (targetSelect == TargetSelect.Multiple || targetSelect == TargetSelect.MultipleRandom) { rawDesc = string.Format(rawDesc, choiceCount); } } return(rawDesc); }
public static ILifeCompositionTypes GetILifeCompositionTypesByTargetRange(TargetRange targetRange) { if ((targetRange & TargetRange.Mechs) != 0 && (targetRange & TargetRange.Ships) != 0) { return(ILifeCompositionTypes.Mixed); } else if ((targetRange & TargetRange.Mechs) != 0 && (targetRange & TargetRange.Ships) == 0) { return(ILifeCompositionTypes.OnlyMechs); } else if ((targetRange & TargetRange.Mechs) == 0 && (targetRange & TargetRange.Ships) != 0) { return(ILifeCompositionTypes.OnlyShips); } return(ILifeCompositionTypes.None); }
public List <BattleCharacter> GetBattleCharacters(BattleCommand battleCommand, IReadOnlyCollection <BattleCharacter> Friend, IReadOnlyCollection <BattleCharacter> Opponent) { BattleCharacter owner = battleCommand.owner; TargetType targetType = battleCommand.GetTargetType(); TargetUnit targetUnit = targetType.targetUnit; TargetRange targetRange = targetType.targetRange; IReadOnlyCollection <BattleCharacter> target = new List <BattleCharacter>(); switch (targetUnit) { case TargetUnit.自分: return(new List <BattleCharacter>() { owner }); case TargetUnit.味方: target = Friend; break; case TargetUnit.相手: target = Opponent; break; case TargetUnit.死亡者: target = Friend.Where(x => x.IsDead()).ToList(); break; default: break; } switch (targetRange) { case TargetRange.単体: return(Randam(target)); case TargetRange.全体: return(target.Cast <BattleCharacter>().ToList()); default: break; } return(null); }
public int CountMechsByTargetRange(TargetRange targetRange, BattlePlayer callerPlayer) { int count = 0; switch (targetRange) { case TargetRange.Mechs: count = callerPlayer.BattleGroundManager.MechCount + callerPlayer.MyEnemyPlayer.BattleGroundManager.MechCount; break; case TargetRange.Heroes: count = callerPlayer.BattleGroundManager.HeroCount + callerPlayer.MyEnemyPlayer.BattleGroundManager.HeroCount; break; case TargetRange.Soldiers: count = callerPlayer.BattleGroundManager.SoldierCount + callerPlayer.MyEnemyPlayer.BattleGroundManager.SoldierCount; break; case TargetRange.SelfMechs: count = callerPlayer.BattleGroundManager.MechCount; break; case TargetRange.SelfHeroes: count = callerPlayer.BattleGroundManager.HeroCount; break; case TargetRange.SelfSoldiers: count = callerPlayer.BattleGroundManager.SoldierCount; break; case TargetRange.EnemyMechs: count = callerPlayer.MyEnemyPlayer.BattleGroundManager.MechCount; break; case TargetRange.EnemyHeroes: count = callerPlayer.MyEnemyPlayer.BattleGroundManager.HeroCount; break; case TargetRange.EnemySoldiers: count = callerPlayer.MyEnemyPlayer.BattleGroundManager.SoldierCount; break; } return(count); }
public static MechTypes GetMechTypeByTargetRange(TargetRange targetRange) { MechTypes mechType = MechTypes.None; if ((targetRange & TargetRange.Heroes) == targetRange) // 若是Heroes子集 { mechType = MechTypes.Hero; } if ((targetRange & TargetRange.Soldiers) == targetRange) // 若是Soldiers子集 { mechType = MechTypes.Soldier; } else { mechType = MechTypes.All; } return(mechType); }
public void DrawEditor() { targetType = (TargetType)EditorGUILayout.EnumPopup("Target Type", targetType); targetFilter = (TargetFilter)EditorGUILayout.EnumPopup("Target Filter", targetFilter); targetRange = (TargetRange)EditorGUILayout.EnumPopup("Target Range", targetRange); if (targetRange == TargetRange.Range) { range = EditorGUILayout.IntField("Range", range); } else { range = 1; EditorGUILayout.LabelField("Range value is 1 for melee spells"); } targetAOE = (TargetAOE)EditorGUILayout.EnumPopup("Target AOE", targetAOE); for (int i = 0; i < protoEvents.Count; i++) { protoEvents[i].DrawEditor(); } }
public override void MouseHoverComponent_OnHover1Begin(Vector3 mousePosition) { base.MouseHoverComponent_OnHover1Begin(mousePosition); if (DragManager.Instance.IsSummonPreview) { TargetRange targetRange = DragManager.Instance.SummonMechTargetRange; if ((ClientPlayer == RoundManager.Instance.EnemyClientPlayer && (targetRange == TargetRange.EnemyMechs || (targetRange == TargetRange.EnemySoldiers && CardInfo.MechInfo.IsSoldier) || targetRange == TargetRange.EnemyHeroes && !CardInfo.MechInfo.IsSoldier)) || ClientPlayer == RoundManager.Instance.SelfClientPlayer && ClientPlayer.BattlePlayer.BattleGroundManager.CurrentSummonPreviewMech != this && (targetRange == TargetRange.SelfMechs || (targetRange == TargetRange.SelfSoldiers && CardInfo.MechInfo.IsSoldier))) { IsBeHover = true; if (DragManager.Instance.CurrentArrow && DragManager.Instance.CurrentArrow is ArrowAiming) { ((ArrowAiming)DragManager.Instance.CurrentArrow).IsOnHover = true; //箭头动画 } } } }
static void Main(string[] args) { Console.WriteLine("Question 1"); int[] l1 = new int[] { 5, 6, 6, 9, 9, 12 }; int target = 9; int[] r = TargetRange.TargetRangeSoln(l1, target); // Write your code to print range r here Console.WriteLine("[" + r[0] + "," + r[1] + "]"); Console.WriteLine("Question 2"); String s = "University of South Florida"; String rs = StringReverse.StringReverseSoln(s); Console.WriteLine(rs); Console.WriteLine("Question 3"); int[] l2 = new int[] { 2, 2, 3, 5, 6 }; int sum = MinimumSum.MinimumSumSoln(l2); Console.WriteLine(sum); Console.WriteLine("Question 4"); string s2 = "Dell"; string sortedString = FreqSort.FreqSortSoln(s2); Console.WriteLine(sortedString); Console.WriteLine("Question 5-Part 1"); int[] nums1 = { 1, 1, 2, 2, 2 }; int[] nums2 = { 2, 2 }; //int[] nums1 = { 3, 6, 6, 3}; //int[] nums2 = { 6, 3, 6, 7, 3 }; int[] intersect1 = Intersect.Intersect1(nums1, nums2); Console.WriteLine("Part 1- Intersection of two arrays is: "); Intersect.DisplayArray(intersect1); Console.WriteLine("\n"); Console.WriteLine("Question 5-Part 2"); int[] intersect2 = Intersect.Intersect2(nums1, nums2); Console.WriteLine("Part 2- Intersection of two arrays is: "); Intersect.DisplayArray(intersect2); Console.WriteLine("\n"); Console.WriteLine("Question 6"); char[] arr = new char[] { 'a', 'g', 'h', 'a' }; int k = 3; Console.WriteLine(ContainsDuplicate.ContainsDuplicateSoln(arr, k)); Console.WriteLine("Question 7"); int rodLength = 4; int priceProduct = GoldRod.GoldRodSoln(rodLength); Console.WriteLine(priceProduct); Console.WriteLine("Question 8"); string[] userDict = new string[] { "rocky", "usf", "hello", "apple" }; string keyword = "hhllo"; Console.WriteLine(DictSearch.DictSearchSoln(userDict, keyword)); Console.WriteLine("Question 9"); SolvePuzzle.SolvePuzzleSoln(); }
public void SideEffect_ILifeAction(Action <ILife> action, BattlePlayer callerPlayer, int count, TargetRange targetRange, TargetSelect targetSelect, List <int> targetClientIds, List <int> targetMechIds) { List <BattlePlayer> mech_players = GetMechsPlayerByTargetRange(targetRange, callerPlayer); List <BattlePlayer> ship_players = GetShipsPlayerByTargetRange(targetRange, callerPlayer); switch (targetSelect) { case TargetSelect.All: { foreach (BattlePlayer player in mech_players) { List <ModuleMech> remove = new List <ModuleMech>(); foreach (ModuleMech mech in player.BattleGroundManager.Mechs) { remove.Add(mech); } foreach (ModuleMech mech in remove) { action(mech); } } foreach (BattlePlayer player in ship_players) { action(player); } break; } case TargetSelect.Multiple: { foreach (int clientId in targetClientIds) { action(GetPlayerByClientId(clientId)); } foreach (int mechId in targetMechIds) { action(GetMechOnBattleGround(mechId)); } break; } case TargetSelect.MultipleRandom: { List <ILife> lives = GetAllLifeInBattleGround(mech_players, ship_players); List <ILife> selectedLives = Utils.GetRandomFromList(lives, count); foreach (ILife life in selectedLives) { action(life); } break; } case TargetSelect.Single: { if (targetRange == TargetRange.SelfShip || targetRange == TargetRange.EnemyShip) { if (ship_players.Count > 0) { action(ship_players[0]); } } else { foreach (int targetClientId in targetClientIds) { action(GetPlayerByClientId(targetClientId)); break; } foreach (int targetMechId in targetMechIds) { if (targetMechId != Const.TARGET_MECH_SELECT_NONE) { action(GetMechOnBattleGround(targetMechId)); break; } } } break; } case TargetSelect.SingleRandom: { List <ILife> lives = GetAllLifeInBattleGround(mech_players, ship_players); List <ILife> selectedLives = Utils.GetRandomFromList(lives, 1); foreach (ILife life in selectedLives) { action(life); break; } break; } } }
public List <BattleCharacter> EnemyToFilter(BattleCharacter owner, TargetUnit targetUnit, TargetRange targetRange) { List <PlayerCharacter> playerCharacters = BattleController.instance.AlivePlayerCharacters; List <EnemyCharacter> enemyCharacters = BattleController.instance.AliveEnemyCharacters; IReadOnlyCollection <BattleCharacter> target = new List <BattleCharacter>(); switch (targetUnit) { case TargetUnit.自分: return(new List <BattleCharacter>() { owner }); case TargetUnit.味方: target = enemyCharacters; break; case TargetUnit.相手: target = playerCharacters; break; case TargetUnit.死亡者: target = enemyCharacters.Where(x => x.IsDead()).ToList(); break; default: break; } switch (targetRange) { case TargetRange.単体: return(Randam(target)); case TargetRange.全体: return(target.Cast <BattleCharacter>().ToList()); default: break; } return(null); }
public void SideEffect_MechAction(Action <ModuleMech> action, BattlePlayer callerPlayer, int count, List <int> mechIds, TargetRange targetRange, TargetSelect targetSelect, int exceptMechId = -1) { List <BattlePlayer> battlePlayers = GetMechsPlayerByTargetRange(targetRange, callerPlayer); MechTypes mechType = GetMechTypeByTargetRange(targetRange); switch (targetSelect) { case TargetSelect.All: { foreach (ModuleMech mech in GetMechsByType(battlePlayers, mechType).ToArray()) { action(mech); } break; } case TargetSelect.Multiple: { foreach (int mechId in mechIds) { action(GetMech(mechId)); } break; } case TargetSelect.MultipleRandom: { foreach (ModuleMech mech in Utils.GetRandomFromList(GetMechsByType(battlePlayers, mechType), count)) { action(mech); } break; } case TargetSelect.Single: { if (mechIds.Count > 0) { action(GetMech(mechIds[0])); } break; } case TargetSelect.SingleRandom: { action(GetRandomMech(battlePlayers, mechType, exceptMechId)); break; } } }
static void Main(string[] args) { Console.WriteLine("Question 1"); int[] l1 = new int[] { 5, 6, 6, 9, 9, 12 }; int target = 9; int[] r = TargetRange.TargetRangeSoln(l1, target); // Write your code to print range r here Console.WriteLine("[" + r[0] + "," + r[1] + "]"); Console.WriteLine("Question 2"); String s = "University of South Florida"; String rs = StringReverse.StringReverseSoln(s); Console.WriteLine(rs); Console.WriteLine("Question 3"); int[] l2 = new int[] { 2, 2, 2, 4, 5, 7 }; int sum = MinimumSum.MinimumSumSoln(l2); Console.WriteLine("The Sum is: " + sum); Console.WriteLine("Question 4"); string s2 = "Dell"; string sortedString = FreqSort.FreqSortSoln(s2); Console.WriteLine(sortedString); Console.WriteLine("Question 5-Part 1"); int[] nums1 = { 1, 1, 2, 2, 2 }; int[] nums2 = { 2, 2 }; try { int[] intersect1 = Intersect.Intersect1(nums1, nums2); Console.WriteLine("Part 1- Intersection of two arrays is: "); Intersect.DisplayArray(intersect1); Console.WriteLine("\n"); Console.WriteLine("Question 5-Part 2"); int[] intersect2 = Intersect.Intersect2(nums1, nums2); Console.WriteLine("Part 2- Intersection of two arrays is: "); Intersect.DisplayArray(intersect2); Console.WriteLine("\n"); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Question 6"); char[] arr = new char[] { 'a', 'g', 'h', 'a' }; int k = 3; Console.WriteLine(ContainsDuplicate.ContainsDuplicateSoln(arr, k)); Console.WriteLine("Question 7"); int rodLength = 15; int priceProduct = GoldRod.GoldRodSoln(rodLength); Console.WriteLine(priceProduct); Console.WriteLine("Question 8"); string[] userDict = new string[] { "rocky", "usf", "hello", "apple" }; string keyword = "hhllo"; try { if (userDict.Length > 0) { Console.WriteLine(DictSearch.DictSearchSoln(userDict, keyword)); } else { Console.WriteLine("Enter an array with at least one element."); } } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Question 9"); Console.WriteLine(" "); try { SolvePuzzle.SolvePuzzleSoln(); }catch (Exception e) { Debug.WriteLine(e.StackTrace); Console.WriteLine("Error computing the solution."); } }
public TargetType(TargetUnit unit, TargetRange range) { this.targetUnit = unit; this.targetRange = range; }
public void ShowTargetPreviewArrow(TargetRange targetRange) //当某咒术被拖出进攻时,显示可选目标标记箭头 { switch (targetRange) { case TargetRange.AllLife: foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Mechs) { mech.ShowTargetPreviewArrow(); } foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Mechs) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.Mechs: foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Mechs) { mech.ShowTargetPreviewArrow(); } foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Mechs) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.SelfMechs: foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Mechs) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.EnemyMechs: foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Mechs) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.Heroes: foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Heros) { mech.ShowTargetPreviewArrow(); } foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Heros) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.SelfHeroes: foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Heros) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.EnemyHeroes: foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Heros) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.Soldiers: foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Soldiers) { mech.ShowTargetPreviewArrow(); } foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Soldiers) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.SelfSoldiers: foreach (ModuleMech mech in SelfClientPlayer.BattlePlayer.BattleGroundManager.Soldiers) { mech.ShowTargetPreviewArrow(); } break; case TargetRange.EnemySoldiers: foreach (ModuleMech mech in EnemyClientPlayer.BattlePlayer.BattleGroundManager.Soldiers) { mech.ShowTargetPreviewArrow(); } break; } }
/// <summary> /// Checks if current angle is within supplied range /// </summary> /// <param name="TargetHit"></param> /// <param name="priorAnge"></param> /// <param name="currentAngle"></param> /// <param name="range"></param> private void CheckTargetHit(Action <float> TargetHit, float priorAnge, float currentAngle, TargetRange range) { float delta = Mathf.Abs(priorAnge - currentAngle); if (delta >= ChangeThreshold) { if (range.WithinRange(currentAngle) && TargetHit != null) { TargetHit(currentAngle); } } }
private int GetValidTargetsCount(IEnumerable <Pawn> targets) { return(targets.Count(target => TargetRange.Contains(target.Position.DistanceTo(User.Position)) && TargetMatchesTargetType(target) && AdditionalFilters.All(filter => filter.TargetMeetsFilter(target)))); }
public void DrawEditor() { targetType = (TargetType)EditorGUILayout.EnumPopup("Target Type", targetType); targetFilter = (TargetFilter)EditorGUILayout.EnumPopup("Target Filter", targetFilter); targetRange = (TargetRange)EditorGUILayout.EnumPopup("Target Range", targetRange); if (targetRange == TargetRange.Range) { range = EditorGUILayout.IntField("Range", range); } else { range = 1; EditorGUILayout.LabelField("Range value is 1 for melee spells"); } targetAOE = (TargetAOE)EditorGUILayout.EnumPopup("Target AOE", targetAOE); for (int i = 0; i < protoEvents.Count; i++) { protoEvents[i].DrawEditor(); } }