void DefenceStrat() { if (defendingUnits.Count > 10) { if (attackingSquads.Count == 0) { EnemySquad squad = new EnemySquad(); squad.Start(); squad.i_maxUnits = playerInfo.i_playerLevel; attackingSquads.Add(squad); } GameObject unit = defendingUnits[Random.Range(0, defendingUnits.Count)]; if (attackingSquads[attackingSquads.Count - 1].unitList.Count < attackingSquads[attackingSquads.Count - 1].i_maxUnits) { attackingSquads[attackingSquads.Count - 1].unitList.Add(unit); } else { EnemySquad squad = new EnemySquad(); squad.Start(); squad.i_maxUnits = playerInfo.i_playerLevel; attackingSquads.Add(squad); attackingSquads[attackingSquads.Count - 1].unitList.Add(unit); } defendingUnits.Remove(unit); } }
// Format: <Spawn Time> <Size> <Preset> <Action Type> <Waypoint>,<Waypoint>,... // "2.5 Large Default AttackMove ArcherTower,SwordsmanTower" // "1 Individual Elite ForcedMove AbilityTower" private void AddSquad(string input) { float spawnTime; Vector3 spawnLocation; char[] delimiters = { ' ', ',' }; string[] param = input.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); spawnTime = float.Parse(param [0]); SquadSize size = EnumUtil.FromString <SquadSize> (param [1]); Waypoint wp = EnumUtil.FromString <Waypoint> (param [4]); spawnLocation = Waypoints[wp]; SquadLeaderType preset = EnumUtil.FromString <SquadLeaderType> (param [2]); //SquadBehavior behavior = EnumHelper.FromString<SquadBehavior> (param [3]); EnemySquad es = new EnemySquad((int)size, spawnTime, spawnLocation, UnitType.Peasant, preset); for (int i = 5; i < param.Length; ++i) { wp = EnumUtil.FromString <Waypoint> (param [i]); es.AddWaypoint(Waypoints [wp]); } es.AddWaypoint(Waypoints [Waypoint.King]); units.Add(es); }
void PincerStrat() { if (playerInfo.i_playerLevel >= i_SeriousLevel && defendingUnits.Count > 6) { Debug.Log("Strats activated"); Transform Waypoints = transform.GetChild(0); for (int i = 0; i < 3; ++i) { EnemySquad squad = new EnemySquad(); squad.Start(); squad.i_maxUnits = playerInfo.i_playerLevel; attackingSquads.Add(squad); foreach (Transform point in Waypoints.GetChild(i)) { squad.pathToFollow.Add(point.position); } List <GameObject> unitsToRemove = new List <GameObject>(); for (int j = 0; j < defendingUnits.Count / 3; ++j) { attackingSquads[attackingSquads.Count - 1].unitList.Add(defendingUnits[j]); unitsToRemove.Add(defendingUnits[j]); } foreach (GameObject unit in unitsToRemove) { defendingUnits.Remove(unit); } } } }
public static void Reset() { playerSquad = null; enemySquad = null; enemy = null; actions.Clear(); waitingForEnemies = true; }
/////////////////////////////////////////////////////////////////////////////////// // Public Methods and Variables /////////////////////////////////////////////////////////////////////////////////// public void AddSquad(int size, Vector3 location, UnitType unitType, Vector3? destination = null) { EnemySquad es = new EnemySquad(size, 0, location, unitType); if (destination != null) es.AddWaypoint(destination.Value); es.AddWaypoint(Waypoints[Waypoint.King]); units.Add(es); }
/////////////////////////////////////////////////////////////////////////////////// // Public Methods and Variables /////////////////////////////////////////////////////////////////////////////////// public void AddSquad(int size, Vector3 location, UnitType unitType, Vector3?destination = null) { EnemySquad es = new EnemySquad(size, 0, location, unitType); if (destination != null) { es.AddWaypoint(destination.Value); } es.AddWaypoint(Waypoints[Waypoint.King]); units.Add(es); }
// Use this for initialization void Start() { GameState.Set(GameState.State.IN_BATTLE); this.actionsLog = this.actionsLogGameObject.GetComponent <ActionsLog>(); this.heroes = this.actionsPanel.GetComponent <PlayerSquad>(); this.enemies = this.actionsPanel.GetComponent <EnemySquad>(); this.enemy = BattleQueue.enemy; foreach (Character h in BattleQueue.playerCharacters) { AddHero(Instantiate(h)); } foreach (Character e in BattleQueue.enemyCharacters) { AddEnemy(Instantiate(e)); } BattleQueue.playerSquad = this.heroes; BattleQueue.enemySquad = this.enemies; LogAction("Battle started!"); }
public void StartMission() { List <IWarship> enemySquad = new List <IWarship>(); for (int i = 0; i < _yellowType; i++) { enemySquad.Add(_types.ShipTypes[0]); } for (int i = 0; i < _blueType; i++) { enemySquad.Add(_types.ShipTypes[1]); } for (int i = 0; i < _greenType; i++) { enemySquad.Add(_types.ShipTypes[2]); } CrossLevelInfo.SetReward(_metalResourses, _yellowGemResourses, _blueGemResourses, _greenGemResourses); EnemySquad.GatherASquad(enemySquad); SceneManager.LoadScene("Battle"); }
public virtual void Init() { _mainCanvas = PlayerCanvas.Instance.gameObject; _mainCanvas.GetComponent <PlayerCanvas>().SetGameReset += MyReset; _player = KyleplayerMove.Instance; _berserkRef = FindObjectOfType <BerzerkMode>(); _winRef = FindObjectOfType <WinCondition>(); _enemyAgent = GetComponent <NavMeshAgent>(); _mySquad = GetComponentInParent <EnemySquad>(); _pauseRef = PauseMenu.Instance; _patrolRoute = new List <Vector3>(); for (int point = 0; point < _patrolPoints.Count; point++) { if (_patrolPoints[point]) { _patrolRoute.Add(_patrolPoints[point].gameObject.transform.position); } } _startPoint = gameObject.transform.position; _patrolRoute.Add(_startPoint); _currPath = 0; _sword = transform.GetChild(0).gameObject; _swordPos = _sword.transform.localPosition; _sword.SetActive(false); _bloodParticle = transform.GetChild(1).gameObject; _mainCam = PlayerCamera.Instance.gameObject.GetComponent <Camera>(); GameObject _healthBar = Instantiate <GameObject>(_healthBarPrefab, _mainCanvas.transform); _actualHealthBar = _healthBar.GetComponent <Image>(); _actualHealthBar.gameObject.SetActive(false); _currEnemyHealth = _enemyHealth; _enemyAgent.SetDestination(_patrolRoute[_currPath]); _myCurrState = AIState.NOTALERTED; _init = true; }
private void Init() { showInfoPanel = true; gameObject.SetActive(false); ToggleInfoPanels(); PlayModeOn = true; PlayerGroup.GatherAGroup(_teamForm.PlayerSquad); _playerSquad = _teamForm.PlayerSquad; //=================== DEBUG =====================// EnemySquad.GatherASquad(DebugEnemySquadCreated()); //===============================================// int i = 0; foreach (var unit in _playerSquad) { AvailableShips.SubShip(1, unit.WeaponType); i++; var freeTile = GetFreeTile().gameObject; if (freeTile == null) { return; //not enough space } var ship = Instantiate(unit.Ship, _playerSquadParent.transform); float halfShipHeight = ship.GetComponent <Collider>().bounds.extents.y; float halfTileHeight = freeTile.GetComponent <Collider>().bounds.extents.y; Vector3 freeCell = freeTile.transform.position; freeCell.y += halfTileHeight + halfShipHeight; ship.name = unit.Name + " Player " + i; ship.tag = "PlayerUnit"; ship.transform.position = freeCell; ship.AddComponent <PlayerMove>(); ship.AddComponent <CharInfo>(); ship.GetComponent <CharInfo>().Init(unit); _playerSquadGO.Add(ship.GetComponent <PlayerMove>()); AddShipInfoPonel(ship, true); ship.GetComponent <PlayerMove>().PreInit(); } TurnManager.AddTeam(_playerSquadGO); i = 0; foreach (var unit in EnemySquad.Squad) { i++; var freeTile = GetFreeTileForEnemy().gameObject; if (freeTile == null) { return; //not enough space } var ship = Instantiate(unit.Ship, _enemySquadParent.transform); float halfShipHeight = ship.GetComponent <Collider>().bounds.extents.y; float halfTileHeight = freeTile.GetComponent <Collider>().bounds.extents.y; Vector3 freeCell = freeTile.transform.position; freeCell.y += halfTileHeight + halfShipHeight; ship.name = unit.Name + " Enemy " + i; ship.tag = "EnemyUnit"; ship.transform.position = freeCell; ship.AddComponent <NPCmove>(); ship.AddComponent <CharInfo>(); ship.GetComponent <CharInfo>().Init(unit); _enemySquadGO.Add(ship.GetComponent <NPCmove>()); AddShipInfoPonel(ship, false); ship.GetComponent <NPCmove>().PreInit(); } TurnManager.AddTeam(_enemySquadGO); }
// Format: <Spawn Time> <Size> <Preset> <Action Type> <Waypoint>,<Waypoint>,... // "2.5 Large Default AttackMove ArcherTower,SwordsmanTower" // "1 Individual Elite ForcedMove AbilityTower" private void AddSquad(string input) { float spawnTime; Vector3 spawnLocation; char[] delimiters = { ' ', ',' }; string[] param = input.Split (delimiters, StringSplitOptions.RemoveEmptyEntries); spawnTime = float.Parse (param [0]); SquadSize size = EnumUtil.FromString<SquadSize> (param [1]); Waypoint wp = EnumUtil.FromString<Waypoint> (param [4]); spawnLocation = Waypoints[wp]; SquadLeaderType preset = EnumUtil.FromString<SquadLeaderType> (param [2]); //SquadBehavior behavior = EnumHelper.FromString<SquadBehavior> (param [3]); EnemySquad es = new EnemySquad ((int)size, spawnTime, spawnLocation, UnitType.Peasant, preset); for (int i = 5; i < param.Length; ++i) { wp = EnumUtil.FromString<Waypoint> (param [i]); es.AddWaypoint (Waypoints [wp]); } es.AddWaypoint (Waypoints [Waypoint.King]); units.Add (es); }
void Awake() { StartPos = this.transform.position; eSquad = this.transform.root.GetComponent <EnemySquad>(); }