public static Manoeuvre ArcPattern(int nbPoint, int nbTurn, float baseDelay, Vector3 initialPosition, Vector3 direction, int wide) { int i = 0; float x, z, angle, realAngle, ratio = 360 / (float)wide, angleOrigine = Mathf.Atan2(direction.x - initialPosition.x, direction.z - initialPosition.z) - (((float)wide / 2) * (Mathf.PI / 180)); string spiralManoeuvreString = ""; angle = (360 / ((float)nbPoint * ratio)) * (Mathf.PI / 180); for (; nbTurn > 0; --nbTurn) { for (i = 0; i <= nbPoint; ++i) { realAngle = angleOrigine + (float)i * angle; x = initialPosition.x + 100 * Mathf.Sin(realAngle); z = initialPosition.z + 100 * Mathf.Cos(realAngle); spiralManoeuvreString += "TrajectoryLine#(" + initialPosition.x + ",0," + initialPosition.z + ")(" + x + ",0," + z + ")|"; } spiralManoeuvreString += spiralManoeuvreString.Remove(spiralManoeuvreString.Length - 1) + "=" + baseDelay + ";"; } spiralManoeuvreString = spiralManoeuvreString.Remove(spiralManoeuvreString.Length - 1); return(Manoeuvre.Create(spiralManoeuvreString)); }
void Start() { int i; List <string> patternsString; gameController = GetComponent <GameController>(); patternsString = LoadResources.LoadTxtAsListString("PatternLore"); manoeuvresLore = new List <Manoeuvre> (); for (i = 0; i < patternsString.Count; ++i) { manoeuvresLore.Add(Manoeuvre.Create(patternsString[i])); } patternsString = LoadResources.LoadTxtAsListString("PatternFoe"); manoeuvresEnemie = new List <Manoeuvre> (); for (i = 0; i < patternsString.Count; ++i) { manoeuvresEnemie.Add(Manoeuvre.Create(patternsString[i])); } patternsString = LoadResources.LoadTxtAsListString("PatternSpecialForce"); manoeuvresSpecialForce = new List <Manoeuvre> (); for (i = 0; i < patternsString.Count; ++i) { manoeuvresSpecialForce.Add(Manoeuvre.Create(patternsString[i])); } }
public static Manoeuvre Create(string manoeuvreString) { Manoeuvre retValue = new Manoeuvre(); string[] slots = manoeuvreString.Split(';'); int i = slots.Length - 1; retValue.timeToSpend = 0f; retValue.manoeuvre = new Formation[slots.Length]; for (; i >= 0; --i) { retValue.manoeuvre[i] = new Formation().Create(slots[i]); retValue.timeToSpend += retValue.manoeuvre[i].timer; } return retValue; }
IEnumerable <Player> Get(string where, object?arg, object?arg2 = null) { Player? player = null; Manoeuvre?manoeuvre = null; foreach (var(name, active, alive, human, money, password, debt, province, action, count, type, game_id, order) in db.Query <string, bool, bool, bool, int, string, int?, int?, string?, int?, int?, int, int>(@" SELECT Player.Name, Player.Active, Player.Alive, Player.Human, Player.Money, Player.Password, Action.Debt, Action.Province, Action.Type, ActionRegiment.Count, ActionRegiment.Type, Player.GameId, Player.""Order"" FROM Player LEFT JOIN Action ON Action.GameId=Player.GameId AND Action.Player=Player.""Order"" LEFT JOIN ActionRegiment ON ActionRegiment.ActionId=Action.Id WHERE " + where + @" ORDER BY Player.""Order"" " , arg, arg2)) { if (player is not null && player.Order != order) { yield return(manoeuvre is null ? player : player.Add(manoeuvre)); player = null; manoeuvre = null; } if (player is null) { player = new Player(new PlayerIdentity(name !, order, game_id, human), money, alive, ImmutableList <IAction> .Empty, settings, Password.FromHash(password !), active); } player = action == "Loan" && debt is int Debt?player.Add(new Loan(Debt)) : player; if (action == "Manoeuvre" && province is int Province && type is int Type && count is int Count) { if (manoeuvre is not null && manoeuvre.Province != province) { player = player.Add(manoeuvre); manoeuvre = null; } if (manoeuvre is null) { manoeuvre = new Manoeuvre(Province, new Soldiers()); } manoeuvre = new Manoeuvre(Province, manoeuvre.Soldiers.Add(new Soldiers(settings.SoldierTypes[Type], Count))); } } if (player is not null) { yield return(player); } }
public static Manoeuvre Create(string manoeuvreString) { Manoeuvre retValue = new Manoeuvre(); string[] slots = manoeuvreString.Split(';'); int i = slots.Length - 1; retValue.timeToSpend = 0f; retValue.manoeuvre = new Formation[slots.Length]; for (; i >= 0; --i) { retValue.manoeuvre[i] = new Formation().Create(slots[i]); retValue.timeToSpend += retValue.manoeuvre[i].timer; } return(retValue); }
public static Manoeuvre SpiralPattern(int nbPoint, int nbTurn, float baseDelay, Vector3 initialPosition) { int i = 0; float x, z, angle, realAngle; string spiralManoeuvreString = ""; angle = (360 / (float)nbPoint) * (Mathf.PI / 180); for (; nbTurn > 0; --nbTurn) { for (i = 0; i < nbPoint; ++i) { realAngle = (float)i * angle; x = initialPosition.x + 100 * Mathf.Sin(realAngle); z = initialPosition.z + 100 * Mathf.Cos(realAngle); spiralManoeuvreString += "TrajectoryLine#(" + initialPosition.x + ",0," + initialPosition.z + ")(" + x + ",0," + z + ")=" + baseDelay + ";"; } } spiralManoeuvreString = spiralManoeuvreString.Remove(spiralManoeuvreString.Length - 1); return(Manoeuvre.Create(spiralManoeuvreString)); }