/// <summary> /// 根据wayPointType初始化路径点 /// </summary> public WayPointsUnit(WayPointEnum WayPointType, UnitFaction unitFaction) { switch (WayPointType) { case WayPointEnum.UpRoad: wayPoints = WayPointsManager.Instance.upRoadPoints; break; case WayPointEnum.MiddleRoad: wayPoints = WayPointsManager.Instance.middleRoadPoints; break; case WayPointEnum.DownRoad: wayPoints = WayPointsManager.Instance.downRoadPoints; break; } this.unitFaction = unitFaction; switch (unitFaction) { case UnitFaction.Blue: nowIndex = wayPoints.Count - 1; break; case UnitFaction.Red: nowIndex = 0; break; } }
// Helpers private VMFact FromUnitFact(UnitFaction f) { if (f != UnitFaction.USA) { return((VMFact)((int)f)); } return(VMFact.USA); }
public void CheckUnitFaction(UnitFaction unitFaction) { for (int i = 0; i < unitsInventory.Items.Count; i++) { if (unitFaction.CheckClass(unitsInventory.Items[i].Item.UnitClass) == true) { InstantiateUnitCardPrefab(i); } } }
public int getNumUnitsByFlag(string flag, UnitFaction targetfaction) { int returnNum = 0; for (int i = 0; i < unitsInGroupScripts.Count; i++) { if (unitsInGroupScripts[i] != null) { if (unitsInGroupScripts[i].gameObject.tag.Contains(flag) && unitsInGroupScripts[i].flagScript.Faction == targetfaction) { returnNum++; } } } return(returnNum); }
public GameUnit(Texture2D texture_l, Texture2D texture_r, UnitType type, UnitFaction faction, int level, bool immune) { Texture_L = texture_l; Texture_R = texture_r; Type = type; Faction = faction; Level = level; Immune = immune; Target = new Vector2(-1, -1); NextMove = new Vector2(-1, -1); InitStats(); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { // We only care about converting from UnitFaction if (value is UnitFaction) { UnitFaction tempFact = (UnitFaction)value; if (tempFact != UnitFaction.USA) { return((VMFact)((int)tempFact)); } return(VMFact.USA); } return(base.ConvertFrom(context, culture, value)); }
protected Unit ScanClosest(UnitFaction factionMask, float maxRange, bool includeDeadUnits = false) { Unit[] allUnits = FindObjectsOfType <Unit>(); float closestUnitDistance = -1; Unit closestUnit = null; for (int i = 0; i < allUnits.Length; i++) { Unit unit = allUnits[i]; if (unit == this) { continue; } if (unit.dead && !includeDeadUnits) { continue; } bool maskContainsUnitFaction = (unit.faction & factionMask) == unit.faction; if (!maskContainsUnitFaction) { continue; } float distance = DistanceTo(unit); if (distance > maxRange) { continue; } if (closestUnitDistance < 0) { closestUnitDistance = distance; closestUnit = unit; } else if (distance < closestUnitDistance) { closestUnit = unit; } } return(closestUnit); }
public int getNumUnitsInRangeByFlag(string flag, UnitFaction targetfaction, bool includeOwn) { int returnNum = 0; for (int i = 0; i < unitsInGroupRange.Count; i++) { if (unitsInGroupRange[i] != null) { if (unitsInGroupRange[i].gameObject.tag.Contains(flag) && unitsInGroupRange[i].GetComponent <FlagScript>().Faction == targetfaction) { returnNum++; } } } if (includeOwn) { returnNum += getNumUnitsByFlag(flag, targetfaction); } return(returnNum); }
protected Unit[] Scan(UnitFaction factionMask, float maxRange, bool includeDeadUnits = false) { Unit[] allUnits = FindObjectsOfType <Unit>(); List <Unit> foundUnits = new List <Unit>(allUnits.Length); for (int i = 0; i < allUnits.Length; i++) { Unit unit = allUnits[i]; if (unit == this) { continue; } if (unit.dead && !includeDeadUnits) { continue; } bool maskContainsUnitFaction = (unit.faction & factionMask) == unit.faction; if (!maskContainsUnitFaction) { continue; } float distance = DistanceTo(unit); if (distance > maxRange) { continue; } foundUnits.Add(unit); } return(foundUnits.ToArray()); }
public int getNumUnitsInRangeByFlag(string flag, UnitFaction targetfaction, bool includeOwn) { int returnNum = 0; for(int i =0; i < unitsInGroupRange.Count; i++) { if(unitsInGroupRange[i] != null) { if(unitsInGroupRange[i].gameObject.tag.Contains(flag) && unitsInGroupRange[i].GetComponent<FlagScript>().Faction == targetfaction) { returnNum++; } } } if(includeOwn) { returnNum += getNumUnitsByFlag(flag, targetfaction); } return returnNum; }
public int getNumUnitsByFlag(string flag, UnitFaction targetfaction) { int returnNum = 0; for(int i =0; i < unitsInGroupScripts.Count; i++) { if(unitsInGroupScripts[i] != null) { if(unitsInGroupScripts[i].gameObject.tag.Contains(flag) && unitsInGroupScripts[i].flagScript.Faction == targetfaction) { returnNum++; } } } return returnNum; }
public Boolean Has(UnitFaction faction) => this.Has(u => u.Faction == faction);
// Returns an instance of a unit of the given type and faction public GameUnit createUnit(UnitType type, UnitFaction faction, int level, Vector2 pos, bool immune) { GameUnit enemy; switch (type) { case UnitType.TANK: enemy = new GameUnit(faction == UnitFaction.ALLY? textures[ALLY_TANK_l] : textures[ENEMY_TANK_l], faction == UnitFaction.ALLY? textures[ALLY_TANK_r] : textures[ENEMY_TANK_r], type, faction, level, immune); break; case UnitType.RANGED: enemy = new GameUnit(faction == UnitFaction.ALLY ? textures[ALLY_RANGED] : textures[ENEMY_RANGED], faction == UnitFaction.ALLY ? textures[ALLY_TANK_r] : textures[ENEMY_TANK_r], type, faction, level, immune); break; case UnitType.FLYING: enemy = new GameUnit(faction == UnitFaction.ALLY ? textures[ALLY_FLYING] : textures[ENEMY_FLYING], faction == UnitFaction.ALLY ? textures[ALLY_TANK_r] : textures[ENEMY_TANK_r], type, faction, level, immune); break; case UnitType.BOSS: enemy = new GameUnit(textures[PLASMID], textures[PLASMID], type, faction, level, immune); break; default: enemy = null; break; } if (enemy != null) { enemy.Position = pos; } return enemy; }