Example #1
0
    private bool block = false;//avoid taking damage in triggerevent

    void Awake()
    {
        updateReferences();

        cooldowns = new List <Coroutine>();

        RotationPattern rotationPattern = new RotationPattern(this);
        CyclicPattern   cyclicPattern   = new CyclicPattern(this);
        WavePattern     wavePattern     = new WavePattern(this);

        patternsAvailable.Add("RotationPattern", rotationPattern);
        patternsAvailable.Add("CyclicPattern", cyclicPattern);
        patternsAvailable.Add("WavePattern", wavePattern);

        EventManager.StartListening("OnSurvivalPhase", goVulnerable);
        EventManager.StartListening("OnCounterPhase", goInvicible);

        //Pause between each phase
        EventManager.StartListening("OnSurvivalPhase", onChangingPhase);
        EventManager.StartListening("OnCounterPhase", onChangingPhase);
        EventManager.StartListening("OnAdaptationPhase", onChangingPhase);

        cc = GetComponent <CircleCollider2D>();

        //coroutine = SelectingPaterns();

        weakPoint = transform.Find("WeakPoint");
    }
Example #2
0
        public WavePattern NextWave()
        {
            WavePattern pattern = index == waves.Length ? null : waves[index++];

            pattern?.Init();
            return(pattern);
        }
Example #3
0
    // Next wave random generation
    void GenerateNextWave()
    {
        // Nueva oleada
        WavePattern nextWave = (WavePattern)Random.Range(0, numWavePatters);

        switch (nextWave)
        {
        case WavePattern.Three_Straight:
            GenerateWaveThreeEnemies(MovementType.Straight, AttackType.Shoot);
            break;

        case WavePattern.Three_Sin:
            GenerateWaveThreeEnemies(MovementType.Sin, AttackType.NoAttack);
            break;

        case WavePattern.Three_Sin_Line:
            GenerateWaveThreeEnemies(MovementType.Sin, AttackType.Shoot, true);
            break;

        case WavePattern.Cone:
            GenerateWaveCone(MovementType.Straight, AttackType.NoAttack);
            break;

        case WavePattern.Stairs_Left:
            GenerateWaveStairs(MovementType.Straight, AttackType.NoAttack, true);
            break;

        case WavePattern.Stairs_Right:
            GenerateWaveStairs(MovementType.Straight, AttackType.NoAttack, false);
            break;

        case WavePattern.Hunters_Two:
            GenerateWaveTwoHunters();
            break;

        case WavePattern.Hunters_Three:
            GenerateWaveThreeHunters();
            break;

        case WavePattern.Two_Sides:
            GenerateWaveTwoSides(MovementType.Straight, AttackType.Shoot);
            break;

        case WavePattern.Five_Mix:
            GenerateWaveFiveMix();
            break;

        default:
            break;
        }

        // NĂºmero de oleadas entre jefe y jefe
        if (++waves >= numWavesBetweenBosses)
        {
            bossStage = true;
            waves     = 0;
            SpawnBoss();
        }
    }
Example #4
0
        public override void CreateInGame()
        {
            if (PatternSource.get().Equals(""))
            {
                MyPattern = new WavePattern(CardCount.get());
            }
            else
            {
                MyPattern = new WavePattern(CardCount.get(), PatternSource.get());
            }

            base.CreateInGame();
        }
Example #5
0
    public void LoadNextWave()
    {
        pattern = waveEnumerator.NextWave();

        if (pattern == null)
        {
            finishUI?.SetActive(true);
            return;
        }

        for (int i = 0; i < pattern.enemies.Count; i++)
        {
            Spawn(i);
        }
    }
Example #6
0
    IEnumerator StartObstacleSpawn(WavePattern wavePattern)
    {
        for (int i = 0; i < wavePattern.amountOfObstacles; i++)
        {
            var lanePosition = wavePattern.pattern[i];
            var obstacleType = wavePattern.obstacle[i];
            if (!isGameOver)
            {
                GetObstacleFromPool(lanePosition, obstacleType);
            }
            yield return(new WaitForSeconds(DELAY_FOR_NEXT_OBSTACLE));
        }

        StartCoroutine(DelayForNextWave());
    }
Example #7
0
    public void init(FixedEntity spawner, Vector2 pos, WavePattern pattern)
    {
        this._simpleTarget    = spawner;
        this._currentPosition = pos;
        this.updatePosition(this._currentPosition);
        this._faction = 2;

        this._maxSpeed         = 2.0f;
        this._maxSteeringForce = 2.0f;

        _animatorEntity = GetComponent <Animator>();

        sizeRadius          = 2.0f;
        timeBeforeChangePos = Random.Range(3.0f, 6.0f);

        wavePattern = pattern;
    }
Example #8
0
    void Awake()
    {
        updateReferences();

        cooldowns = new List <Coroutine>();

        RotationPattern rotationPattern = new RotationPattern(this);
        CyclicPattern   cyclicPattern   = new CyclicPattern(this);
        WavePattern     wavePattern     = new WavePattern(this);
        LaserPattern    laserPattern    = new LaserPattern(this);

        patternsAvailable.Add("RotationPattern", rotationPattern);
        patternsAvailable.Add("CyclicPattern", cyclicPattern);
        patternsAvailable.Add("WavePattern", wavePattern);
        patternsAvailable.Add("LaserPattern", laserPattern);

        //Take damage or not
        EventManager.StartListening("OnSurvivalPhase", goVulnerable);
        EventManager.StartListening("OnCounterPhase", goInvicible);
        EventManager.StartListening("OnCounterPhase", growWeakPoint);
        EventManager.StartListening("OnAdaptationPhase", goInvicible);

        //Pause between each phase
        EventManager.StartListening("OnSurvivalPhase", onChangingPhase);
        EventManager.StartListening("OnCounterPhase", onChangingPhase);
        EventManager.StartListening("OnAdaptationPhase", onChangingPhase);

        //Rotating or not
        EventManager.StartListening("OnSurvivalPhase", restrictMovement);
        EventManager.StartListening("OnCounterPhase", allowMovement);
        EventManager.StartListening("OnAdaptationPhase", restrictMovement);

        EventManager.StartListening("OutroOver", doExplode);
        EventManager.StartListening("EndGame", willExplode);

        EventManager.StartListening("IntroOver", stopRrrr);

        cc = GetComponent <CircleCollider2D>();

        //coroutine = SelectingPaterns();
        GetComponent <SpriteRenderer>().sprite = sleepingSprite;

        weakPoint = transform.Find("WeakPoint");
    }
Example #9
0
    public void LoadNextWave()
    {
        pattern    = waveEnumerator.NextWave();
        waveCount += 1;
        if (waveCount > totalWave)
        {
            finishUI?.SetActive(true);
            if (playerRenderer)
            {
                playerRenderer.sprite = perfectCircle;
                playerRenderer.transform.localScale = new Vector3(2, 2, 2);
            }
            return;
        }

        for (int i = 0; i < pattern.enemies.Count; i++)
        {
            Spawn(i);
        }
    }
Example #10
0
 // Constructor
 public ReachTargetState(WavePattern statePatternEnemy, SeekBehavior seekBehavior)
 {
     state = statePatternEnemy;
     seek  = seekBehavior;
 }
Example #11
0
 public AttackUnitState(WavePattern statePatternEnemy, PursuitBehavior pursuitBehavior)
 {
     state   = statePatternEnemy;
     pursuit = pursuitBehavior;
 }
Example #12
0
        void LoadWavePatterns()
        {
            Lua LuaFile;

            System.Text.Encoding encodeType = System.Text.Encoding.ASCII;

            string path = MapLuaParser.GetDataPath() + "/Structure/Waves/wavepatterns.lua";

            if (!Directory.Exists(Path.GetDirectoryName(path)))
            {
                Debug.LogError("Cant find Waves folder");
                return;
            }
            if (!File.Exists(path))
            {
                Debug.LogError("Cant find Waves file");
                return;
            }

            string loadedFile = File.ReadAllText(path, encodeType);

            LuaFile = new Lua();
            LuaFile.LoadCLRPackage();
            try
            {
                LuaFile.DoString(MapLuaParser.Current.SaveLuaHeader.text + loadedFile);
            }
            catch (NLua.Exceptions.LuaException e)
            {
                Debug.LogError(LuaParser.Read.FormatException(e), MapLuaParser.Current.gameObject);
                return;
            }

            var patternTable = LuaFile.GetTable(KEY_patterns);

            LuaTable[] wvTabs = LuaParser.Read.GetTableTables(patternTable);

            WavePatterns = new WavePattern[wvTabs.Length];

            for (int i = 0; i < WavePatterns.Length; i++)
            {
                WavePattern pattern = new WavePattern();

                pattern.name    = LuaParser.Read.StringFromTable(wvTabs[i], "name", "pattern" + i);
                pattern.preview = LuaParser.Read.StringFromTable(wvTabs[i], "preview", "/editor/tools/water/nopreview.bmp");

                LuaTable parametersTable = (LuaTable)wvTabs[i].RawGet("parameters");

                LuaTable[] parameters = LuaParser.Read.GetTableTables(parametersTable);
                pattern.parameters = new WavePattern.Parameters[parameters.Length];
                for (int p = 0; p < parameters.Length; p++)
                {
                    pattern.parameters[p]                   = new WavePattern.Parameters();
                    pattern.parameters[p].texture           = LuaParser.Read.StringFromTable(parameters[p], "texture", "/env/common/decals/shoreline/wavetest.dds");
                    pattern.parameters[p].ramp              = LuaParser.Read.StringFromTable(parameters[p], "ramp", "/env/common/decals/shoreline/waveramptest.dds");
                    pattern.parameters[p].position          = LuaParser.Read.Vector3FromTable(parameters[p], "position");
                    pattern.parameters[p].period            = LuaParser.Read.FloatFromTable(parameters[p], "period");
                    pattern.parameters[p].periodVariance    = LuaParser.Read.FloatFromTable(parameters[p], "periodVariance");
                    pattern.parameters[p].speed             = LuaParser.Read.FloatFromTable(parameters[p], "speed");
                    pattern.parameters[p].speedVariance     = LuaParser.Read.FloatFromTable(parameters[p], "speedVariance");
                    pattern.parameters[p].lifetime          = LuaParser.Read.FloatFromTable(parameters[p], "lifetime");
                    pattern.parameters[p].lifetimeVariance  = LuaParser.Read.FloatFromTable(parameters[p], "lifetimeVariance");
                    pattern.parameters[p].scale             = LuaParser.Read.Vector2FromTable(parameters[p], "scale");
                    pattern.parameters[p].scaleVariance     = LuaParser.Read.FloatFromTable(parameters[p], "scaleVariance");
                    pattern.parameters[p].velocityDelta     = LuaParser.Read.Vector3FromTable(parameters[p], "velocityDelta");
                    pattern.parameters[p].frameCount        = LuaParser.Read.IntFromTable(parameters[p], "frameCount");
                    pattern.parameters[p].frameRate         = LuaParser.Read.FloatFromTable(parameters[p], "frameRate");
                    pattern.parameters[p].frameRateVariance = LuaParser.Read.FloatFromTable(parameters[p], "frameRateVariance");
                    pattern.parameters[p].stripCount        = LuaParser.Read.IntFromTable(parameters[p], "stripCount");
                }

                WavePatterns[i] = pattern;
            }
        }