Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
    // 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);
    }
Beispiel #3
0
 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);
             }
         }
     }
 }
Beispiel #4
0
 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);
    }
Beispiel #6
0
    ///////////////////////////////////////////////////////////////////////////////////
    // 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);
    }
Beispiel #7
0
 // 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!");
 }
Beispiel #8
0
    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;
    }
Beispiel #10
0
    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);
    }
Beispiel #12
0
 void Awake()
 {
     StartPos = this.transform.position;
     eSquad   = this.transform.root.GetComponent <EnemySquad>();
 }