Exemple #1
0
    private void GameEvents_OnQuestEvent(QuestEvent evt)
    {
        Debug.Log("QuestEvent: " + evt);

        switch (evt)
        {
        case QuestEvent.RunStarted:
            currentRunStats = new CurrentRunStats();
            break;

        case QuestEvent.ReaperAnnoyed:
            currentRunStats.ReaperAnnoyed++;
            persistedStats.ReaperAnnoyed++;
            RaiseEventIfCompletedNow(QuestId.ReaperAnnoyed);
            RaiseEventIfCompletedNow(QuestId.ReaperAnnoyedMultipleInOneRun);
            break;

        // Instead: On GolemKingKilled, if damage taken == 0 then completed.
        //case QuestEvent.ReachedGolemKingWithNoDamage:
        //    break;

        case QuestEvent.GolemNestDestroyed:
            GolemNestDestroyed = true;
            RaiseEventIfCompletedNow(QuestId.DestroyGolemNest);
            break;

        default:
            DebugLinesScript.Show("Unknown quest event: " + evt.ToString(), Time.time);
            break;
        }
    }
Exemple #2
0
 public void PrintQuestDebugOutput()
 {
     foreach (var q in Quests)
     {
         string line = $"{q.GetDisplayText(this)}: isCompleted: {IsCompleted(q.Id)}, isCollected: {IsCollected(q.Id)}";
         DebugLinesScript.Show(line, Time.time);
         Debug.Log(line);
     }
 }
    public override void ApplyToMap(Vector3Int position)
    {
        int w = 30;
        int h = 30;

        MapBuilder.GenerateRandomWalkersMapFloor(w, h, pathSize: 3, walkerCount: 8, steps: 40, minBeforeTurn: 5, maxBeforeTurn: 8);

        // We need collision map to select a player position so build it now
        MapBuilder.BuildCollisionMapFromMapSource();
        playerStartPos_ = MapUtil.GetRandomEdgePosition(out Vector3 unused);

        List <(Vector3, float)> forbiddenPositions = new List <(Vector3, float)>();

        forbiddenPositions.Add((playerStartPos_, 10));

        var dynamicObjects = GameObject.FindWithTag("DynamicObjects");
        int difficulty     = CurrentRunData.Instance.StartingDifficulty + CurrentRunData.Instance.TotalFloor;
        List <EnemySpawnDefinition> enemySpawnDefinitions = new List <EnemySpawnDefinition>();

        if (difficulty < 12)
        {
            DebugLinesScript.Show("Unexpected difficulty for World3 (expected >= 12)", difficulty);
        }

        difficulty -= 11;
        difficulty  = 1;
        int minotaurCount = difficulty / 2;
        int elfCount      = difficulty + 1;
        int ravenCount    = Random.Range(0, (difficulty / 2) + 3) + 1;

        enemySpawnDefinitions.Add(new EnemySpawnDefinition()
        {
            EnemyId = EnemyId.Raven, Count = ravenCount
        });
        enemySpawnDefinitions.Add(new EnemySpawnDefinition()
        {
            EnemyId = EnemyId.Elf, Count = elfCount
        });
        enemySpawnDefinitions.Add(new EnemySpawnDefinition()
        {
            EnemyId = EnemyId.Minotaur, Count = minotaurCount
        });

        EnemySpawner.Instance.AddEnemiesForWorld(enemySpawnDefinitions, dynamicObjects.transform, forbiddenPositions);
    }
Exemple #4
0
    void Awake()
    {
        MapLayer               = LayerMask.NameToLayer("Map");
        PlayerLayer            = LayerMask.NameToLayer("Player");
        PlayerDamageLayer      = LayerMask.NameToLayer("PlayerDamage");
        PlayerInteractionLayer = LayerMask.NameToLayer("PlayerInteraction");
        EnemyLayer             = LayerMask.NameToLayer("Enemy");
        EnemyNoWallsLayer      = LayerMask.NameToLayer("EnemyNoWalls");
        EnemyDamageLayer       = LayerMask.NameToLayer("EnemyDamage");
        DeadEnemyLayer         = LayerMask.NameToLayer("DeadEnemy");
        EnemyDeadOrAliveMask   = (1 << EnemyLayer) + (1 << EnemyNoWallsLayer) + (1 << DeadEnemyLayer);
        EnemyAliveMask         = (1 << EnemyLayer) + (1 << EnemyNoWallsLayer);

        CameraPositioner    = FindObjectOfType <CameraPositioner>();
        CameraShake         = FindObjectOfType <CameraShake>();
        AudioManager        = FindObjectOfType <AudioManager>();
        MapScript           = FindObjectOfType <MapScript>();
        MapAccess           = (IMapAccess)MapScript;
        ParticleScript      = FindObjectOfType <ParticleScript>();
        DebugLinesScript    = FindObjectOfType <DebugLinesScript>();
        LightingImageEffect = FindObjectOfType <LightingImageEffect>();
        LightingCamera      = FindObjectOfType <LightingCamera>();
        MapCamera           = FindObjectOfType <MiniMapCamera>();
        PlayableCharacters  = FindObjectOfType <PlayableCharacters>();
        GraveStoneManager   = FindObjectOfType <GraveStoneManager>();

        NullCheck(MapLayer);
        NullCheck(PlayerLayer);
        NullCheck(PlayerDamageLayer);
        NullCheck(PlayerInteractionLayer);
        NullCheck(EnemyLayer);
        NullCheck(EnemyDamageLayer);
        NullCheck(DeadEnemyLayer);

        Instance = this;
    }
Exemple #5
0
 public static void Log(CommandArg[] args)
 {
     DebugLinesScript.Show("arg", args[0]);
 }