Ejemplo n.º 1
0
 public static void SwitchToBattleScene(AbstractMission mission, List <AbstractBattleUnit> CharactersSent)
 {
     GameState.Instance.AllyUnitsInBattle  = CharactersSent;
     GameState.Instance.EnemyUnitsInBattle = mission.EnemySquad.Members;
     GameState.Instance.CurrentMission     = mission;
     SceneManager.LoadScene(sceneName: "BattleMapScene");
 }
Ejemplo n.º 2
0
    public void AddMission(AbstractMission mission)
    {
        var missionPrefab = PrefabTemplate.Spawn(MissionsParent);

        missionPrefab.Mission = mission;
        ChildPrefabs.Add(missionPrefab);
    }
    public static List <AbstractMission> GenerateAllMissionsForRegion()
    {
        var dayNumber = GameState.Instance.Day;

        var missions = new List <AbstractMission>
        {
            new KillEnemiesMission()
            {
                DaysUntilExpiration           = 1000,
                Difficulty                    = 1,
                MaxNumberOfFriendlyCharacters = 3,
                Name    = AbstractMission.GenerateMissionName(),
                Rewards = new List <AbstractMissionReward> {
                    new GoldMissionReward(60)
                },
                EnemySquad       = MissionRules.GetRandomSquadForCurrentActAndDay(SquadType.NORMAL),
                ProtoSprite      = AbstractMission.RetrieveIconFromMissionIconFolder("cash"),
                MissionModifiers = GetRandomMissionModifiers()
            },
            new KillEnemiesMission()
            {
                DaysUntilExpiration           = 1000,
                Difficulty                    = 1,
                MaxNumberOfFriendlyCharacters = 3,
                Name    = AbstractMission.GenerateMissionName(),
                Rewards = new List <AbstractMissionReward> {
                    new GoldMissionReward(60)
                },
                EnemySquad       = MissionRules.GetRandomSquadForCurrentActAndDay(SquadType.ELITE),
                ProtoSprite      = AbstractMission.RetrieveIconFromMissionIconFolder("key"),
                MissionModifiers = GetRandomMissionModifiers()
            },
            new KillEnemiesMission()
            {
                DaysUntilExpiration           = 1000,
                Difficulty                    = 1,
                MaxNumberOfFriendlyCharacters = 3,
                Name    = AbstractMission.GenerateMissionName(),
                Rewards = new List <AbstractMissionReward> {
                    new RandomAugmentationMissionReward()
                },
                EnemySquad  = MissionRules.GetRandomSquadForCurrentActAndDay(SquadType.NORMAL),
                ProtoSprite = AbstractMission.RetrieveIconFromMissionIconFolder("relic")
            },
            new GateMission()
            {
                DaysUntilExpiration           = 1000,
                Difficulty                    = 4,
                MaxNumberOfFriendlyCharacters = 3,
                Name    = AbstractMission.GenerateMissionName(),
                Rewards = new List <AbstractMissionReward> {
                    new GateBypassMissionReward()
                },
                EnemySquad  = MissionRules.GetRandomSquadForCurrentActAndDay(SquadType.BOSS),
                ProtoSprite = AbstractMission.RetrieveIconFromMissionIconFolder("gate")
            },
            new KillEnemiesMission()
            {
                DaysUntilExpiration           = 1000,
                Difficulty                    = 2,
                MaxNumberOfFriendlyCharacters = 3,
                Name    = AbstractMission.GenerateMissionName(),
                Rewards = new List <AbstractMissionReward> {
                    new GateKeyMissionReward()
                },
                EnemySquad  = MissionRules.GetEliteSquad(),
                ProtoSprite = AbstractMission.RetrieveIconFromMissionIconFolder("key")
            },
            new KillEnemiesMission()
            {
                DaysUntilExpiration           = 1000,
                Difficulty                    = 2,
                MaxNumberOfFriendlyCharacters = 3,
                Name    = AbstractMission.GenerateMissionName(),
                Rewards = new List <AbstractMissionReward> {
                    new GateKeyMissionReward()
                },
                EnemySquad  = MissionRules.GetEliteSquad(),
                ProtoSprite = AbstractMission.RetrieveIconFromMissionIconFolder("key")
            }
        };

        foreach (var mission in missions)
        {
            mission.Terrain = MissionTerrain.TerrainTypes.PickRandom();

            ProbabilityUtils.PerformWithProbability(.2f, () =>
            {
                var modifier = MissionModifier.GetRandomMissionModifier();
                mission.MissionModifiers.Add(modifier);
            });

            mission.Init();
        }

        return(missions);
    }
Ejemplo n.º 4
0
 private GameObject GetMissionPrefab(AbstractMission mission)
 {
     return(ChildPrefabs.FirstOrDefault(item => item.Mission == mission).gameObject);
 }