Ejemplo n.º 1
0
    public override void OpenWeather(WeatherBean weatherData)
    {
        base.OpenWeather(weatherData);
        if (objWind_1)
        {
            objWind_1.SetActive(false);
        }
        if (objWind_2)
        {
            objWind_2.SetActive(false);
        }
        if (objDefoliation_1)
        {
            objDefoliation_1.SetActive(false);
        }
        switch (weatherData.weatherType)
        {
        case WeatherTypeEnum.Wind:
            SetWind();
            break;

        case WeatherTypeEnum.Defoliation:
            SetDefoliation();
            break;
        }
        GameConfigBean gameConfig = GameDataHandler.Instance.manager.GetGameConfig();

        AudioHandler.Instance.PlayEnvironment(AudioEnvironmentEnum.Wind, gameConfig.environmentVolume);
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 随机化一个天气
    /// </summary>
    public WeatherBean RandomWeather()
    {
        WeatherTypeEnum weatherStatusRandom = WeatherTypeEnum.Sunny;

        GameTimeHandler.Instance.GetTime(out int year, out int month, out int day);

        float weatherRate = UnityEngine.Random.Range(0f, 1f);

        if (weatherRate <= 0.5f)
        {
            weatherStatusRandom = WeatherTypeEnum.Sunny;
        }
        else if (weatherRate > 0.5f && weatherRate <= 0.8f)
        {
            weatherStatusRandom = WeatherTypeEnum.Cloudy;
        }
        else
        {
            List <WeatherTypeEnum> listWeather = WeatherTypeEnumTools.GetWeahterListByMonth(month);
            weatherStatusRandom = RandomUtil.GetRandomDataByList(listWeather);
        }
        WeatherBean weatherData = new WeatherBean(weatherStatusRandom);

        SetWeather(weatherData);
        return(weatherData);
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 设置天气数据
    /// </summary>
    /// <param name="weatherData"></param>
    public void SetWeatherData(WeatherBean weatherData)
    {
        WeatherTypeEnum weatherType = weatherData.GetWeatherType();

        SceneElementHandler.Instance.manager.SetRainActive(false);
        SceneElementHandler.Instance.manager.SetCloudAction(false);
        switch (weatherType)
        {
        case WeatherTypeEnum.Sunny:
            currentWeather = new WeatherSunny(weatherData);
            break;

        case WeatherTypeEnum.Cloudy:
            currentWeather = new WeatherCloudy(weatherData);
            break;

        case WeatherTypeEnum.Rain:
            currentWeather = new WeatherRain(weatherData);
            break;

        case WeatherTypeEnum.Snow:
            currentWeather = new WeatherSnow(weatherData);
            break;
        }
    }
Ejemplo n.º 4
0
    public override void OpenWeather(WeatherBean weatherData)
    {
        base.OpenWeather(weatherData);
        InitPS();
        if (objRain != null)
        {
            objRain.SetActive(true);
        }
        if (objThunder != null)
        {
            objThunder.SetActive(false);
        }
        switch (weatherData.weatherType)
        {
        case WeatherTypeEnum.LightRain:
            SetLightRain();
            break;

        case WeatherTypeEnum.Rain:
            SetRain();
            break;

        case WeatherTypeEnum.Thunderstorm:
            SetThunderstorm();
            break;
        }
        GameConfigBean gameConfig = GameDataHandler.Instance.manager.GetGameConfig();

        AudioHandler.Instance.PlayEnvironment(AudioEnvironmentEnum.Rain, gameConfig.environmentVolume);
    }
Ejemplo n.º 5
0
 public override void InteractiveDetection(CharacterInteractiveCpt characterInt)
 {
     if (Input.GetButtonDown(InputInfo.Interactive_E))
     {
         if (changeScene == ScenesEnum.GameSquareScene || changeScene == ScenesEnum.GameForestScene || changeScene == ScenesEnum.GameCourtyard)
         {
             ToastHandler.Instance.ToastHint("您被不可思议的力量阻挡了去路(暂未开放)");
         }
         else
         {
             if (changeScene == ScenesEnum.GameMountainScene)
             {
                 //如果山顶 特殊天气不能前往
                 WeatherBean weatherData = GameCommonInfo.CurrentDayData.weatherToday;
                 if (weatherData != null &&
                     (weatherData.weatherType == WeatherTypeEnum.Cloudy ||
                      weatherData.weatherType == WeatherTypeEnum.Sunny))
                 {
                     GameScenesHandler.Instance.ChangeScene(changeScene);
                 }
                 else
                 {
                     ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1321));
                 }
             }
             else
             {
                 GameScenesHandler.Instance.ChangeScene(changeScene);
             }
         }
     }
 }
Ejemplo n.º 6
0
    /// <summary>
    /// 改变天气
    /// </summary>
    /// <param name="weatherType">天气类型</param>
    /// <param name="timeMaxForWeather"></param>
    public void ChangeWeather(WeatherTypeEnum weatherType, float timeMaxForWeather)
    {
        WeatherBean weatherData = new WeatherBean();

        weatherData.SetWeatherType(weatherType);
        weatherData.timeForWeather    = timeMaxForWeather;
        weatherData.timeMaxForWeather = timeMaxForWeather;
        manager.SetWeatherData(weatherData);
    }
Ejemplo n.º 7
0
 public override void OpenWeather(WeatherBean weatherData)
 {
     base.OpenWeather(weatherData);
     InitPS();
     if (objFog != null)
     {
         objFog.SetActive(false);
     }
     switch (weatherData.weatherType)
     {
     case WeatherTypeEnum.Fog:
         SetFog();
         break;
     }
 }
Ejemplo n.º 8
0
    /// <summary>
    /// 设置天气
    /// </summary>
    /// <param name="weatherStatus"></param>
    public void SetWeather(WeatherBean weatherData)
    {
        if (weatherData == null)
        {
            return;
        }
        manager.weatherData = weatherData;

        CloseWeather();

        Color sunLightOffset = Color.black;

        switch (weatherData.weatherType)
        {
        case WeatherTypeEnum.Sunny:
        case WeatherTypeEnum.Cloudy:
            manager.weatherSunny.OpenWeather(weatherData);
            break;

        case WeatherTypeEnum.LightRain:
        case WeatherTypeEnum.Rain:
        case WeatherTypeEnum.Thunderstorm:
            manager.weatherRain.OpenWeather(weatherData);
            sunLightOffset = new Color(-0.2f, -0.2f, -0.2f, 1);
            break;

        case WeatherTypeEnum.Fog:
            manager.weatherFog.OpenWeather(weatherData);
            break;

        case WeatherTypeEnum.LightSnow:
        case WeatherTypeEnum.Snow:
            manager.weatherSnow.OpenWeather(weatherData);
            sunLightOffset = new Color(-0.1f, -0.1f, -0.1f, 1);
            break;

        case WeatherTypeEnum.Wind:
        case WeatherTypeEnum.Defoliation:
            manager.weatherWind.OpenWeather(weatherData);
            sunLightOffset = new Color(-0.1f, -0.1f, -0.1f, 1);
            break;
        }
        GameLightHandler.Instance.sunLight.SetOffsetColor(sunLightOffset);
    }
Ejemplo n.º 9
0
    /// <summary>
    /// 初始化新的一天
    /// </summary>
    public void InitNewDay()
    {
        //随机化一个天气

        WeatherBean  weatherData = null;
        GameDataBean gameData    = GameDataHandler.Instance.manager.GetGameData();

        if (gameData.gameTime.month == 4 && gameData.gameTime.day == 1)
        {
            //冬月的第一天必定下大雪
            weatherData = new WeatherBean(WeatherTypeEnum.Snow);
            GameWeatherHandler.Instance.SetWeather(weatherData);
        }
        else
        {
            weatherData = GameWeatherHandler.Instance.RandomWeather();
        }
        GameCommonInfo.CurrentDayData.weatherToday = weatherData;
    }
Ejemplo n.º 10
0
    public override void OpenWeather(WeatherBean weatherData)
    {
        base.OpenWeather(weatherData);
        if (objSnow != null)
        {
            objSnow.SetActive(true);
        }
        InitPS();
        switch (weatherData.weatherType)
        {
        case WeatherTypeEnum.LightSnow:
            SetLightSnow();
            break;

        case WeatherTypeEnum.Snow:
            SetSnow();
            break;
        }
    }
Ejemplo n.º 11
0
    public override void OpenWeather(WeatherBean weatherData)
    {
        base.OpenWeather(weatherData);
        InitPS();
        if (objCloudy != null)
        {
            objCloudy.SetActive(false);
        }
        switch (weatherData.weatherType)
        {
        case WeatherTypeEnum.Sunny:
            SetSunny();
            break;

        case WeatherTypeEnum.Cloudy:
            SetCloudy();
            break;
        }
    }
Ejemplo n.º 12
0
 public WeatherBase(WeatherBean weatherData)
 {
     this.weatherData = weatherData;
 }
Ejemplo n.º 13
0
 public WeatherSnow(WeatherBean weatherData) : base(weatherData)
 {
 }
Ejemplo n.º 14
0
 public WeatherRain(WeatherBean weatherData) : base(weatherData)
 {
     InitRain();
     InitClouds();
 }
Ejemplo n.º 15
0
 public WeatherSunny(WeatherBean weatherData) : base(weatherData)
 {
 }
Ejemplo n.º 16
0
 public WeatherCloudy(WeatherBean weatherData) : base(weatherData)
 {
     InitClouds();
 }
Ejemplo n.º 17
0
 public virtual void OpenWeather(WeatherBean weatherData)
 {
     this.weatherData = weatherData;
     gameObject.SetActive(true);
 }
Ejemplo n.º 18
0
 public virtual void CloseWeather()
 {
     gameObject.SetActive(false);
     this.weatherData = null;
 }