hch
8 天以前 2df1999cde3d0d6009a860a035cdc7011bb56d25
305 子 【配套功能】新手引导 / 软引导战斗指引
8个文件已修改
106 ■■■■ 已修改文件
Main/System/Battle/BattleField/StoryBattleField.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleManager.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleWin.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/KnapSack/Logic/SinglePack.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/MainLevel/MainLevelManager.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieCenter.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieGuideScriptableObject.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/TimeUtility.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/StoryBattleField.cs
@@ -139,7 +139,10 @@
    protected override void OnSettlement(JsonData turnFightStateData)
    {
        base.OnSettlement(turnFightStateData);
        BattleManager.Instance.MainFightRequest(4);
        if (battleState == StoryBattleState.Battle)
        {
            BattleManager.Instance.MainFightRequest(4);
        }
    }
Main/System/Battle/BattleManager.cs
@@ -24,6 +24,10 @@
        }
    }
    public int fightGuideID;
    public int fightGuideMainLevelLimit;
    public int fightGuideNoClickSeconds;
    public Action<string, BattleField> onBattleFieldCreate;
    public Action<string, BattleField> onBattleFieldDestroy;
@@ -45,6 +49,11 @@
    {
        var config = FuncConfigConfig.Get("AutoGuaji");
        speedGear = JsonMapper.ToObject<float[]>(config.Numerical4);
        config = FuncConfigConfig.Get("FightGuide");
        fightGuideID = int.Parse(config.Numerical1);
        fightGuideMainLevelLimit = int.Parse(config.Numerical2);
        fightGuideNoClickSeconds = int.Parse(config.Numerical3);
    }
Main/System/Battle/BattleWin.cs
@@ -13,6 +13,8 @@
    private BattleField battleField;
    float lastClickTime;
    bool needGuide = false;
    // 生命周期
    protected override void InitComponent()
    {
@@ -40,14 +42,15 @@
    protected override void OnPreOpen()
    {
        base.OnPreOpen();
        lastClickTime = Time.realtimeSinceStartup;
        needGuide = !MainLevelManager.Instance.IsPassedByMainLevelID(BattleManager.Instance.fightGuideMainLevelLimit);
        // SetBattleField(BattleManager.Instance.storyBattleField);
        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
    }
    protected override void OnPreClose()
    {
        base.OnPreClose();
        UIManager.Instance.CloseWindow<BattleHUDWin>();
        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
    }
@@ -113,4 +116,42 @@
        ui.SetBattleField(battleField);
        battleField.UpdateCanvas(canvas);
    }
    void LateUpdate()
    {
        if (!needGuide)
            return;
        if (Input.GetMouseButtonDown(0))
        {
            lastClickTime = Time.realtimeSinceStartup;
        }
        if (Time.realtimeSinceStartup - lastClickTime > BattleManager.Instance.fightGuideNoClickSeconds)
        {
            if (AutoFightModel.Instance.isAutoAttack)
            {
                return;
            }
            if (NewBieCenter.Instance.inGuiding)
            {
                return;
            }
            if (UIManager.Instance.ExistAnyFullScreenOrMaskWin(""))
            {
                return;
            }
            NewBieCenter.Instance.StartNewBieGuide(BattleManager.Instance.fightGuideID);
            needGuide = !MainLevelManager.Instance.IsPassedByMainLevelID(BattleManager.Instance.fightGuideMainLevelLimit);
            BattleManager.Instance.storyBattleField.IsPause = false;
            lastClickTime = Time.realtimeSinceStartup;
        }
    }
}
Main/System/KnapSack/Logic/SinglePack.cs
@@ -228,6 +228,11 @@
    {
        return items.Values.ToList();
    }
    public List<int> GetItemIndexs()
    {
        return items.Keys.ToList();
    }
    
    public List<ItemModel> GetItems(FilterParams filterParams)
    {
Main/System/MainLevel/MainLevelManager.cs
@@ -53,5 +53,20 @@
        return true;
    }
    //levelID 为客户端配置的ID
    public bool IsPassedByMainLevelID(int levelID)
    {
        var value = PlayerDatas.Instance.baseData.ExAttr1;
        var chapterID = value / 10000;
        var levelNum = value % 10000 / 100;
        var config = MainLevelConfig.Get(levelID);
        if (chapterID > config.ChapterID || (chapterID == config.ChapterID && levelNum > config.LevelNum))
        {
            return true;
        }
        return false;
    }
}
Main/System/NewBieGuidance/NewBieCenter.cs
@@ -251,11 +251,16 @@
        {
            waitGuideWinNames.Remove(config.WinName);
        }
        BattleManager.Instance.storyBattleField.IsPause = true;
        currentGuide = _id;
        guideStep = config.Steps.Length > 0 ? config.Steps[0] : 0;
        var stepConfig = ScriptableObjectLoader.LoadSoNewBieGuideStep(guideStep);
        if (!(stepConfig.guideType == GuideType.NewBie && stepConfig.clickCompleteNoMask))
        {
            // 非强制引导不暂停战斗,如有具体需要可以增加字段
            BattleManager.Instance.storyBattleField.IsPause = true;
        }
        if (guideBeginEvent != null)
        {
Main/System/NewBieGuidance/NewBieGuideScriptableObject.cs
@@ -17,9 +17,11 @@
    public Vector2 usherPosition;
    public UsherOrientation usherOrientation;
    public int usherAction;
    public bool clickAnyWhereComplete = false;
    public bool clickCompleteNoMask = false;    //任意点击关闭  勾选此项会隐藏蒙版
    //有蒙版的 亦有强制点击的效果
    // 特殊例子:镂空范围超过屏幕就可以实现看起来不是强制引导 点击任意位置有效
    //  如果后续想做:不想要蒙版 又想要点击引导的位置才有效 则可以是在勾选clickAnyWhereComplete情况下,改变mask的alpha值即可配合提示
    public bool clickAnyWhereComplete = false;
    public bool clickCompleteNoMask = false;    //非强制引导,任意点击关闭,勾选此项会隐藏蒙版,且点击其他区域不会响应按钮事件
    // 引导的文本的箭头位置
Main/Utility/TimeUtility.cs
@@ -424,7 +424,7 @@
    //例子
    //x天
    //x时
    //x分x秒
    //x分
    //x秒
    public static string SecondsToConsumeRebate(int _seconds)
    {
@@ -438,15 +438,15 @@
        }
        else if (hours >= 1)
        {
            return StringUtility.Contact(Mathf.CeilToInt(hours), Language.Get("Hour"));
            return StringUtility.Contact(Mathf.CeilToInt(hours), Language.Get("L1072"));
        }
        else if (mins >= 1)
        {
            return StringUtility.Contact(mins, Language.Get("Minute"), seconds, Language.Get("RealmWin_Bewrite_35"));
            return StringUtility.Contact(mins, Language.Get("L1073"));
        }
        else
        {
            return StringUtility.Contact(seconds, Language.Get("RealmWin_Bewrite_35"));
            return StringUtility.Contact(seconds, Language.Get("L1075"));
        }
    }