{"version":3,"sources":["../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/AB.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/AchievePoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/AdGiftProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/AdvanceHeroUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/AdvanceShowUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/AdvanceSoldiersUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/advanceui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/advanceui/AdvanceUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/activity/file:/F:/svn/client/game_dev/assets/scripts/modules/game/activity/Age12LoadingUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/AstarHoneycombRoadSeeker.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/AStarRoadSeeker.ts","../file:/F:/svn/client/game_dev/assets/scripts/att/file:/F:/svn/client/game_dev/assets/scripts/att/AttManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/audio/file:/F:/svn/client/game_dev/assets/scripts/audio/AudioEffect.ts","../file:/F:/svn/client/game_dev/assets/scripts/audio/file:/F:/svn/client/game_dev/assets/scripts/audio/AudioLongEffect.ts","../file:/F:/svn/client/game_dev/assets/scripts/audio/file:/F:/svn/client/game_dev/assets/scripts/audio/AudioManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/audio/file:/F:/svn/client/game_dev/assets/scripts/audio/AudioMusic.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/BasePanel.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/BaseSDK.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/common/file:/F:/svn/client/game_dev/assets/scripts/modules/common/BatchItem.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BattleReport.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/BigNumber.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/BinaryTreeNode.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/BossAiComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/BossChangeItemComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/item/file:/F:/svn/client/game_dev/assets/scripts/item/BossComeUiViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/BossGoUIViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/BossLaixiPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/BossModle.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/BossView.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box10UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box1UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box2UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box3UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box4UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box5UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box6UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box7UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box8UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/Box9UI.ts","../file:/F:/svn/client/game_dev/assets/scripts/buff/file:/F:/svn/client/game_dev/assets/scripts/buff/BuffItem.ts","../file:/F:/svn/client/game_dev/assets/scripts/buff/file:/F:/svn/client/game_dev/assets/scripts/buff/BuffItemViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/BuffPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/BuildPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/layer/file:/F:/svn/client/game_dev/assets/scripts/map/layer/BuildTopView.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/layer/file:/F:/svn/client/game_dev/assets/scripts/map/layer/BuildView.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletFangView.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletPaoView.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletTriggerEvent.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletView.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletViewFollow.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletViewsTraightLine.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletXuLiTriggerEvent.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletXuliView.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletYuanView.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletZhiHuiView.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/BulletZhiView.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/common/file:/F:/svn/client/game_dev/assets/scripts/modules/common/BusyLoading.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/BusyLoadingManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/buttonEff/file:/F:/svn/client/game_dev/assets/scripts/modules/game/buttonEff/ButtonMusic.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/ByteUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/CallBackMgr.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/CampPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/layer/file:/F:/svn/client/game_dev/assets/scripts/map/layer/CDQuanView.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/charactor/file:/F:/svn/client/game_dev/assets/scripts/map/charactor/Charactor.ts","../file:/F:/svn/client/game_dev/assets/scripts/chat/file:/F:/svn/client/game_dev/assets/scripts/chat/ChatFaceItemViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/ChatFacePoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/chat/file:/F:/svn/client/game_dev/assets/scripts/chat/ChatTalkViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/chat/file:/F:/svn/client/game_dev/assets/scripts/chat/ChatViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/CommonMsgProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/common/file:/F:/svn/client/game_dev/assets/scripts/modules/game/common/Component.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/Component.ts","../file:/F:/svn/client/game_dev/assets/scripts/_ConfigInject/file:/F:/svn/client/game_dev/assets/scripts/_ConfigInject/Config_Decorator.ts","../file:/F:/svn/client/game_dev/assets/scripts/_ConfigInject/file:/F:/svn/client/game_dev/assets/scripts/_ConfigInject/ConfigLoadManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/_config/file:/F:/svn/client/game_dev/assets/scripts/_config/ConfigManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/_config/file:/F:/svn/client/game_dev/assets/scripts/_config/Constant.ts","../file:/F:/svn/client/game_dev/assets/scripts/VM/file:/F:/svn/client/game_dev/assets/scripts/VM/constrains.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/layer/file:/F:/svn/client/game_dev/assets/scripts/map/layer/CunzhuangView.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/file:/F:/svn/client/game_dev/assets/scripts/map/DamageLabelViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/Data_Decorator.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/dataAccout.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/dataBuff.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/DataManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/dataMgr.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/DataProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/dataServer.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/dataServerList.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/file:/F:/svn/client/game_dev/assets/scripts/modules/gameData/dataUser.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/DaySevenProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/dayseven/file:/F:/svn/client/game_dev/assets/scripts/modules/game/dayseven/DaySevenUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/signui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/signui/DaySignUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/tongxingui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/tongxingui/DayTaskBuyUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/tongxingui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/tongxingui/DayTaskUI.ts","../file:/D:/cocos/3.8.1/resources/resources/3d/engine/editor/assets/tools/file:/D:/cocos/3.8.1/resources/resources/3d/engine/editor/assets/tools/debug-view-runtime-control.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/DesMg.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/DevTools.ts","../file:/F:/svn/client/game_dev/assets/scripts/misc/file:/F:/svn/client/game_dev/assets/scripts/misc/EditorAsset.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/EffectFinishedRelease.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/EffectSingleCase.ts","../file:/F:/svn/client/game_dev/assets/scripts/misc/file:/F:/svn/client/game_dev/assets/scripts/misc/EncryptIntNumber.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/loading/file:/F:/svn/client/game_dev/assets/scripts/modules/loading/EnterUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/_config/file:/F:/svn/client/game_dev/assets/scripts/_config/Entity.ts","../file:/F:/svn/client/game_dev/assets/scripts/enum/file:/F:/svn/client/game_dev/assets/scripts/enum/Enum.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/EquiptDecUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/Event.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/EventDispatcher.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/EventManager.ts","../file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/Example1.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/FestivalTimeProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/festivaltimeui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/festivaltimeui/FestivalTimeUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/FitUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/FrameAnimation.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/Fsm.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/FsmBase.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/FsmManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/FsmState_Decorator.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/FsmState.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/FsmStateNameMap.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/FuBenExpPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/FuBenProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/FuBenSoldiersPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/item/file:/F:/svn/client/game_dev/assets/scripts/item/FuhuoFloorViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/item/file:/F:/svn/client/game_dev/assets/scripts/item/FuhuoTopViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/_config/file:/F:/svn/client/game_dev/assets/scripts/_config/FunctionCfg.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/FunctionOpenData.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/FunctionProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/GameCollision2D.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/file:/F:/svn/client/game_dev/assets/scripts/modules/game/GameConfigHelper.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/common/file:/F:/svn/client/game_dev/assets/scripts/core/common/GameConst.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/GameDefines.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/GameEntry.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/GameLaunchState.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/GameLoadingState.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/GameMainState.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/GameManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/common/file:/F:/svn/client/game_dev/assets/scripts/core/common/GameMemConst.ts","../file:/F:/svn/client/game_dev/assets/scripts/game/file:/F:/svn/client/game_dev/assets/scripts/game/GameModle.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/file:/F:/svn/client/game_dev/assets/scripts/modules/fsm/gameFlow/GamePreloadState.ts","../file:/F:/svn/client/game_dev/assets/scripts/game/file:/F:/svn/client/game_dev/assets/scripts/game/GameUtil.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/GebolinAiComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/item/file:/F:/svn/client/game_dev/assets/scripts/item/GebolinHpViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/GebolinModle.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/GebolinView.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/common/file:/F:/svn/client/game_dev/assets/scripts/modules/game/common/GlobalFunction.ts","../file:/F:/svn/client/game_dev/assets/scripts/VM/file:/F:/svn/client/game_dev/assets/scripts/VM/GlobalScopeValues.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/GmView.ts","../file:/F:/svn/client/game_dev/assets/scripts/item/file:/F:/svn/client/game_dev/assets/scripts/item/GoldItemComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/guilde/file:/F:/svn/client/game_dev/assets/scripts/modules/game/guilde/GuideLayer.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/guilde/file:/F:/svn/client/game_dev/assets/scripts/modules/game/guilde/GuideManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/GuidePoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/GuideSubStepPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/HalfFloatUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/Handler.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/HeroAiComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroAttributeProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroCaoProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/Herodec.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroEquipProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroEquiptAutoUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroEquiptContrastUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroEquiptUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroEquiptUpUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroExpProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/HeroModle.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroRefine/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroRefine/HeroRefineProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroScreenUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroTexingUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroTipsUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/HeroTuJianProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/heroui/HeroUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/HeroView.ts","../file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/HollowOut.ts","../file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/HollowOutPlus.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/HotFixManager.ts","../file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/HtmlParser.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/http/file:/F:/svn/client/game_dev/assets/scripts/core/http/HTTP.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/http/file:/F:/svn/client/game_dev/assets/scripts/core/http/HttpGame.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/IFsm.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/FSM/file:/F:/svn/client/game_dev/assets/scripts/core/FSM/IFsmState.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/IRoadSeeker.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/ItemProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/itemui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/itemui/ItenDecUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/_config/file:/F:/svn/client/game_dev/assets/scripts/_config/JsonUtil.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/activity/file:/F:/svn/client/game_dev/assets/scripts/modules/game/activity/KeFuLoadingUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/activity/file:/F:/svn/client/game_dev/assets/scripts/modules/game/activity/KeFuUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingAccountUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingCdkUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/KingCustomerProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingCustomerUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingDressDecUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/KingDressProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingDressUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/KingInfoProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingInfoUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingNameUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingNoticeUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingSetUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingSexUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingSignInUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/KingUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/labelui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/labelui/LabelFontChange.ts","../file:/F:/svn/client/game_dev/assets/scripts/_config/file:/F:/svn/client/game_dev/assets/scripts/_config/Language_WnTJTK.ts","../file:/F:/svn/client/game_dev/extensions/i18n/assets/file:/F:/svn/client/game_dev/extensions/i18n/assets/LanguageData.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/LanguageProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/LayaTimer.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/LayerManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/LayerUtil.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/LinkPrefab.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/ListView.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/loadui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/loadui/LoadFbenDecUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/fubenUI/file:/F:/svn/client/game_dev/assets/scripts/modules/game/fubenUI/LoadFbenLoseUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/loadui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/loadui/LoadFbenUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/fubenUI/file:/F:/svn/client/game_dev/assets/scripts/modules/game/fubenUI/LoadFbenWinUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/LoadFightUIViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/LoadingIcon.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/loading/file:/F:/svn/client/game_dev/assets/scripts/modules/loading/LoadingKefuWin.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/loading/file:/F:/svn/client/game_dev/assets/scripts/modules/loading/LoadingUiComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/loading/file:/F:/svn/client/game_dev/assets/scripts/modules/loading/LoadingWin.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/loadui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/loadui/LoadUI.ts","../file:/F:/svn/client/game_dev/extensions/i18n/assets/file:/F:/svn/client/game_dev/extensions/i18n/assets/LocalizedLabel.ts","../file:/F:/svn/client/game_dev/extensions/i18n/assets/file:/F:/svn/client/game_dev/extensions/i18n/assets/LocalizedSprite.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/LocalStorage.ts","../file:/F:/svn/client/game_dev/assets/core/common/log/file:/F:/svn/client/game_dev/assets/core/common/log/Logger.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/login/file:/F:/svn/client/game_dev/assets/scripts/modules/game/login/login.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/LongTouchComponent.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/LosePoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/loseui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/loseui/LoseUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mailui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mailui/MailDecUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MailProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mailui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mailui/MailUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MainBuffProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainbuffui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainbuffui/MainBuffUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MainPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MainTitlePoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/MainUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/ManageUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/base/file:/F:/svn/client/game_dev/assets/scripts/map/base/MapData.ts","../file:/F:/svn/client/game_dev/assets/scripts/item/file:/F:/svn/client/game_dev/assets/scripts/item/MapGoldEffViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/layer/file:/F:/svn/client/game_dev/assets/scripts/map/layer/MapLayer.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/base/file:/F:/svn/client/game_dev/assets/scripts/map/base/MapLoadModel.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/file:/F:/svn/client/game_dev/assets/scripts/map/MapModel.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/base/file:/F:/svn/client/game_dev/assets/scripts/map/base/MapParams.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MapPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/MapRoadUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MapTestPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/layer/file:/F:/svn/client/game_dev/assets/scripts/map/layer/MapTestView.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/base/file:/F:/svn/client/game_dev/assets/scripts/map/base/MapType.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/file:/F:/svn/client/game_dev/assets/scripts/map/MapViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/file:/F:/svn/client/game_dev/assets/scripts/map/MapViewScene.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/MathUtil.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/MessageBox.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/ModelBase.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/ModelPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/ModelUser.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MonsterPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MonthCardProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mooncardui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mooncardui/MonthCardUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/MotionQueueData.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/component/file:/F:/svn/client/game_dev/assets/scripts/core/component/MsgHints.ts","../file:/F:/svn/client/game_dev/assets/scripts/item/file:/F:/svn/client/game_dev/assets/scripts/item/MuBeiItemComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/MusicProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/WebSocket/file:/F:/svn/client/game_dev/assets/scripts/core/WebSocket/MyWebSocekt.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/NetManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/OffineProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/offlineui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/offlineui/OfflineUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/Operate.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/PassPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/PayInfoProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/PlatMgr.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/Point.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/PoolManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/powerui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/powerui/PowerUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/proto/file:/F:/svn/client/game_dev/assets/scripts/proto/proto.ts","../file:/F:/svn/client/game_dev/assets/scripts/proto/file:/F:/svn/client/game_dev/assets/scripts/proto/protoHandler.ts","../file:/F:/svn/client/game_dev/assets/scripts/proto/file:/F:/svn/client/game_dev/assets/scripts/proto/protoRoute.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/festivaltimeui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/festivaltimeui/RandomAdvertUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/RandomUtil.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/RegisterData.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/ResClean.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/ResHelper.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/RoadNode.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/road/file:/F:/svn/client/game_dev/assets/scripts/map/road/RoadType.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/Role.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/RoleAttack.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/RoleModle.ts","../file:/F:/svn/client/game_dev/assets/scripts/att/file:/F:/svn/client/game_dev/assets/scripts/att/RoleNumeric.ts","../file:/F:/svn/client/game_dev/assets/scripts/att/file:/F:/svn/client/game_dev/assets/scripts/att/RoleNumericMap.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/RolePierceDamage.ts","../file:/F:/svn/client/game_dev/assets/scripts/map/file:/F:/svn/client/game_dev/assets/scripts/map/RoleViewHitHpPrompt.ts","../file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/RotateMoveUV.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/routes/file:/F:/svn/client/game_dev/assets/scripts/modules/routes/RouteServer.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/routes/file:/F:/svn/client/game_dev/assets/scripts/modules/routes/RouteSystem.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/routes/file:/F:/svn/client/game_dev/assets/scripts/modules/routes/RouteUser.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/characterui/ServerListUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/serverlist/file:/F:/svn/client/game_dev/assets/scripts/modules/game/serverlist/ServerListWin.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/boxui/SeverCloseUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/Shake.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/ShakeCamera.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/SharedByteUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/ShopProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/ShopSoldiersTipsUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/shopui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/shopui/ShopUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SignProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/Singleton.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/Skill.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/SkillAnimator.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/SkillCasting.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SkillEffectProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/SkillEnum.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/SkillInterface.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/SkillInterval.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/SkillModelComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SkillProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/SkillTimer.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/skillui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/skillui/SkillUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/SoldierEquipItem.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SoldierEquipProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SoldierProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/shopui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/shopui/SoldiersEquiptGetUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/SoldiersEquiptQhUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/SoldiersEquiptTipsUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/soldiersui/SoldiersUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SoldierTuJianProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SoundEffectsConfigPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/SoundManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/SoundPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/game/file:/F:/svn/client/game_dev/assets/scripts/game/SpineAddSpriteUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/SpineGmView.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/SpineUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/StoryPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mainui/StoryUIViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/file:/F:/svn/client/game_dev/assets/scripts/RenderEffects/StraightLine.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/StringUtil.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/common/file:/F:/svn/client/game_dev/assets/scripts/modules/common/SwitchButton.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/TaskProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/taskui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/taskui/TaskUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/file:/F:/svn/client/game_dev/assets/scripts/AutoStorages/PersistentData/TestData.ts","../file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/TextMeshPro.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/ThiefAiComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/ThiefRoleViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/TimePoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/Timer.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/TipsPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/titleui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/titleui/titleItem.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/TitleProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/titleui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/titleui/TitleUI.ts","../file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/TmpAssembler.ts","../file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/TmpFontConfig.ts","../file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/TmpRichText.ts","../file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/file:/F:/svn/client/game_dev/assets/textMeshPro/scripts/utils/TmpUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/TongXingProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/ToolSDK.ts","../file:/F:/svn/client/game_dev/assets/scripts/skill/file:/F:/svn/client/game_dev/assets/scripts/skill/TweenUtils.ts","../file:/F:/svn/client/game_dev/assets/scripts/role/file:/F:/svn/client/game_dev/assets/scripts/role/UiRole.ts","../file:/F:/svn/client/game_dev/assets/scripts/LayaCode/file:/F:/svn/client/game_dev/assets/scripts/LayaCode/URL.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/UserProxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/Utils.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/Vec3Util.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/VillagePoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/VM/file:/F:/svn/client/game_dev/assets/scripts/VM/virtual-machine.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/file:/F:/svn/client/game_dev/assets/scripts/modules/sdk/Web.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/loading/file:/F:/svn/client/game_dev/assets/scripts/modules/loading/WebLoadingUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/WebSocket/file:/F:/svn/client/game_dev/assets/scripts/core/WebSocket/WebSocketMgr.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/welfareui/file:/F:/svn/client/game_dev/assets/scripts/modules/game/welfareui/WelfareUI.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/manager/file:/F:/svn/client/game_dev/assets/scripts/core/manager/WindowManager.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/WordMapPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/core/utils/file:/F:/svn/client/game_dev/assets/scripts/core/utils/WorkerEntity.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/mapUI/file:/F:/svn/client/game_dev/assets/scripts/modules/game/mapUI/WorldMapViewComp.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/file:/F:/svn/client/game_dev/assets/scripts/modules/game/proxy/XiaoTouPoxy.ts","../file:/F:/svn/client/game_dev/assets/scripts/modules/file:/F:/svn/client/game_dev/assets/scripts/modules/XxxEventReport.ts"],"names":["e","r","AB","inflateRaw","F","inflate","readUintBE","a","Uint8Array","slice","t","ArrayBuffer","byteLength","buffer","byteOffset","length","n","_bitsF","o","_bitsE","i","_decodeTiny","f","makeCodes","l","codes2map","d","_get17","c","U","s","L","v","u","A","p","h","w","B","m","y","_check","flmap","fdmap","C","itree","k","ordr","imap","lmap","dmap","ttree","O","_copyOut","ltree","I","dtree","x","H","S","E","ldef","R","T","M","ddef","D","g","b","set","Math","max","bl_count","next_code","rev15","revCodes","_putsE","_putsF","_get25","Uint16Array","Uint32Array","of0","exb","df0","dxb","fltree","fdtree","lhst","dhst","ihst","lits","strt","prev","push","_RF","pop","_dec","res_auto_bind","_dec2","res_assign","_class3","AchievePoxy","_initializerDefineProperty","_descriptor","_proto","prototype","GetAchieveById","id","this","datas","datasAchieve","find","element","GetAchieveRewards","kv_reward","_i","_Array$from","Array","from","entries","_Array$from$_i","key","value","console","log","_createClass","get","ConfigManager","GetInstance","getValue","achieveitem","keys","GlobalFunction","Inst","ParamDef","_inst","_applyDecoratedDescriptor","_class2","configurable","enumerable","writable","initializer","_class","achieveIcon","achieveMaxValue","achieveType","chain_id","jumpTo","lan_achieveDes","lan_achieveName","score","s1027","undefined","AdGiftProxy","rewardsList","rewards","rewardId","GameModleComp","getInstance","isOpenGame","EventManager","event","EventType","AD_GIFT_REWARD_SHOW","s1028","result","data","BoxData","ShowBox","BoxStyle","BoxStyle3","InitPayInfoConfig","AdGiftDataList","AdGiftDataConfig","item","GetChufaInfoDataByID","SendC1028","send2client","ay_item","rate","rewardTime","time","ccclass","_decorator","property","Node","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","Button","_BasePanel","AdvanceHeroUI","_this","_len","arguments","args","_key","call","apply","concat","_assertThisInitialized","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_inheritsLoose","onBtnClicked","name","guideEvent_4009","close","onShow","heroid","_this2","herodata","HeroProxy","GetHeroDataByID","p_hero","HeroDataServerMaps","Label_name","getComponent","Label","Sprite_type","Sprite","Sprite_pinzhi","string","lan_nameId","heropzdb","GetHeroDjByColor","color","heroTypeIcon","GetHeroTypeIcon","type","SetSpriteFrame","Label_atk","Label_def","Label_hp","ConvertUndefinedToNumber","atk","toString","def","hp","vecs3","Vec3","vecps3","Utils","loadResUIOnly","heroModel","Prefab","err","res","addRef","heronode","instantiate","layer","node","position","setParent","Modle","scale","GuideManager","isInGuide","uiOpenEvent_4009","Button_back","onLoad","onDestroy","onHide","clearRes","BasePanel","AdvanceShowUI","gongnenglist","show","prefabshow","level","dataUser","Instance","passId","FunctionProxy","GetFunctionDataByLevel","Layout_show","removeAllChildren","itemNode","parent","fountion","GetFunctionDataByID","Sprite_show","getChildByName","lan_name","SetSpriteAdvanceFrame","icon","AdvanceSoldiersUI","functiondata","Item","ResHelper","getShowGebulin","soldiers","Sprite_soldiers","AdvanceUI","dec","prefabdec","Button_close","Button_get","start","addEvent","on","UPDATE_ADVANCE_UI","UpdateAdvanceUI","SortHeroList","Layout_dec","FunctionDataList","FunctionData","Sprite_name","yesicon","noticon","Button_itemicon","Sprite_yilingqu","tips","lan_content","yesdec","Label_yes","notdec","Label_not","active","Label_item","itemid","ay_reward","itemnum","itemdata","ItemProxy","GetItemDataByID","Number","Sprite_itemkuang","GetItemKuangByColor","Sprite_item","bindClickItemEvent","PassPoxy","GetCurrentLevelDec","ISFuntionGetReward","bindClickGetEvent","sort","detailA","detailB","FunctionIDList","boola","boolb","dataA","dataB","itemnode","clickEventHandler","Component","EventHandler","target","component","handler","customEventData","clickEvents","setTimeout","uiOpenEvent_4008","CallOnclickItem","itemids","parseInt","guideEvent_4008","WindowManager","open","GameConst","winPath","ItenDecUI","CallOnclickGet","Functionids","Functionid","SendC1050","Age12LoadingUI","AstarHoneycombRoadSeeker","roadNodes","COST_STRAIGHT","COST_DIAGONAL","maxStep","_openlist","_closelist","_binaryTreeNode","BinaryTreeNode","_startNode","_currentNode","_targetNode","_roadNodes","_round1","_round2","handle","optimize","seekPath","startNode","targetNode","resetTree","refleshTag","step","searchRoundNodes","isTreeNull","getMin_F_Node","getPath","setRoadNodeInCloseList","seekPath2","newMaxStep","isPassNode","abs","cx","cy","closestNode","sortNode","node1","node2","preNode","midNode","nextNode","preHpos","midHpos","nextHpos","nodeArr","unshift","getHoneyPoint","bool1","bool2","bool3","hx","bool4","hy","splice","optimizeNode","j","isArriveBetweenTwoNodes","optimizeLen","startPoint","targetPoint","disX","disY","dirX","dirY","rx","ry","intNum","decimal","floor","ceil","hpoint1","HoneyPoint","hpoint2","hpoint3","isCrossAtAdjacentNodes","getNodeByHoneyPoint","dirX1","dirY1","dirX2","dirY2","getRoundNodeByIndex","roundIndex","round","getRoundNodes","testSeekPathStep","callback","clearInterval","setInterval","getOpenList","isInCloseList","setNodeF","isInOpenList","removeTreeNode","addTreeNode","setRoadNodeInOpenList","dispose","AStarRoadSeeker","_round","cx1","cy1","cx2","cy2","inInCorner","AttManager","instance","menu","_AudioSource","AudioEffect","effects","Map","load","url","acp","AudioClip","playOneShot","volume","error","playEff","mp3","release","releaseDir","clear","AudioSource","AudioLongEffect","clip","play","LOCAL_STORE_KEY","_Component","AudioManager","local_data","music","effect","longeffect","_volume_music","_volume_effect","_volume_music_now","_volume_effect_now","_switch_music","_switch_effect","_curmusicurl","_agomusicurl","setMusicComplete","onComplete","playMusic","playLastMusic","playEffect","playMp3Eff","playLongEffect","resumeAll","pauseAll","pause","stopAll","stop","save","volume_music","volume_effect","switch_music","switch_effect","JSON","stringify","sys","localStorage","setItem","AudioMusic","getItem","parse","progress","_progress","_url","_isPlay","switchMusic","playing","enabled","update","dt","currentTime","duration","winInfo","onCreate","showMotions","group","list","getComponentsInChildren","MotionQueueData","filter","Group","Index","_loop","motion","Logger","logView","btn","v3","tween","delay","to","onLoadUpdate","RemoveAllEventTrigger","destory","removeWindow","onRecycle","BaseSdk","isShortCutInstalled","initVideo","pay","success_callback","fail_callback","reason","share","requestSubscribeMessage","tmplIds","successCallBack","autoRegister","login","showTip","str","MsgHints","checkUpdateVersion","requestSubscribeWhatsNew","vibrateShort","vibrateLong","setClipboardData","getClipboardData","showCustomAd","isPatch","closeCustomAd","showADInsert","showGameBanner","hideGameBanner","shortCutInstalled","getDefaultServer","sysConfig","accessToken","dataAccout","apiVersion","channel","platform","sub_v","sign","md5","obj","client","HttpGame","sendRequest","ret","retJson","success","server","dataServer","content","dataServerList","defaultServer","selectServer","msg","Draw","mask","layout","nodes","localOpacitys","childrens","next","Queue","items","head","Object","forEach","DFS","queue","opacity","render","UIRenderer","draw","Mask","Layout","UIOpacity","childs","children","isActive","aabb0","rect","aabb1","worldMat4","mat4","getWorldBoundingBox","_contentSize","UITransform","contentSize","_anchorPoint","anchorPoint","width","height","getWorldMatrix","transformMat4","changeTree","BatchItems","culling","activeInHierarchy","intersects","curr","director","Director","EVENT_BEFORE_DRAW","queues","isValid","EVENT_AFTER_DRAW","_class5","lateUpdate","_class4","BattleReport","casting","sc","sr","caster","skill","hits","srs","buff","BigNumber","genLetters","aLetters","tmp2","out","index","cn","getN","param1","_loc_2","pow","getLargeString","param2","param3","_loc_11","NaN","_loc_4","_loc_5","_loc_6","_loc_7","_loc_9","_loc_10","addSeparators","toFixed","_loc_3","charAt","substr","convertToLargeString","getStringOfNumber","param4","_loc_8","String","seekTag","openNode","count","roadNode","right","treeParent","left","minNode","openTag","closeTag","openList","seachTree","BossAiComp","boss","gebolinMapType","GebolinMapType","PveBoss","isInCopy","isDie","addFight","PveCopy","addFuBenFight","isAttackOver","modle","skills","skillId","skillInterval","monster","SkillModel","table","isNomAttack","nearestMonster","randomMonster","_skill","SkillIntervalComp","showUpdata","skillcd","attack","openSpineGm","SpineGmView","isOpenBossAi","current","temp","MAX_VALUE","random","maxValue","GameEntry","mapView","gebolinMap","AiType","GebolInAiEnum","Fight","distance","heroMap","heroAiType","HeroAiType","copyheroMap","ProgressBar","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","BossChangeItemComp","_descriptor9","_descriptor10","_descriptor11","_descriptor12","_descriptor13","_descriptor14","bossKillTime","KILL_BOSS_FAIL_UI","onKillFail","KILL_MONSTER_OK_UI","onKillOver","TO_KILL_BOSS_UI","ontOKillbOSS","GAME_TIME_CHANGE","onGameTimeChange","BOSS_HP_CHANGE","onBossHpChange","showBossBtn","onButton_guankagoClick","mapId","getPassById","selectGuankaId","arr","MapPoxy","getMapById","ay_bossPoint","MapRoadUtils","AStarToPoint","nowScene","setViewToPoint","btnGuanKa","bossDieTime","btnBoss","bossGo","showBossTime","bossBar","now","pro","proLabel","bossTime","showGuanqia","showLeftBar","showRightBar","Label_guanka","Label_guanka1","bossGoLabel","pass","Label_guankatips","ConvertNumberWithUnit","gold","Label_guankatips1","Label_guankatips2","ProgressBar_bossleft","MapModelComp","mapMonsterIndex","ProgressBar_bossright","desTroy","off","removeChild","destroy","sp","Skeleton","BossComeUiViewComp","_isGuideId","comSp","setCompleteListener","trackEntry","animation","isGuideId","closeGuide","RichText","_dec16","_dec17","_dec18","BossGoUIViewComp","_descriptor15","_descriptor16","_descriptor17","bosslaixi","showData","BOSS_LAI_XI_TIME_CHANGE","onTimeChaneg","BOSS_LAI_XI_DATA_CHANGE","onBossLaiXi","CLOSE_ALL_UI","GUIDE_TS_2005","on2005","uiOpenEvent_2007","BossLaixiPoxy","s1049","bossId","state","Label_time","TimePoxy","ShowTime","bossComeTime","getBossLaiXiById","Sprite_bossbg","bg","fstr1","StringUtil","stringFormat","lan_taskpt1","ay_canshu","zstr1","tasks","nowNum","maxNum","Button_jump1","Sprite_done1","nstr1","Label_dec1","fstr2","zstr2","Button_jump2","Sprite_done2","nstr2","Label_dec2","fstr3","zstr3","Button_jump3","Sprite_done3","nstr3","Label_dec3","onClick","guideEvent_2007","onJunmp1Click","TaskProxy","TaskJumpFuncation","jump1","onJunmp2Click","jump2","onJunmp3Click","jump3","comeTime","logNet","_s1049","InitBossLaiXiConfig","BossLaiXiMaps","size","BossLaiXiitem","BossLaiXiID","kv_rewards","lan_taskpt2","lan_taskts2","_RoleModleComp","BossModle","_monster","_skillId","init","addRoleSkill","skid","ay_buff","Skill","showTable","RoleTypeEnum","Monster","role","onPassive","addAttributes","AttType","attributes","atkValue","defValue","hpValue","baoJiRate","cs","baoJiHurtRate","vi","hpAdd","hpRate","HpMax","RoleModleComp","_BaseRole","BossView","spine","bossAi","_p_bat_boss","bossIndex","killNum","mapType","skeleton","addComponent","friendType","AllRoleTypeEnum","Enemy","RoleType","roleId","AddId","roleName","topNode","isBoss","showBossPro","isKillBossFail","killBossBtn","changeTitle","onToKillClick","bossSprite","ProgressBar_bosstime","schedule","fen","miao","label","KILL_BOSS_FAIL","c1601","monsterId","isKill","heroMy","getMyHero","armyMy","getMyGebolin","bossTar","nowBoss","p_bat_boss","startTime","Date","getDate","inArmyNum","nowGebolinNum","newArmyNum","newGebolinNum","outArmyNUm","overGebolinNum","deadArmyNum","dieGebolinNum","heroFight","dieGebolin","p_bat_army","IsExistOtherLayer","LoseUI","GameOverType","bossfaile","psdata","wordMapdata","WordMapPoxy","getWordMapById","wordMapID","Label_guaka","lan_classify","typeId","setMonsterId","_this3","MonsterPoxy","getMonsterById","showRole","showScale","showReward","hpPro","heroUID","gebolin","rewardArr","kv_pass","reward","num","mapItem","GoldItemComp","setData","Layout_item","addChild","MapItem","suofang","callFun","_this4","path","sktd","SkeletonData","skeletonData","setDirection","setScale","ids","model","ModelPoxy","getModelById","ay_fight","scaleNodes","pos","pos1","Bottom","setAlpha","showHit","_showHit","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newPoint","wrap","_context","abrupt","goblin_Hit","isPlayFinishedRelease","EffectSingleCase","loadAndShow","ballisticHitRes","EffectLayer","_x2","tempX","BaseRole","goblin_attack","showJituiEff","jituiNode","setAnimation","goblin_dead","dead","IsFuntionIsOpen","_i3","_Array$from2","_Array$from2$_i","BoxStyle10","changeHp","setArr","COPY_BOSS_HP_CHANGE","showCopyReward","_this5","eff","mapGoldEff","MapGoldEffViewComp","transPveData","fubenId","_x","_y","getLayer","UILayer","地图特效","posV3","wordPoint","heroLayer","convertToWorldSpaceAR","screenPoint","mapCamera","worldToScreen","uiWordPoint","mainCamera","screenToWorld","addPoint","convertToNodeSpaceAR","effPos","copyPosInUi","playAni","COPY_MAP_REWARD_CHANGE","reset","skillIn1","skillIn2","desTory","unscheduleAllCallbacks","Box10UI","timeDayCallback","boxdata","rewardData","prefabitem","Label_timemun","itemCount","ScrollView_item","_loop2","Button_item","kuangstring","iconstring","Sprite_itemtx","Sprite_itemtxsk","item1","Layout_item1","_loop3","Button_item1","different","timelabel","unschedule","Box1UI","itemdataID","itemSeverData","timecount","yongyoucoun","onBtnClickedOnejian","onBtnClickedOnejia","onBtnClickedTenjian","onBtnClickedTenjia","SendC1202","itemUID","onBtnClickedItem","downonespr","Button_onejian","grayscale","Label_num","setTimeLabel","Button_tenjian","linshicount","Button_onejia","Button_tenjia","addonespr","addtenspr","downtenspr","onBtnClickedGet","dataid","getServerItem","labelnum","HeroEquipProxy","HeroEquipServerInfo","finishTime","serverTime","Label_itemname","ShowTimeLabel","Box2UI","lvLv","expLv","lvColor","expColor","eqList","ciTiaoList","upLevelExp","GetHeroEquipExpByLv","exp","attCount","defCount","hpCount","Label_lv","ShowLV","ProgressBar_exp","Label_att","citiao","heroEquipBuff","GetHeroEquipBuffByLvID","finddata","labeldec","GotBuffDecByFuffType","Labeldecnum","ConvertExtremelyNumber","Box3UI","Toggle","Box4UI","boxData","ischeck","unitUID","OnClickButtonClose","OnClickButtonGet","OnClickButtonNot","Toggle_choose","isChecked","checkToggleEvent","toggle","customData","NotAvailable","SaveBoxRecorded","actions","IsGetBlooBoxRecorded","Label_1","Button_sure","buttonNames","Button_not","Box5UI","Label_dec","scheduleOnce","Box6UI","title","Label_title","showLabelType","Label_2","Box7UI","Box8UI","heroserverdata","Boxaata","p_buffs","prefabdec1","GetSeverHeroById","ScrollView_dec","SetBuffMaps","ShowHeroBuffList","not","SetNotBuffMaps","ShowNotHeroDec","buffAttr","BuffAttType","baojilv","baojishanghai","deBaoJiRate","kangbao","atkRate","gongjijiacheng","defRate","fangyujiacheng","xueliangjiacheng","hurtRate","shanghaijiacheng","deHurtRate","shanghaijianmian","deShanRate","shanbi","mingRate","mingzhonglv","skillHurtRate","jinengjiacheng","zhiRate","zhiliaohudun","deZhiRate","jiangzhiliao","currentHeroUpExp","HeroExpProxy","GetHeroExpByColor","lv","Label_exp","Sprite_pinzhikuang","Sprite_herokuang","Sprite_heros","Sprite_hero","Sprite_heropinzhi","Sprite_herotype","GetHeroPzdbByColor","heroIcon","heropz","heroAttributedata","HeroAttributeProxy","GetHeroAttributeDataByID","shjia","shjian","hdun","zliao","dec1","Layout_dec1","_i2","Box9UI","replace","BuffItem","_target","_createTime","_time","_type","_value","eType","createTime","getTime","BuffItemViewComp","_buff","buffStr","SkillEType","XuanYun","BingDong","BaoShangJia","BaoJiJia","GongSuJia","GongSuJian","buffSpine","BuffPoxy","InitBuffConfig","BuffMaps","buffitem","buff_id","getBuffById","buffid","ShowBuffDec","buffdec","reduction","percent","buff_type","BuildPoxy","InitBuildConfig","BuildList","GetBuildById","buildId","lan_build","addParts","lockType","lockNum","resource","BuildType","BuildTopView","_buildId","_buildCfg","_buildPart","_posV3","buildCfg","buildPart","showAllBuild","changepos","BuildPart","WuQi","KaiJia","MaoZi","setPos","CunZhuang","showBuild","showSp","showPro","cdTime","ProgressBar_time","changeSkin","getNameById","showWait","nameStr","setSkin","BuildHeroType","ZhanShiWuqi","ZhanShiMaoZi","FaShiWuQi","FaShiMaoZi","CiKeWuQi","CiKeMaoZi","PaoShouWuQi","PaoShouMaoZi","showRun","BuildView","starTime","cdQuan","_cdTime","_waitGebolin","_waitNum","_isOpen","_buildAiType","BuildAiTypeEnum","Wait","cunzhuangPoint","cunzhuangArr","cunzhuangTimeArr","canZhuangPei","_debugId","touchTime","nowGebolin","createIndex","addGebolinToWait","waitGebolin","waitNum","getGebolinIndex","indexOf","removeGetBolin","ON_CAN_GET_REWAR_BUILD","onCanGetReward","ON_GET_REWAR_BUILD_END","onGetEndReward","OffineProxy","rewardList","geRewardNode","isOpen","debugId","AddBuildId","CDitem","CDQuanView","z","cdLayer","onCd","clickBtn","TOUCH_START","onTouchStar","TOUCH_END","onTouchEnd","setEventListener","track","gebolinType","allZhuangPei","getRoleTypeByBuild","gebolinAttType","getRoleAttTypeByBuild","equipNum","nowTime","builddata","ManageUI","waitSmallId","guideEvent_1006","nowGuideId","guideEvent_10005","guideEvent_1010","guideEvent_3002","guaji","OfflineUI","CampPoxy","SendC1301","nameLabel","showCunZhuang","buildMaps","cunzhuangNode","cunzhuangTimeNode","onScheduleEvent","haveNum","showLock","cdItem","build","cun","cunzhuang","CunzhuangView","VillagePoxy","GetVillageTimeById","lv2","lv1","changeCunzhuang","buildData","openIndex","getAllOpen","lockGroup","yes","lockglodGroup","GetUnLockLevelDec","need","have","numLabel","Color","buildMap","findAnimation","showAddwuqi","upToWait","showAction","buildAiType","LiveJianzhu","WaitUp","ZhanShiKaiJia","soldiersID","GebolInTypeEnum","ZhanShi","FaShiKaiJia","FaShi","CiKeKaiJia","ChiKe","PaoShouKaiJia","PaoShou","GebolInAttTypeEnum","JinZhan","YuanCheng","ZhuangPei","WaitZhuangpei","_BulletView","BulletFangView","initBullet","launch","ndangle","tv","tp","targetPos","dir","dis","moveType","MOVETYPE","ANGER","bulletType","angle","PI","sin","cos","normalize","v3_dis","speed","setPosition","add","pos_end","comp","BulletTriggerEvent","isAttack","isAttTime","showAllHit","showAttack","canRemove","removeSelf","rectPos","Vec2","fanwei","rectSize","shengxiaoArr","shengxiao","map","nowFubenBoss","nodePos","onCollisionFun","GebolinView","Operate","inFriendType","HeroView","_p$subtract$normalize","subtract","rotate","pos_start","LINE","onCollisionEnter","selfCollider","otherCollider","contact","onFollowFun","calcDamage","animator","onRoleHit","param","skilllier","fixedge","damagetype","injuline","RoleAttack","normal","BulletView","BulletPaoView","isLeft","nowType","targetPointArr","roleview","wuqiSprite","wuqi","angel","getAngel","Vec3Util","lootAt","newAngel","getPointArr","chaY","chaX","pxArr","pyArr","eventName","onstart","_GameCollision2D","onHit","penetrate","velocity","forward","trans","isBack","beginTarget","toRemoveYuan","canCollision","isPao","CollisionType","Ballistic","targetview","put","GameCollision2D","BulletViewFollow","BulletViewsTraightLine","BulletXuLiTriggerEvent","xuliOver","frameEvent","BulletXuliView","inOpenType","BulletYuanView","BulletZhiHuiView","rv","BulletZhiView","BusyLoading","node_net","node_res","net_loading","setType","BUSY_TYPE","SHORT","Tween","stopAllByTarget","BusyLoadingManager","ins","removeBusy","addBusy","busyMap","loadingUI","timerID","lable","getComponentInChildren","checkBusy","getBusyCount","clearTimeout","updateTips","最顶层","removeFromParent","ButtonMusic","ByteUtils","_xd_","_allocated_","_d_","_u8d_","_pos_","_length","shareBuff","oriB","DataView","_resizeBuffer","getSystemEndian","_sysEndian","setInt16","Int16Array","LITTLE_ENDIAN","BIG_ENDIAN","len","newByteView","subarray","getString","readString","_rUTF","getUint16","getFloat32Array","readFloat32Array","end","Float32Array","getUint8Array","readUint8Array","getInt16Array","readInt16Array","getFloat32","readFloat32","getFloat64","readFloat64","writeFloat32","_ensureWrite","setFloat32","writeFloat64","setFloat64","getInt32","readInt32","float","getUint32","readUint32","writeInt32","setInt32","writeUint32","setUint32","getInt16","readInt16","us","readUint16","writeUint16","setUint16","writeInt16","getUint8","readUint8","writeUint8","setUint8","_getUInt8","_readUInt8","_getUint16","_readUint16","c2","fromCharCode","strs","_code","_offset","_lead","_trail","join","getCustomString","readCustomString","ulen","__getBuffer","writeUTFBytes","sz","charCodeAt","writeByte","isNaN","_p1","_p2","_b1","_b2","_b3","_b4","writeUTFString","tPos","dPos","writeUTFString32","readUTFString","readUTFBytes","readUTFString32","getUTFString","lastBytes","bytesAvailable","getUTFBytes","setInt8","readByte","getInt8","getByte","lengthToEnsure","writeArrayBuffer","arraybuffer","offset","uint8array","readArrayBuffer","rst","rstBuffer","CallbackMgr","_nNextCallbackID","_tCallbackMap","_tTempCallbackMap","_Instance","DoCallbackFunc","nID","pTempCallFunc","pCallback","Perm","nId","Temp","RemovePerm","window","s1300","buildList","SetBuildMaps","UpBuildMaps","Update","s1301","NEW_BUILD_OPEN","s1302","VILLAGE_LEVEL_UP","s1405","SetEquipMaps","CampDataList","equipMaps","buildTypeLists","InitCampConfig","GetCampById","GetCampMaxLvById","GetCampNextLvById","MaxLevel","SendC1300","SendC1302","SendC1405","oldBuild","parmyequip","getOwnPropertyDescriptor","CampID","attrType1","attr1","costType1","costNum1","attrType2","attr2","costType2","costNum2","VillageAttrType","isShow","callBack","thisObj","showTween","bind","CharactorState","CharactorDirection","Charactor","_direction","bottom","_state","_alpha","_zIndex","_pos","_moving","sceneMap","joystic","joystic_dir","moveSpeed","_moveAngle","_roadNodeArr","_nodeIndex","isOver","isCloseMove","_mapType","direction","Idle","dx","px","dy","py","atan2","dire","xspeed","yspeed","nowPos","walk","multiply","updateZIndex","setPlayerStateByNode","joystick","moving","strictEquals","ZERO","Run","moveTouch","readyMovePlayer","shitfMove","readyShiftMoveRole","mapLayer","getMapNodeByPixel","RoadType","RoadTransparent","alpha","Hidden","emit","NextRoadNode","walkByRoad","roadNodeArr","move","WalkRoadNode","setState","ChatFaceItemViewComp","faceId","cfg","cfgArr","onFaceClick","ChatFacePoxy","GetChatFaceConfigById","getFaceArrById","SetSpriteFrameFace","Sprite_face","s2151","msgList","wordMsg","newWordChat","sysMsg","newSysChat","HAVE_NEW_CHAT_MSG","_msgList","_wordMsg","_sysMsg","InitChatFaceConfigConfig","ChatFaceConfigList","virtualId","faceUrl","split","getMsgByType","getIdByVe","em","ChangeImageItem","_dec19","ChatTalkViewComp","_descriptor18","chat","changeIdArr","initData","sendUID","showOther","showMy","changeImage","otherHead","myhead","myNode","otherNode","Label_timemy","SecondsToDate","Label_namemy","nickname","Sprite_titlemy","showMsg","Label_talkmy","mySprite","myLabel","Size","Label_timeother","Label_nameother","Sprite_titleother","Label_talkother","otherSprite","otherLabel","matches","extractHashWithFourChars","idArr","imageId","changeItem","changeId","changeStr","changePath","changeIndex","newMsg","getNewMsg","replaceHashWithText","getLabelNewMsg","inputString","replacement","currentIndex","matchIndex","substring","rStr","match","regex","exec","EditBox","ScrollView","ChatViewComp","sysitems","initList","onNewMsg","addWord","addSys","addItem","addSysItem","Panle_lock","EditBox_name","Layout_talk","beigin","ScrollView_talk","scrollToBottom","talkPre","showSys","Layout_system","ScrollView_system","Label_system","showFace","Panle_face","Layout_face","face","facePre","onFaceOver","onLockClick","onChooseClick","onSureCkick","onSendClick","c2151","toUID","onChatClick","Panle_word","Panle_system","onSysClick","onCloseClick","CommonMsgProxy","InitCommonMsgConfig","commonDataList","commonMsgConfig","commonMsgitem","GetCommonMsgById","GetCommonDataById","lan_msg","lan_id","GetCommonMsgTypeById","ay_type","ShowCommonMsg","ps","action","types","ShowNewMessageByWay","way","stringAyFormat","GetMsg","BoxStyle4","_data","BoxStyle5","_datas","BoxStyle6","itemNumber","CloseAction","itemId","gongnengid","_CC_Component","m_objects","isGray","inject","oldOnLoad","autoMapping","afteronLoad","oldOnDisable","onDisable","AddEventTrigger","listener","RemoveEventTrigger","offAllCaller","addClick","onClickFunName","eventHandler","CC_Component","js","getClassName","info","LinkPrefab","ToggleContainer","PageView","FrameAnimation","ListView","_step","_iterator","_createForOfIteratorHelperLoose","done","_findInChildren","childrenCount","tmp","setSpriteFrame","_sp","bundle","gray","spf","getRes","SpriteFrame","spriteFrame","setGray","setSpriteFrameNotInBattle","setSpriteUrl","rawsize","assetManager","loadAny","tex","texture","GetGameObject","refind","has","GetSkeleton","GetSprite","GetText","GetProgressBar","GetButton","GetInputField","GetSlider","Slider","SetText","TextID","SetInputText","SetProgressBar","resetData","thisA","_map","resAssigns","resAssign","raw","ConfigLoadManager","GetConfig","keyMap","_k","RegExp","arrayData","keyVs","oneData","PushUrls","_constructor","_constructor2","Utf8ArrayToStr","LoadConfig","completed","loaded","loadBundle","urlsLoad","BufferAsset","assets","zb","by","releaseAll","asset","warn","ConfigFileType","myConfigInfos","myConfig","allLoadedCallBack","isLoginResult","baseDir","cdnMapSrc","json","check_all_loaded","OBJ","List","loadAll","jsonData","fileType","getConfigFileType","getLoadResult","SetStartValue","changeObjToPointArray","arrs","test","ConstantPoxy","_0","_1","_2","_3","_4","_5","_6","_7","Get","config","des","TypeInt","TypeIntArray","TypeFloat","TypeFloatArray","TypeString","TypeStringArray","TypeListInt","OpCode","isCreating","canChusheng","isFrist","myBuild","isCanCreate","showNewGebolin","SoundManager","playEffectMusic","gebulin","gebolinLayer","showOpen","onCunzhaungCLick","DamageLabelViewComp","Animation","resume","hit","putong","miss","iskill","damageType","DamageType","Block","Critical","storageName","DataManager","RegisterCtor","defaultV","propertyKey","_Singleton","_userUid","_reUserUid","_accessToken","_sessionId","_channelType","_first","set_value","valueList","userUid","reUserUid","sessionId","channelType","first","Singleton","dataBuff","_allBuff","_heroBuff","_allArmyBuff","_zhanShiBuff","_faShiBuff","_ciKeBuff","_paoShouBuff","_heroSkillCdSub","buffEffect","_atkValue","_defValue","_hpValue","_atkRate","_defRate","_hpRate","_hurtRate","_skillHurtRate","_baoJiRate","_baoJiHurtRate","_mingZhongRate","_zhiLiaoRate","_deHurtRate","_deBaoJiRate","_deShanBiRate","_deJianLiaoRate","storageGet","storageSet","dataMap","ctor","storageName2ctorMap","ctorName2storageNameMap","GetDataRecorder","LocalStorage","proxy","Clear","removeItem","Save","dp","dirty","ClearDirty","BaseData","_DataProxy","DataProxy","_proxy","_dirty","__dirtyInvoker","Proxy","baseData","dirtyInvoker","_error","ownKeys","toJSON","constructor","_gmServerId","_showName","_serverIp","_serverPort","_serverStatus","_serverNum","gmServerId","showName","serverIp","serverPort","serverStatus","serverNum","_defaultServer","_allServerList","_selectServer","allServerList","_unitUID","_unitUIDStr","_nick","_nickChangeTime","_nth","_userId","_resId","_frameId","_gold","_coin","_diamond","_magic","_call","_challenge","_passId","_star","_power","up_data","nickName","nickChangeTime","userId","nth","resId","frameId","star","coin","diamond","magic","challenge","power","isNew","showGuide","getBundle","loadResource","mapSource","loadDir","SEVER_CHANGE_PASS","OPEN_ADVANCESHOW_UI","unitUIDStr","nick","s1052","DaySevenProxy","SevenProcessList","processInfo","SevenTaskList","taskInfo","SevenJiDu","SevenEndTime","UPDATE_MAIN_DAYSEVEN_CHANGE","REFRESH_DAYSEVEN_UI","REFRESH_DAYSEVENLEIJI_UI","s1053","SendC1052","s1054","InitSevenTaskAllConfig","InitSevenTaskConfig","InitSevenProcessConfig","SevenTaskDataList","SevenTaskDataConfig","GetSevenTaskDatasByDay","day","seventask","SevenProcessDataList","SevenProcessDataConfig","SendC1053","c1053","SendC1054","taskId","c1054","itemNum","jump_id","lan_task","ay_task","ay_taskNum","DaySevenUI","activiData","CurrentDay","LeiJiDay","last","prfablist","box","prfabbox","prfabitem","SetIndexDayContent","serverReward","HeroTipsUI","Panle_item","RefreshDaySevenUI","ShowLeiJiReward","times","RetunDaySevenTimeDay","daysevenlist","SortSevenList","Layout_list","sevendata","p_task","Label_listdec","newContent","ProgressBars","ProgressBar_list","now_content","max_content","Button_go","bindClickGoEvent","sevenlist","state1","state2","Layout_box","Button_box","Sprite_boxwait","Sprite_boxopen","Sprite_boxover","openboxSkeleton","bindClickWaitEvent","bindClickOpenEvent","ProgressBar_leiji","lastdata","Label_boxbing","Label_jindu","ShowDayDownTime","bindClickToggleEvent","CallOnclickToggle","taskid","taskids","CallOnclickGo","jumpid","Label_lasttime","ShowDaySevenTimeLabel","CallOnclickOpenBox","indexs","CallOnclickWaitBox","ShowBoxDec","signtotalConfig","signtotalServer","bindClickDayChildEvent","itemID","CallOnclickChildItem","DaySignUI","SignDayaData","day1","todaySign","day2","rewardDay2","signtotalList","prfabday","itembing","prfabitembing","e_ui_daysignui_bi","SignProxy","SendC1023","SendC1022","UPDATE_SIGN_UI","UpdateSignUI","SignDayaServerData","signdayList","SignDayDataList","Label_tips","Label_daylj","Layout_day","Label_daybig","Layout_itembing","Button_itembing","Sprite_itembingkuang","Sprite_itembing","temid","Sprite_dayover","Button_days","Button_day","leiNum","SignTotalDataList","currentday","SendC1024","signtotal","_i4","_Array$from3","_Array$from3$_i","DayTaskBuyUI","costNum","NotEnouthCostNum","CoinType","xingzhuan","sendChange","ClosePoup","TongXingProxy","SendC1060","DayTaskUI","currentid","TongXingServerData","tongxingdata","GetTongXingDataById","iconsmall","Label_buy","cost","ay_rewards","Sprite_itemkaung","tongXingInfoData","CurrentJiFen","MaxJiFen","panelindex","PanleNodes","ToggleNodes","timePassCallback","prefabpass","task","prefabtask","taskitem","prefabtaskitem","taskjifen","prefabtaskjifen","showPanel","Toggle_day","Panle_task","Toggle_pass","Panle_pass","ShowBoxsDec","SendC1056","REFRESH_TONGXINGZHENG_UI","UpDataDayTask","InItShowPanel","tog","isCheck","toggledata","ShowPassDownTime","endTime","Label_passtime","ShowDaySevenTime","Label_tasktime","ShowPassPanel","ShowTaskPanel","tasklist","SortTaskList","Layout_task","p_tx_task","taskconfig","GetTongXingTaskById","txScore","second","lock","isBuy","Button_share","isAd","bindClickTaskGetEvent","ProgressBar_task","dayExp","taskrewardlist","dayRewardList","Layout_taskitem","Process","TongXingProcessDataList","Button_taskitem","Sprite_taskitemkuang","Sprite_taskitem","Label_taskitem","Sprite_kelingqu","db","bindClickTaskGetRewardEvent","Layout_taskjifen","GetCurrenTyLvExpByLv","Label_lock","Sprite_passicon","iconbing","Button_buy","passlist","GetCurrenTypeList","Layout_pass","TongXingLv","Button_letf","kv_rewards1","Sprite_itemkuangleft","Sprite_itemleft","Sprite_lingquleft","Sprite_yilingquleft","IsGetRewardPT","itemgjid","itemgjnum","Button_right","kv_rewards2","itemgjdata","Sprite_itemkuangright","gjdb","Sprite_itemright","Sprite_lingquright","Sprite_yilingquright","IsGetRewardGJ","center","ProgressBar_passlv","lcokcenter","bindClickGetLeftRewardEvent","bindClickGetRightRewardEvent","aa","bb","CallOnclickGetPutonReward","levels","SendC1059","CallOnclickGetGaojiReward","CallOnclickTaskJLGetReward","CallOnclickTaskGetReward","SendC1058","DebugViewRuntimeControl","_single","strSingle","strComposite","strMisc","compositeModeToggleList","singleModeToggleList","miscModeToggleList","textComponentList","labelComponentList","textContentList","hideButtonLabel","_currentColorIndex","strColor","WHITE","BLACK","RED","GREEN","BLUE","Canvas","uiTransform","halfScreenWidth","halfScreenHeight","miscNode","buttonNode","titleNode","newLabel","EnableAllCompositeModeButton","labelComponent","overflow","currentRow","newNode","singleModeToggle","textComponent","TOGGLE","toggleSingleMode","CLICK","enableAllCompositeMode","changeColorButton","changeTextColor","HideButton","hideUI","compositeModeToggle","toggleLightingWithAlbedo","toggleCSMColoration","toggleCompositeMode","isTextMatched","textUI","textDescription","tempText","findIndex","search","debugView","root","singleMode","enableCompositeMode","lightingWithAlbedo","csmLayerColoration","button","toggleComponent","activeValue","deltaTime","DesMg","encode","bytes","utf8Encode","encode_base","decode","decode_base","utf8Decode","isDes","chr1","chr2","chr3","enc1","enc2","enc3","enc4","_keyStr","c3","EditorAsset","assetType","Promise","EffectFinishedRelease","maxDuration","onEnable","skeletonJson","animations","onRecovery","nd","spine2","anims","_animator$defaultClip","aniName","defaultClip","aniState","getState","ParticleSystem","particle","EffectEvent","Put","EffectData","_speed","effects_use","onHandler","params","resolve","reject","prefab","_unused","preLoad","_callee2","_context2","np","NodePool","createPrefabNode","setSpeed","timeScale","simulationSpeed","_instance","EncryptIntNumber","_values","_index","_arraySize","_isInited","MAX_SAFE_INTEGER","wx","EnterUI","isOPen","isCoontServer","isLoginend","btn_wx_auth","bundles","resources","getDirWithPath","lbl_versionstring","decstring","LocalVersion","envVersion","getSystemInfoSync","SDKVersion","logoAni","changeUi","bossCome","storyPrefab","StoryUIViewComp","MainUI","then","LOGIN_OVER_LOAD_MAP","showModal","confirm","clearStorage","game","restart","EntityPoxy","_8","_9","_10","_11","_12","_13","_14","_15","_16","_17","_18","_19","_20","_21","_22","_23","_24","_25","_26","_27","_28","_29","_30","_31","_32","_33","_34","_35","_36","_37","_38","ID","Desc","NameId","DescId","Type","FxOffset","FxSpawnAlertScale","MatResourceId","Scale","drop_id","ColliderRadius","NavmeshPriority","ThroughWall","MaxHp","Ap","MoveSpeed","MoveSpeedLimit","Mass","WeaponId","FirePosOffset","SpinId","spineskin","ControllerId","ControllerParam","ComponentParam","Remote","IdleStartIndex","IdleEndIndex","DeathStartIndex","DeathEndIndex","OnDeathWeaponId","JellyRate","DeadTime","BlockID","BlockCount","UnlockZBetweenBossAndPlayer","BlockRange1","BlockRange2","DeathSoundId","FightMapEnum","PveTypeEnum","EquiptDecUI","heroequipserver","citiaoList","bufflist","prefabputong","teshu","prefabteshu","GotHeroEquipByPos","GetHeroEquipByID","eqId","icon_item","SoldierEquipProxy","GetSoldierEquipKuang","GetHeroEquipNameByHeroId","equipId","ShowRenYiItemList","Layout_putong","Label_numpt","Layout_teshu","equipbuffdata","GotBuffColorName","Laya_Event","EMPTY","MOUSE_DOWN","MOUSE_UP","RIGHT_MOUSE_DOWN","RIGHT_MOUSE_UP","RIGHT_CLICK","MOUSE_MOVE","MOUSE_OVER","MOUSE_OUT","MOUSE_WHEEL","ROLL_OVER","ROLL_OUT","DOUBLE_CLICK","CHANGE","CHANGED","RESIZE","ADDED","REMOVED","DISPLAY","UNDISPLAY","ERROR","COMPLETE","LOADED","READY","PROGRESS","INPUT","RENDER","OPEN","MESSAGE","CLOSE","KEY_DOWN","KEY_PRESS","KEY_UP","FRAME","DRAG_START","DRAG_MOVE","DRAG_END","ENTER","SELECT","BLUR","FOCUS","VISIBILITY_CHANGE","FOCUS_CHANGE","PLAYED","PAUSED","STOPPED","START","END","COMPONENT_ADDED","COMPONENT_REMOVED","RELEASED","LINK","LABEL","FULL_SCREEN_CHANGE","DEVICE_LOST","TRANSFORM_CHANGED","ANIMATION_CHANGED","TRAIL_FILTER_CHANGE","TRIGGER_ENTER","TRIGGER_STAY","TRIGGER_EXIT","_Handler","caller","method","once","recover","_id","_pool","create","setTo","Handler","EventDispatcher","_events","_proto2","hasListener","listeners","run","runWith","_createListener","offBefore","events","onceOnly","offAll","_recoverHandlers","isMouseEvent","MOUSE_EVENTS","ed","HasListener","inst","TextMeshPro","Example1","_fScale","_xOffset","_initPos","anim1","anim3","text2","getPosVertices","anim2","_anim","TmpUtils","waitCmpt","text1","updateRenderData","setVisible","updateCall","isVisible","copy","clone","delta","multiplyScalar","setPosVertices","onUpdate","delegateYield","t0","_anim2","_context4","text3","_context3","getColorExtraVertices","setColorExtraVertices","s1029","FestivalTimeProxy","FestivalGiftList","giftList","AD_FEST_REWARD_SHOW","FestivalTimeUI","UPDATE_FESTIVALTIME_UI","s1030","ChuFaGiftDataList","ChuFaGiftDataConfig","SendC1029","SendC1030","SendC1031","chaozhi","giftData","timeCardCallback","timeSuperCardCallback","onBuyClick","UpdateFestivalUI","ShowGiftTime","ShowTimeLabelNumberAll","fest","Label_zhekou","ScrollView_Toggle","Sprite_herositemkuang","Sprite_herositem","ToggleGroup_Toggle","itemNode1","Toggle_one","libao","onBtnClick","Checkmark_one","lightNode","currentTarget","BuySuccessSend","executeInEditMode","requireComponent","FitUIPlatform","FitUIOrientation","IsH","orientation","HORIZONTAL","IsV","VERTICAL","Widget","displayName","Enum","visible","FitUI","applySettings","view","getVisibleSize","nPlatform","tSize","updateFitStrategy","aRule","top","iRule","iTop","iLeft","iRight","iBottom","oRule","oTop","oLeft","oRight","oBottom","Platform","ANDROID","fitPhone","IOS","os","OS","rule","liuhaiHeight","bottomHeight","updateWidget","widget","fitWidth","fitHeight","OTHER","CCInteger","_frameRate","_isPlaying","_currentFrame","_startFrame","_endFrame","_totalFrames","_loopCount","_loops","image","frames","_cacheAnimations","createAnimation","setAnimations","cache","startFrame","loopCount","animate","onTimer","gotoAndStop","frame","offsetX","offsetY","UPDATE","nextFrame","prevFrame","isPlaying","Fsm","debug","debugStyle","owner","currentState","currentStateTime","states","Create","fsm","stateName","_OnInit","Start","startState","GetState","Error","FsmStatenNameMap","GetStateNameByType","OnEnter","HasState","stateType","ChangeState","actived","OnLeave","ClearTags","_len2","_key2","ExitCurrentState","GetAllStates","OnUpdate","Destroy","OnDestroy","HasData","GetData","SetData","RemoveData","FsmBase","elapseSeconds","FsmManager","fsms","CreateFsm","RemoveFsm","newConstructor","RegisterState","_IFsmState","FsmState","taskTag","OnInit","AddTaskTag","tagName","FlagTaskDone","CheckTaskIsDone","CheckAllTaskDone","finishTask","taskName","_this$fsm","Owner","IFsmState","stateNames","stateTypes","IsStateInstance","s1623","FuBenExpPoxy","SendC1624","s1624","p_fubenList","fuben_info","UPDATE_LOADFUBEN_UI","UPDATE_LOADFUBENDEC_UI","InitFuBenExpConfig","fuBenExpList","GetFuBenExpByID","GetFuBenExpListByFuBenID","fubenid","fubenID","GetFuBenExpByIdAndExp","Lv","GetFuBenReward","kv_reward5","SendC1623","hp1","kv_reward1","hp2","kv_reward2","hp3","kv_reward3","hp4","kv_reward4","hp5","FuBenTageType","s1621","OPEN_PVE_FIGHT_MAP","s1622","COPY_END_SHOW_REWARD","s1651","XiaoTouPoxy","GetXiaoTouById","FuBenProxy","_thiefId","_thiefEndTime","thiefMaxClick","clickMax","thiefHaveClick","click","thiefOnceReward","goldClick","thiefIsOpen","THIEF_ACTIVE_TYPE_CHANGE","s1652","thiefThisReward","THIEF_CLICK_REWARD_CHANGE","FuBenDataList","_thiefIsOpen","_thiefMaxClick","_thiefHaveClick","_thiefOnceReward","_thiefThisReward","GetFubenById","SendC1652","advert","fubenType","fubenExpId","openType","FuBenSoldiersPoxy","village","FuhuoFloorViewComp","fuhuo","FuhuoTopViewComp","posArr","heroId","playEnd","showHero","initHero","pId","szHeros","GetSeverHeroByUId","localId","hero","setHeroId","FunctionCfgPoxy","unlock_type","unlock_lv","unlock_condition","functionLanguageId","lockLanguageId","unlock_show","target_node","resrouceName","FunctionOpenData","ShowLevelUpUI","function_open","checkShowAni","_int","s1050","s1051","idList","InitFunctionForetellConfig","PayInfoDataConfig","GetFunctionDataByType","GetFunctionDataByLevelID","FunctionDataLists","GetFuntionIsOpen","funkey","OpenAdvanceShowUI","unlock","UPDATE_MAIN_FUNTION_CHANGE","main_type","ccenum","tooltip","Event_TriggerEnter","Event_TriggerStay","Event_TriggerExit","collider","CircleCollider2D","Contact2DType","BEGIN_CONTACT","END_CONTACT","onCollisionExit","onTrigger","onTriggerEnter","onTriggerStay","onTriggerExit","LAN","GameConfigHelper","getZh","Language_WnTJTKPoxy","strId","zh","languageMap","FunctionOpenCheck","funcid","closeHide","GameManager","isCloseVersion","FunctionClick","showmsg","_this$FunctionOpenChe","_language","conifg","UsePauseRef","UseNeighborCheck","BundleUI","BundleTextures","BundleTrail","killcount_offset","LoadingWin","preload","背景","LoadingKefuWin","最顶顶层","WebLoadingUI","HeroUI","弹窗","ShopUI","SoldiersUI","MainBuffUI","HeroEquiptUI","LoadUI","LoadFbenDecUI","三级弹窗","LoadFbenUI","二级弹窗","MoonCardUI","RandomAdvertUI","WelfareUI","TaskUI","TitleUI","标题","LoadFbenLoseUI","LoadFbenWinUI","Herodec","ShopSoldiersTipsUI","SoldiersEquiptGetUI","HeroScreenUI","HeroEquiptAutoUI","HeroEquiptContrastUI","HeroEquiptUpUI","SoldiersEquiptQhUI","SoldiersEquiptTipsUI","HeroTexingUI","SkillUI","PowerUI","KingUI","KingInfoUI","KingDressUI","KingDressDecUI","KingSetUI","MailUI","MailDecUI","KingSignInUI","KingSexUI","KingNameUI","KingAccountUI","KingNoticeUI","ServerListUI","KingCdkUI","KingCustomerUI","E_VIDEO_STATE","EBATTLE_MODE","macro","CLEANUP_IMAGE_CACHE","DynamicAtlasManager","maxFrameSize","Game","EVENT_ENGINE_INITED","MapViewComp","Camera","flowObj","isShowSplash","frameCount","frameTimer","updateAlignment","container","PoolManager","ResClean","register","NetManager","getShareList","WECHAT_GAME","checkUpdata","onGameShow","onGameHide","onShareAppMessage","shareList","imageUrl","iconPath","query","user","Userid","showShareMenu","menus","withShareTicket","getLaunchOptionsSync","scene","pixelRatio","windowWidth","windowHeight","language","version","systemInfo","EVENT_SHOW","EVENT_HIDE","GameLauchState","GameLoaingState","GamePreloadState","GameMainState","fms","ShowSplash","splash","splashBgNode","timer","DestroySplash","XxxEventReport","sendEvent","GameShow","GameHide","_update","getUpdateManager","onCheckForUpdate","hasUpdate","onUpdateReady","applyUpdate","showToast","onUpdateFailed","add_state_map","_FsmState","frameLoop","loadingData","offline","splashed","RouteUser","initWebSocket","worker","mode","releaseAssetByName","LONG","checkFunctionOpen","HTTP_TIME_OUT","onHttpTimeOut","_checkFunctionOpen","mpage","GM_Mode","Deading","shareList2","ServerVersion","payImgList","WeCom","Mp","Kefu","DailyChallengeScale","DailyGoldScale","workerOpen","needLerpView","battleSpeedCD","checkCD","checkAp","checkHp","skipVersionCheck","ModelUser","offServTimestap","Timer","YuEUI","yue","ShowDamage","blacklist","compareVersion","TimeSyn","ServTimestap","NowSecond","setUserDate","equips","accessorys","activity_info","heroList","heroMatList","Int","ITEM_COUNT_CHANGE","frameOnce","mapInit","eventLoad","gameTime","attTypeArr","miulAtk","gameMapId","jinzhanPointIndex","jinzhanPointArr","yuanchengPointIndex","yuanchengPointArr","heroJinzhanPointIndex","heroJinzhanPointArr","heroYuanchengPointIndex","heroYuanchengPointArr","_loadResource","_isInCopy","_transPveData","_equipArr","_serverTime","bossInTime","fuhuoTime","fuhuoMap","fuhuoPreArr","shakeCameraTime","shakeCameraOff","_dieGebolin","_heroFight","_copyHeroFight","_nowGebolinNum","_newGebolinNum","_overGebolinNum","_dieGebolinNum","_newWordChat","_newSysChat","_jumpGuide","_bossComeTime","isWeb","_cdnMapSrc","vm","gameAtt","restData","fuhuoHero","FUHUO_WUJIANG_CHANGE","initAtt","None","EndValue","showNewGuanqia","jumpmap","LoadingUiComp","CHANGE_REMOVE_MAIN_UI","CHANGE_NEW_PASS","getEquipByType","equipArr","armyType","switchServer","loadSubpackage","bundleName","GameUtil","getAllFightSoldiers","soldier","GebolinAiComp","Dead","Chusheng","onLive","addKaijia","addMaozi","liveJianzhu","FindBoss","addFindBoss","ToBoss","addToboss","haveNextPoint","Rest","toRest","ToRest","walkMore","addFindCopyBoss","addCopyFight","buildArr","showToWuqi","selfBuild","Move","getPoint","movePlayer","showToKaijia","showMyHp","showToMaozi","Nil","minX","maxX","minY","mx","point","fightPoint","v3Point","showIndex","_this6","maps","pos_combatPoint","offSpine","pos_archerPoint","_this7","toAStarPoint","_this8","showTalk","GebolinHpViewComp","GebolinModle","_soldier","isChange","havehp","typeBuff","allBuff","allArmyBuff","zhanShiBuff","faShiBuff","ciKeBuff","paoShouBuff","hpView","_fightPoint","_allZhuangPei","_gebolinType","_soldiersID","gebolinAi","_AiType","_selfBuild","_equipNum","isOffSpine","_p_bat_army","rolePath","isResPoint","Friend","GeBuLin","offPos","offNode","offx","offy","hpPre","myPos","hpLayer","maintitle","MainTitlePoxy","getTitleById","ay_hp","changeSharePoint","changeHpPoint","yifuSprite","maoziSprite","lib","wearWuqi","wearKaijia","wearMaozi","wearAll","equipData","wearWq","equip","GetSoldiersEquipByID","skinArr","modelName","nowAdd","findSlot","setToSetupPose","wearKj","wearHat","resPoint","COPY_GEBOLIN_DEAD","fangxiangNode","fangxiang","showJiTui","skillEff","toY1","toY2","off1","charactor","SoldierProxy","GetSoldiersDataByID","msgId","LanguageProxy","GetMsgByLanAndId","GetMsgAndArgs","GetMsgByLanAndStr","aKey","aValue","rObj","aParam","ParamArrs","ParamLan","ParamDict","ParamDictArr","ParamDictes","ParamV3","aObj","lanID","includes","trim","endsWith","sArr","strsValue","strtmp","zero","xValue","yValue","zValue","vArr","nodename","buttonName","TipsPoxy","TipsSlots","InitTipsConfig","Ber_ui","bs","BoxStyle7","Aft_ui","BoxStyle9","lan_Title","lan_Content","style","BoxStyle1","BoxStyle2","BoxStyle8","ShowBox5","languageid","ischoose","oldertime","ShowNotEnougthNumber","needNum","goodid","callback1","callback2","spendItemName","buyGoodName","enougth","shopdata","ShopProxy","GetShopDataByID","zuanshi","jinbi","buy","needNumstring","itemnumstring","strings","shoptype","ShopGoodType","zhuanshi","shopGoodType","JumpShop","ShopUiType","money","OpenTitlePoup","ui","TitleProxy","InitConfigJson","InitItemConfig","InitlanguageConfig","InitTitleConfig","InitHeroConfig","InitSoldiersConfig","SkillProxy","InitSkillsConfig","HeroCaoProxy","InitHeroCaoConfig","HeroTuJianProxy","InitWordMapConfig","InitHeroExpConfig","InitSoldiersEquipConfig","InitSoldiersEquipUpConfig","InitSoldiersShopConfig","InItPassConfig","SoldierTuJianProxy","InitSoldierConfig","InitVillageConfig","InitHeroEquipConfig","InitHeroEquipUpConfig","InitHeroEquipBuffConfig","InitShopConfig","PayInfoProxy","InitSignDayConfig","InitSignTotalConfig","MainBuffProxy","InitZhuFuConfig","InitTaskConfig","InitJumpConfig","LosePoxy","InitLostConfig","InitLostJumpConfig","KingDressProxy","InitClothesConfig","GuidePoxy","InitGuideConfig","GuideSubStepPoxy","InitGuideSubStepConfig","StoryPoxy","InitStoryConfig","KingCustomerProxy","InitiCustomerConfig","InitTongXingAllConfig","InitSendAgreementToSence","SendC1100","SendC1102","SoundEffectsConfigPoxy","InitSoundEffectsConfigConfig","SoundPoxy","InitSendAgreementToUI","SendC1400All","SendC1200","SendC1220","SendC1025","SendC1212","yingxiong","SendC1500","SendC1403","KingInfoProxy","SendC1008","bundChildFile","ass","SetSpriteSoldierFrame","SetSpriteHeadFrame","SetSpriteFramByAtlas","atlaspath","fileName","atlas","atlass","number","SIZE_UNITS","unitIndex","numbers","bufftype","HeroDec","gongji","fangyu","xueliang","GotHeroEquipBuffDec","values","getAyToNumber","InItLayoutPostion","GetRandowNumber","min","LanguageIsChina","GetCurrentLanguage","ShowMonyDec","payid","payinfodata","GetPayInfoDataByID","costMoney","OScostMoney","GetLayerToSome","CloseALlLayer","IsExistMainLayer","IsNowInMainUILayer","IsLogin","GlobalScopeValues","gs","GlobalScope","HollowOutPlus","ModeBase","TestData","LayerManager","DevTools","Http","LongTouchComponent","WorkerEntity","HalfFloatUtils","LayaTimer","SharedByteUtils","SwitchButton","HotFixManager","MessageBox","RouteSystem","HollowOut","LoadingIcon","RotateMoveUV","Scope","SmartConfig","ServerListWin","GmView","onGuaQiaClick","guanqiaLabel","onJinbiClick","onZuanshiClick","itemCfg","itemIcon","itemKuang","GuideLayer","fire","bigId","smallId","guide","guideStep","story","guideNode","isInMap","getGuideById","getGuideSubStepById","isCloseAll","guideEvent","onGuideEvent","storyID","getStoryById","showLabel","showHanld","labelNode","typeDialog","lan_dec","leftRoleLabel","leftRolecircle","leftRole","rightRole","rightRoleLabel","rightRolecircle","hanldNode","typeStr","keyType","maskNode","getStringArrToNum","setContentSize","typeNum","fingerType","rightNode","leftNode","buildPosID","camera","floorLayer","ay_key","maskShade","showNextGuide","stepArr","ay_stepsID","SendC1037","guideId","jumpGuide","strLabel","onDesClick","lastId","s1038","guideIDs","severGuideIds","_severGuideIds","_cfgGuideIds","_myLastGuideIds","_openGuideList","_isInGuide","_waitSmallId","guideLayer","_nowGuideId","_guideTaskId","uiOpenEvent_1007","uiOpenEvent_1008","uiOpenEvent_1011","uiOpenEvent_1012","uiOpenEvent_3003","uiOpenEvent_3004","uiOpenEvent_4004","uiOpenEvent_4005","uiOpenEvent_4006","uiOpenEvent_5003","uiOpenEvent_5005","uiOpenEvent_5006","uiOpenEvent_9003","uiOpenEvent_9004","uiOpenEvent_10002","uiOpenEvent_10003","uiOpenEvent_10004","uiOpenEvent_10006","uiOpenEvent_10008","uiOpenEvent_10009","uiOpenEvent_10010","uiOpenEvent_10011","openGuideList","initGuideData","addAllCfg","addAllGuide","haveIds","openIds","myLastGuideIds","isOpenGuide","allIds","showNowGuide","justGuide","nowSmallId","showSmallGuide","mapOrUi","uiOpenEvent","isMainUiNode","getWin","keyName","triggerType","guideTaskId","cfgGuideIds","bigIds","smallIds","numArr","isAllClose","GUIDE_TS_10001","GUIDE_TS_10003","GUIDE_TS_10007","closeAllGuide","guideID","GuideMaps","Guideitem","GuideSubStepMaps","GuideSubStepitem","stepsID","fingerSize","__init__","_baseTable","_shiftTable","_mantissaTable","_exponentTable","_offsetTable","roundToFloat16Bits","_floatView","_uint32View","convertToNumber","float16bits","_buffer","_gid","HeroAiComp","ToFight","toFight","toCopyFight","ToMove","bulletmodel","pos_heroCombatPoint","pos_heroArcherPoint","shengxiaoFanwei","showCd","COPY_HERO_BEGIN_SKILL","InitHeroAttributeConfig","HeroAttributeDataConfigList","HeroDataConfig","HeroCaoDataList","HeroCaoDataConfig","unlocklevel","needkey","Herop_buff","SetBuFfMaps","ShowAllHeroBuffList","s1105","refresh","ReFreshHeroEquipType","UPDATE_MAKEHEROEQUIP_POUP","ReFreshHeroEquipContrast","UPDATE_HEROEQUIPLIST_POUP","UPDATE_HEROEQUIPCONTRAST_POUP","isAutioMakeEquip","SHOW_AUTOMAKE_EQUIP","UPDATE_HEROEQUIPUP_UI","s1106","SendC1105","s1107","SHOW_GLODJINGYAN_REFRESH","s1108","s1109","s1110","s1111","chooseEquipColor","isCheckEquipRenYiFirst","isCheckEquipRenYiSecond","chooseEquipRenYi1","chooseEquipRenYi2","chooseEquipRenYi3","chooseEquipRenYi4","HeroEquipConfigList","HeroEquipConfig","GetHeroEquipIconByTypeAndColor","heroEquipData","heroEquipName","HeroEquipColor","bai","lan","zi","cheng","hong","GetHeroEquipColorName","HeroEquipBuffConfigList","HeroEquipBuffConfig","libraryid","InitHeroEquipExpConfig","HeroEquipExpConfigList","HeroEquipExpConfig","HeroEquipUpConfigList","HeroEquipUpConfig","GetHeroEquipUpByLvID","GetHeroEquipUpIconById","upId","GetHeroEquipUpNameById","GetHeroEquipUpPinZhiValueById","white","green","blue","purple","orange","red","SendC1106","SendC1107","SendC1108","SendC1109","SendC1110","SendC1111","lastequip","GotHeroEquipByType","heroequip","sellExp","silverCoin","HeroEquipType","upNum","Toggle_decone","Toggle_dectwo","pinzhixz","prefabpzitem","Label_pinzhi","Sprite_pingzhifxup","Sprite_pingzhifxdown","sxxz1","prefabsxxz1","Label_sxone","Sprite_sxoneup","Sprite_sxonedown","sxxz2","prefabsxxz2","Label_sxtwo","Sprite_sxtwoup","Sprite_sxtwodown","sxxz3","prefabsxxz3","Label_sxthr","Sprite_sxthrup","Sprite_sxthrdown","sxxz4","prefabsxxz4","Label_sxfour","Sprite_sxfourup","Sprite_sxfourdown","SetPinZhi","Panle_pinzhixz","SetPinZhiOne","ScrollView_sxxz1","SetPinZhiTwo","ScrollView_sxxz2","SetPinZhiThr","ScrollView_sxxz3","SetPinZhiFour","ScrollView_sxxz4","SaveHeroEquipInFo","InitHeroEquipInfo","Layout_pinzhixz","colorName","Button_pinzhixz","Sprite_sxxz","bindClickColorEvent","Layout_sxxz1","bindClickRenYiOneEvent","Layout_sxxz2","bindClickRenYiTwoEvent","Layout_sxxz3","bindClickRenYiThrEvent","Layout_sxxz4","bindClickRenYiFourEvent","CallOnclickColor","nodeitem","colorType","choose","CallOnclickRenYiOne","CallOnclickRenYiTwo","CallOnclickRenYiThr","CallOnclickRenYiFour","_dec20","_dec21","_dec22","_dec23","_dec24","_dec25","_dec26","isCheckOnClickSell","dzHeroEquipData","dzheroEquipConfig","chuanDaiHeroEquipData","chuanDaiHeroEquipConfig","buffcdlist","decp","prefabdecp","dects","prefabdects","decptleft","prefabdecptleft","dectsleft","prefabdectsleft","_descriptor19","_descriptor20","_descriptor21","_descriptor22","_descriptor23","decptright","prefabdecptright","_descriptor24","_descriptor25","dectsright","prefabdectsright","SHOW_MAKEHEROEQUIP_POUP","guideEvent_9004","UpdateHeroEquipContrast","cdHeroEquipdata","one","pk","ShowPKInfo","ShowOneInfo","cdEquipData","Label_itemlvleft","Label_itemnameleft","Label_powerleft","Sprite_powerupleft","icon_itemleft","citiaoptList","Layout_decptleft","Layout_dectsleft","Label_decpt","GetRightCitiaoValue","Label_itemlvright","Label_itemnameright","Label_powerright","icon_itemright","citiaorighrList","Layout_decptright","Layout_dectsright","citiaoid","leftcitiao","rightcitiao","Label_itemlv","Label_power","Layout_decpt","p_heroequip","Sprite_cubewait","Sprite_cubeopen","e_ui_heroequiptui_waitshow","e_ui_heroequiptui_open","waitSkeleton","openSkeleton","Sprite_cubeitem","e_ui_titleui_glodexp","showHeroEquipDec","guideEvent_9003","UpdateHeroEquip","UpDataMakeHeroEquip","ShowMakeHeroEquip","ShowPlayGlodAnimatin","AutoMakeEquip","Sprite_sell","Button_cube","showNomalHeroEquipList","showEspeciallyHeroEquipList","GoONMakeEquip","IsExieBuff","citiaodata","heroequipcoing","GetEquipOpenSkeleton","Label_cube","Sprite_equip","GetEquipWaitSkeleton","Label_chuzhi","Button_putong","not_pt","yes_pt","bindClickPTEquipEvent","Sprite_kuangpt","yes_Sprite_pt","Label_ptlv","spriteColor","not_spritept","spriteicon","CallOnclickPtEquip","_dec27","_dec28","_dec29","_dec30","_dec31","_dec32","heroequipUpData","prefablist","listlistmax","prefablistmax","_descriptor26","_descriptor27","_descriptor28","_descriptor29","_descriptor30","_descriptor31","lasttime","adNum","ShowAll","showHeroEquipUpInfo","showHeroEquipUpList","Button_up","Button_speed","interactable","Label_itme","Button_advert","Label_advert","adMaxNum","vlColor","Label_money","Label_ber","Label_aft","IsTimeOver","three","four","Label_uptime","ShowminutesTime","ProgressBar_threeone","ProgressBar_threetwo","ProgressBar_threethr","ProgressBar_fourone","ProgressBar_fourtwo","ProgressBar_fourthr","ProgressBar_fourfor","SetCountDownTime","Label_bermax","showHeroEquipUpMaxList","timestamp","targetTime","currentStage","Sprite_list","Sprite_listicon","label_aftstring","Layout_listmax","HeroExpMaps","HeroExpDataConfig","GetHeroExpDataBylv","HeroLv","heroColor","HeroExpData","expType","Color1","exp1","Color2","exp2","Color3","exp3","Color4","exp4","Color5","exp5","Color6","exp6","GetHeroExpMaxlv","HeroModle","_hero","Hero","idSkill1","s1017","powerOld","powerNew","Power","olderPower","newerPower","src","s1100","herolist","SendC1103","GEBOLIN_ATT_CHANGE","s1101","s1102","HERO_LIST_CHANG","s1103","s1104","HeroScreenMaps","HeroDataConfigList","colorpzdb","GetHeroPzKuangByColor","heroPinColor","colordj","GetHeroTxdjByColor","colortxdj","herotype","GetUnLevelByIdAnd","skillid","skillids","idSkill2","unLock2","idSkill3","unLock3","idSkill4","unLock4","idSkill5","unLock5","idSkill6","unLock6","SendC1101","SendC1104","selectList","uid","_step2","_iterator2","HeroIsOnStageByUid","HeroIsOnStageById","HeroOnStageIndex","szdata","HeroDownStageIndex","unLock1","hitEffect","attackDistance","attackSpeed","flySpeed","HeroType","HeroScreenType","HeroRefineProxy","InitHeroRefineConfig","HeroRefineConfigList","HeroRefineConfig","GetHeroRefineByLevel","InitHeroRefineBuffConfig","HeroRefineBuffConfigList","GetHeroRefineBuffString","stringdata","GetHeroRefineBuffByLevel","InitHeroRefineChanceConfig","HeroRefineChanceConfigList","HeroRefineBuffConfig","GetHeroRefineChanceByLevel","InitHeroRefineLibraryConfig","HeroRefineLibraryConfigList","HeroRefineLibraryConfig","HeroRefineLibraryBypzid","pinzhiid","HeroBuffPinZhiBybuffid","heroLibrary","ay_library","xilian_exp","levelup_exp","number_or_percent","bule","yellow","Gradation_purple","pink","modena","ScreenMaps","AllToggleNode","Toggle_yes","Toggle_no","Toggle_c","Toggle_a","Toggle_r","Toggle_s","Toggle_ss","Toggle_sss","Toggle_zz","Toggle_fs","Toggle_shs","Toggle_gc","Toggle_zy","SetHeroScreenValue","togg","ShowPanelToggle","nodechild","togle","prefabsclear","IsOnstage","currentHeroUpItemNum","prefabskill","skeleck","olderTime","newTime","guideEvent_4006","stageIndex","guideEvent_4005","Label_yimanji","Button_exp","Label_heroname","buttonExp","Layout_skill","buffdata","Button_skill","bindClickSkillEvent","yesskill","notskill","Sprite_skill","Label_skill","skilldata","GetSkillDataByID","Sprite_skillzhukuang","Sprite_skillzhu","Label_skillname","Label_skilldec","skilldb","lan_des","ay_params","ProgressBar_lv","Label_lvnum","gettext","Label_get","spacingX","e_ui_hero_up","OnclickSkillItem","skillUiData","SkillUiData","HeroTuJianConfigList","HeroTuJianDataConfig","kv_heroitem","heroTuJianList","currentlevel","currentkey","heros","itemHeroPrefabs","Ceter","Toggle_heros","Toggle_texing","Toggle_jingtong","Toggle_tujian","ModelNodes","ModelBooleans","tujian","itemTuJianPrefabs","Panle_heros","showHeroDec","showHeroPanelInfo","ShowShangZhenHero","ShowTogerPower","InitModelNode","showTeXingPanelInfo","Model1","Model2","Model3","Model4","Model5","Panle_texing","Labe_att","Labe_def","Labe_hp","Label_zhanli","heroCaoList","heroup","heroCaoData","itemNodeChild","heroup_yes","Label_herouplvNode","heroup_no","Label_map","heroup_jiesuo","jiesuolabel","p_hero_sz","bindClickXiaZhenEvent","Label_herouplv","levelid","passdata","worldmapdata","severItem","bindClickJieSuoEvent","InItHeroList","Layout_heros","Label_herosname","Sprite_herosred_vis","Sprite_getno","heroseverdata","herosever","bindClickEvent","bindClickLockHeroEvent","SetHeroListValue","yongyou","weiyongyou","pinzhic","pinzhia","pinzhir","pinzhis","pinzhiss","pinzhisss","zhanshi","fashi","sheshou","SheShou","gongcheng","GongCheng","zhiyu","ZhiYu","CallOnclickJieSuoHero","CallOnclickXiaZhenHero","showTuJianPanelInfo","Layou_tujian","heroTujianData","itemprefab","Button_jihuonot","Button_jihuo","bindClickJiHuoEvent","bindClickJiHuoNotEvent","itemChildNode","CallOnclickHero","guideEvent_4004","CallOnclickLockHero","CallOnclickTJJHHero","CallOnclickTJJHNTHero","heroAi","_pId","cdSkill","_p_bat_hero","Panle_heroskill","initSkillIcon","fightList","copyHeroFight","newNum","skillSprite","ay_heroskill","deadNum","isJinzhan","mubei","MuBeiItemComp","footEffNode","COPY_HERO_DEAD","huishouPoint","ProgressBar_skilltime","_timerDuration","elapsedTime","Label_skilltime","disallowMultiple","executionOrder","HollowOutShape","EffectAsset","DEV","readonly","_shape","Rect","Circle","_CC_Compnent","sprite","material","tweenRes","resetInEditor","_init","_effect","Material","initialize","effectAsset","setMaterialInstance","updateProperties","_center","_width","_height","_feather","circle","_radius","feather","setProperty","getNodeSize","getCenter","getWidth","getHeight","getRound","getFeather","radius","rectTo","circleTo","v2","setNodeSize","sqrt","CC_Compnent","_featherCol","Vec4","_centerV","_tileW","_tileH","getFeatherColor","rimColor","_rimColor","SetHotFixConfig","dataStr","fixCode","versionMap","vers","downloader","loadHotFixRemote","loadHotFix","loadRes","targetCodes","gsv","loadRemote","ext","eventRegx","imageAttrReg","HtmlTextParser","_specialSymbolArray","_stack","_resultObjectArray","htmlString","startIndex","tagEndIndex","tagBeginIndex","lastIndexOf","_processResult","newStr","tagStr","_addToStack","_attributeToObject","attribute","header","nextSpace","eventHanlderString","_processEventHandler","startsWith","isNewLine","text","remainingArgument","rightQuot","tagValue","isValidImageTag","originTagNameLength","toLowerCase","getRightQuotationIndex","isImage","imageHeight","imageWidth","imageAlign","imageOffset","defaultColorGradientObject","lb","rb","lt","rt","colorGradientAttrReg","toLocaleLowerCase","colorGradient","defaultFaceObject","dilate","softness","faceAttrReg","defaultOutlineObject","thickness","outlineAttrReg","outline","defaultUnderlayObject","underlayAttrReg","underlay","defaultGlowObject","inner","outer","glowAttrReg","glow","underline","strikethrough","italic","bold","leftQuot","leftSingleQuot","leftDoubleQuot","useDoubleQuot","eventString","isValidTag","eventNames","eventValue","previousTagObj","_escapeSpecialSymbol","symbolArr","extraUrl","failhandler","xhr","XMLHttpRequest","requestURL","encodeURI","timeout","onload","status","responseText","abort","ontimeout","onabort","onerror","send","post","timeobj","setRequestHeader","token","ver","s1200","setAllPlayerItem","itemList","s1201","upPlayerItem","deletePlayerItem","delIds","s1202","ItemMaps","ItemDataList","ItemDataConfig","itemColor","colorKuang","oldItem","upValues","getAllItems","lan_channels","lan_tips","pItem","Label_itemdec","Label_itemtips","JsonUtil","JsonAsset","message","loadAsync","KeFuLoadingUI","_cc$_decorator","cc","KeFuUI","node_wjq","page_gzh","sp_code_gzh","sp_code_wjq","refreshUI","randomItem","kingCdk","cade","SendCDKEY","chanel","code","secretKey","BusyNetDone","errCode","KingCustomerDataList","CustomerDataConfig","GetCustomerDataByID","customerId","customer","prefabcustomer","Layout_customer","contactUs","bindClickButtonEvent","topic","Label_customer","e_action","jump","CallOnclickCustor","navigator","clipboard","writeText","QQorWeb","vllage","prefabvllage","factory","prefabfactory","ClothesVillageDataList","ClothesFactoryDataList","Village_mybuff","factory_mybuff","Village_mybuffList","factory_mybuffList","GetClothesListByType","ClothesType","chunluo","GetClothesListMoreByType","ay_mybuff","Layout_vllage","Layout_factory","s1012","REFRESH_ROLEID_UI","pic_id","REFRESH_ROLE_UI","REFRESH_KINGIMG_UI","UPDATE_MAIN_HREADIMG_CHANGE","s1013","pic_list","PicServerList","ClothesDataList","ClothesDataConfig","SendC1012","SendC1013","clothes_id","item_id","is_default","model_name","ay_allbuff","lan_description","_dec33","_dec34","_dec35","_dec36","_dec37","_dec38","_dec39","_dec40","_dec41","_dec42","_dec43","CurrentResId","CurrentResKuangId","CurrentChooseRoleId","CurrentChoosePhoneId","CurrentChooseTitleId","CurrentChooseVillageId","CurrentChooseFactorId","PanleDressNodes","PanleDressToggles","RoleUsesprite","PhonUsesprite","TitleUsesprite","VillageUsesprite","FactoryUsesprite","prefabrole","photo","prefabphoto","prefabtitle","_descriptor32","_descriptor33","villageall","prefabvillageall","_descriptor34","villagemy","prefabvillagemy","_descriptor35","prefabvillage","_descriptor36","_descriptor37","_descriptor38","_descriptor39","_descriptor40","factoryall","prefabfactoryall","_descriptor41","factorymy","prefabfactorymy","_descriptor42","ClothesRoleDataList","btnsprite","ClothesPhoneDataList","ClothesTitleDataList","Panle_role","Panle_photo","Panle_title","Panle_village","Panle_factory","showPanleRole","SetRolId","Button_Roleuse","Button_Phonuse","Button_Titleuse","Button_Villageuse","Button_Factoryuse","Toggle_role","Toggle_photo","Toggle_title","Toggle_village","Toggle_factory","showToggle","showPanlePhone","showPanleTitle","showPanleVillage","showPanleFactory","SetTopPanelRole","choosebk","Sprite_rolekuangbig","Sprite_rolebig","Label_roledec","touxiang","Layout_role","clothesData","Button_role","Sprite_rolekuang","Sprite_role","rolelock","bindClickBtnRoleEvent","clotheid","CallOnclickRole","Sprite_rolechoose","SetTopPanelPhone","Sprite_photobig","Label_phondec","xiangkuang","Layout_photo","Button_photo","Sprite_photo","bindClickBtnPhoneEvent","CallOnclickPhone","Sprite_photochoose","SetTopTitlePhone","Sprite_titlekuangbig","Sprite_titlebig","Label_titledec","chenghao","Layout_title","Button_title","Sprite_titlekuang","Sprite_title","bindClickBtnTitleEvent","CallOnclickTitle","SetTopVillage","Sprite_villagekuangbig","Sprite_villagebig","Label_tvillagedec","Layout_villageall","Label_kongvillage","Layout_villagemy","Layout_village","Button_village","Sprite_villagekuang","Sprite_village","bindClickBtnVillageEvent","CallOnclickVillage","SetTopFactory","Sprite_factorykuangbig","Sprite_factorybig","Label_factordec","Layout_factoryall","Label_kongfactory","Layout_factorymy","Button_factory","Sprite_factorykuang","Sprite_factory","bindClickBtnFactoryEvent","CallOnclickFactory","panleNodes","togglenode","s1008","s1009","CLOSE_KINGNAME_UI","changeName","REFRESH_KINGNAME_UI","REFRESH_KINGINFONAME_UI","ContactText","ServerContactUs","sex","SendC1009","GetContactContent","SetContactText","Contact","content1","ContactUsDetails","content2","qq","content3","wechat","content4","weibo","content5","tieba","content6","sq","fake","openTv","visitorLogin","openRealNameAuth","uuidString","CapyClipboardData","UpDataName","Label_kingname","userdata","headkuangid","Sprite_headkuang","ClothesData1","headid","Sprite_haed","Sprite_head","ClothesData","Label_uid","Label_server","CloseKingNameUI","MailProxy","NoticeServerList","NoticeData","chooseLanguage","prefablanguage","SetLanguage","Panle_language","SetMusic","SetSound","Setscreen","ShowServerTime","Labelyear","Label_year","Labeltime","languagedata","Elanguage","GetElanguage","Label_language","GetLanguageName","Layout_language","Button_languagedec","Sprite_languagedec","bindClickLanguzgeEvent","Button_musicon","MusicProxy","GetMusicValue","Button_musicoff","Button_soundon","GetSoundValue","Button_soundoff","Button_screenon","GetScreenValue","Button_screenoff","Label_version","CallOnclickLanguage","lanType","Setinglanguage","GetElanguageType","SetScreen","Sprite_mailred","Sprite_friendred","Sprite_rankred","Sprite_schedulered","Label_head","UpKingImg","REFRESH_KINGIMGKUANG_UI","UpKingImgKuang","UpKingName","any","Sprite_infored","Sprite_dressred","Sprite_setred","Font","LabelFontChange","currentFont","ZhFont","TwFont","EnFont","JpFont","font","tmpRichText","keyjson","win","languages","saveData","loadData","updateSceneRenderers","rootNodes","getScene","allLocalizedLabels","labels","updateLabel","allLocalizedSprites","sprites","updateSprite","_languageData","lang","DictFont","DictArtFont","curFont","curArtFont","eLan","LanguagePrxy","languageList","languagevalue","Language","ContainsKeyLanguage","IsContain","GetLanguageByID","GetMsgByLanString","GetMsgByLanInt","Exception","elanguage","en","isLanguage","tw","jp","LanguageName","guid","TimerHandler","repeat","userFrame","exeTime","jumpFrame","withClear","destroyed","currTimer","currFrame","_delta","_lastTimer","_handlers","_temp","_count","awake","handlers","_clearHandlers","_recoverHandler","_create","useFrame","coverBefore","_getHandler","_indexHandler","cid","$_GID","mid","$_TID","_mid","loop","clearAll","runTimer","sceneLayer","uiLayer","windowLayer","alertLayer","getNode","LayerItem","_name","LayerUtil","setNodeLayer","MAP","AVATAR","IGNORE_RAYCAST","GIZMOS","EDITOR","UI_3D","SCENE_GIZMO","UI_2D","PROFILTER","DEFAULT","_prefabNode","_onPrefabChanged","oldValue","newValue","_prefab","prefabNode","getPefabNode","_initPrefab","instNode","ListType","StartAxisType","Grid","Horizontal","Vertical","scrollView","itemDataList","spawnCount","itemHeight","itemWidth","itemPool","halfScrollView","lastContentPosX","lastContentPosY","gridRow","gridCol","updateTimer","updateInterval","bScrolling","updateFun","itemUpdateFunc","isFinishCreated","autoScrollingDuration","autoScrollingTime","autoScrollingOffset","itemRender","onScrolling","clean","updateContent","countListParam","dataLen","horizontal","vertical","spaceY","updateV","spaceX","udpateH","startAxis","updateGrid_V","updateGrid_H","createList","getMaxScrollOffset","cb","itemInfo","row","col","aim","playItemInAnima","frameCreate","scrollToOffset","scrolling","bufferZone","isUp","viewPos","getPositionInView","itemIndex","updateView","isRight","worldPos","getListData","addItemAt","deleteItem","stopAutoScroll","getData","ScrollTo","fubenexpdata","DianjiLevel","CurrentLevel","indexYe","freeAndHadNum","AdFreeNum","onClickLevelData","MinLevel","Prefabitem","FuBenOpenData","c1621","guideEvent_5006","ShowLevelReward","Toggle_decright","ReFreshLoadFuBen","Toggle_decleft","p_fuben","fubendata","Toggle_deccenter","MaxLV","Label_decleft","Label_deccenter","Label_decright","Label_decleft1","Label_deccenter1","Label_decright1","hpserver","freenum","adtimes","adMaxtimes","per","freeNum","adMax","fuben","serveritemdata","itamnumber","Label_towerlock","itemget","Sprite_itemget","Label_itemget","advertget","Label_advertget","itemgo","Sprite_itemgo","Label_itemgo","advertgo","Label_advertgo","Button_left","lose","prefablose","PVE_FIGHT_MAP_FIGHT_END","fubenExp","kuang","itemcfg","Layout_lose","ay_lostjumpId","GetLostDataById","fubenfaile","lostjumpList","lostjumpid","jumpdata","GetLostJumpDataById","Button_lose","Sprite_lose","jumpId","jumpID","runGame","GuanQiaMap","FuBenExpList","Prefablist","isSendGuide","UpDataLoadDecUI","fubenexp","Sprite_listbg","yse","beibaodata","hasItemnum","bindClickGoOtherEvent","Layout_itemicon","Prefabicon","guideEvent_5005","CallOnclickGoOther","LoadFightUIViewComp","rewardNum","onceNum","heroAllNum","gebolinAllNum","zhanLabel","faLabel","ciLabel","paoLabel","skillMap","allReward","timeFun","bossNow","bossMax","isSend","onGeblDead","onHeroDead","COPY_MONSTER_DEAD","onMonsterDead","onHeroSkill","onRewardChange","showPoint","indexL","Label_bosstime_temp","pointImage","getWorldPosition","uiScreenPoint","Panle_fuben","Panle_tower","showFuben","showTa","ProgressBar_boss","Label_fuben","Label_fubenlv","overCopy","showGebolin","showSkill","skillNode","Layout_heroskill","skillyes","skillnot","skilllock","heroCfg","skillYes","allTime","skillTime","gebolinTypeArr","gebolinNum","soidNode","Layout_soldiers","gebolinSprite","gebolinLabel","c1622","killHp","onBackClick","StateType","angleValue","widthValue","heightValue","ji","aniTipsInfo","aniTipsIndex","aniTipsTimer","getMaterialInstance","_this$spriteFrame$rec","updateProperty","Close","easing","Waiting","Open","lginEnd","waitEnd","showPveBoss","showPveCopy","closeMe","Sprite_jiazai","CLOSE_OTHER_UI","CHANGE_TO_PVE_FIGHT_MAP","remoteBG","sp_bar","lbl_version","fillRange","resourcePaths","maxLen","desc","loadBar","loadCount","completedCount","totalCount","clamp01","fuBenData","guideEvent_5003","Sprite_fubenlock","Button_fuben","TmpRichText","LocalizedLabel","jsonObject","i18n","fetchRender","textMeshPro","tmpRichTexts","jsonString","LocalizedSpriteItem","LocalizedSprite","spriteList","force","isJSON","LogType","names","_fps","tags","Net","Model","Business","View","Config","Trace","setTags","tag","describe","timeEnd","trace","getDateString","logModel","violet","logBusiness","logConfig","print","backLog","stack","lines","line","_result$push","lineBreak","splitList","getHours","timeStr","getMinutes","getSeconds","getMilliseconds","FPS","s1001","c1004","s1004","playerInfo","playerinfo","saveValues","pt_int32","res_id","CurrentState","c1001","platformID","channelID","deviceIMEI","sid","local_language","_touchCounter","_isTouching","_onTouchStart","_onTouchEnd","TOUCH_CANCEL","_onTouchCancel","_touchCounterCallback","enableMultiTouching","getBoundingBoxToWorld","contains","getLocation","publishOneTouch","touchInterval","longTouchEvents","LostDataList","LostJumpDataList","Id","lostjumpId","mailid","CanGetReward","prefabitem1","SendC1702","REFRESH_MAILDEC_UI","RefreshMailDecUI","MailServerList","mailID","maildata","SendC1701","recvTime","itemkuangSprite","s1700","mailList","REFRESH_MAIL_UI","s1702","s1705","s1707","mails","s1721","sys_notice","MailServerState","SendC1700","mailId","SendC1703","mail","prefabmail","RefreshMailUI","SortMailList","Layout_mail","mailData","Button_mail","bindClickButtonMailEvent","CallOnclickMail","s1025","BuffServerData","UPDATE_MAINBUFF_UI","UPDATE_ZHUFU_MAIN_CHANGE","s1026","ZhuFuDataList","ZhuFuDataConfig","GetZhuFuDataByID","SendC1026","effType","ay_effList","timeDayCallback1","timeDayCallback2","timeDayCallback3","UpdateMainBuffUI","Panle_center","Label_gongjiname","Label_shouyiname","ShowTimeDayCallback","buffdata1","id1","buffdata2","id2","buffdata3","id3","lv3","timelabel1","Label_shouyitime","timelabel2","Label_gongjitime","timelabel3","syget","Button_syget","gjget","Button_gjget","skillget","Button_skillget","endTime1","different1","ShowTimeMinutesLabel","endTime2","different2","endTime3","different3","buffdata0","Label_bufflv","Label_buff","ProgressBar_buff","buff1","Sprite_dec1","buff2","Sprite_dec2","Label_shouyilv","Label_shouyi","ProgressBar_shouyi","Label_shouyinum","Label_gongjilv","Label_gongji","ProgressBar_gongji","buff3","Label_gongjinum","Label_skilllv","ProgressBar_skill","Label_skillnum","GoodIdList","s1020","MainPoxy","MainRedList","UPDATE_MAIN_REDPOINT_CHANGE","MainRedType","mainTitleId","ay_hurt","_dec44","_dec45","_dec46","bossChangeItem","chatView","_descriptor43","_descriptor44","_descriptor45","_descriptor46","nowMsg","wordMap","WorldMapViewComp","showChat","guideEvent_4003","showUnLockLevel","guideEvent_9002","guideEvent_5002","guideEvent_2006","guideEvent_7004","guideEvent_8004","onShuYaoClick","onThiefClick","guideEvent_4007","spineGmBtn","hpNode","bossChange","showThief","showActiveBtn","hideChat","chatPrefab","showMapLabel","onRemoveMe","onChanegPass","onThiefChange","onZhuFuChange","UPDATE_TASK_MAIN_CHANGE","OnTaskChange","UPDATE_FESTIVALTIME_MAIN_CHANGE","OnFestivalChange","UPDATE_ALLPOWER_MAIN_CHANGE","ShowPowerLabel","showAdgiftReward","showFestReward","SHOW_OFFINE_UI","showOffineUI","MainRedPointChange","MainHeadImgChange","INIT_MUSIC_SETING","InitMusicSeting","ChangeDaySeven","ASK_INFO_PINGTAI","InItInfoFormTop","UpDataMainFuntion","Button_chat","Button_push","datahero","datayizhi","datafb","Button_hero","Button_herolock","Button_equip","Button_equiplock","Button_fb","Button_fblock","Button_seven","InItMusicSeting","Sprite_teakred","renwu","Sprite_advred","adlibao","Sprite_limitred","cflibao","Sprite_shopred","shangdian","Sprite_fbred","Sprite_welfarered","yueka","qiandao","Sprite_herored","Button_adv","Button_limit","buffserverdata","buffleftys","bufftopyse","buffrightyes","InItZhuFuState","Label_zhali","TaskServerMap","TaskServerList","taskdata","Button_taskyse","Button_taskget","Button_tasknott","taskData","GetTaskDataByID","Label_taskyes","Label_tasknot","passlan","btnXiaotou","xiaotou","thiefId","thiefEndTime","haveTime","aliveTime","changeToThief","onBossChangeClick","ShowMainFunction","onSpineTestClick","onSpineGmClick","gm","spineGm","onGmClick","Gm","onCopyClick","DaDao","shuyao","shuyaoPre","firstCamp","secondCamp","firstVillage","secondVillage","p_build","down","buildid","upbuilddata","downbuilddata","SoldiersEquipList","SoldiersEquipList1","SoldiersEquipList2","equit","equitPrefab","Button_upone","Button_uptwo","timeOneCallback","olderOneTime","newOneTime","timeTwoCallback","olderTwoTime","newTwoTime","guideEvent_1008","guideEvent_1012","guideEvent_3004","ShowExpand","zhaohuan","ShowCampInfo","ShowSolderEquip","expand","GetCampEquipType","onTouchOneStar","onTouchOneEnd","onTouchTwoStar","onTouchTwoEnd","Button_zhaohuan","Button_zhaohuanlock","goldNum","upRes","Label_upone","guideEvent_1007","guideEvent_1011","guideEvent_3003","Label_uptwo","SetVillageInfo","SetCampInfo","SetCampBuild","Label_managename","Sprite_one","Label_oen","Label_oendec","ProgressBar_one","Label_berone","Label_aftone","Label_onenum","Label_onetips","Sprite_upone","Sprite_updec","kaijia","maozi","GetCampIcon","GetCampName","GetCampDec","nextCamp","nextOneAtt","tageOne","GetBuildAttrType","oneLevel","Sprite_two","Label_two","Label_twodec","ProgressBar_two","Label_bertwo","Label_afttwo","Label_twonum","Label_twotips","Sprite_uptwo","nextTwoCamp","nextTwoAtt","tageTwo","twoLevel","SoldierBuildTypeList","upid","downid","SetVillageBuild","GetVillageById","GetVillageIcon","GetVillageName","GetVillageDec","GetVillageNextLvById","shuliang","GetVillageMaxLvById","shichang","VillageBuildTypeList","Label_updec","Layout_equit","buildEquipList","SoldiersEquipLists","GetSoldiersEquipList","fragments","Button_equit","equipkuang","Sprite_equit","Sprite_equitred","soldierEquip","bindClickEquipEvent","bigType","soldiersEquipUpData","GetEquipUpLVData","up","equipColor","bigtype","CallOnclickEquip","guideEvent_10006","campIcon","campName","campDec","campHeroName","SoldiersEquipType","equipType1","equipType2","equipType3","equipType4","equipType5","equipType6","equipType7","equipType8","equipType9","equipType10","equipType11","equipType12","GetVillageHeroName","VillageBuildType","Village1","Village2","Village3","bgName","MapType","angle45","mapWidth","mapHeight","nodeWidth","nodeHeight","roadDataArr","mapItems","showSpine","spineRes","playWait","MapLayer","_sliceImgDic","_mapParams","mapParams","bgImg","bgNode","Layers","sizeMode","SizeMode","RAW","anchorX","anchorY","mapLoadModel","MapLoadModel","slices","loadSliceImage","iy2","sliceHeight","jx2","sliceWidth","hasOwnProperty","offX","getResContentSlices","Texture2D","bitmap","getSliceSprite","addMoveEvent","viewWidth","viewHeight","resConfigMap","resDeliveryMap","resPrefab","mapMonsterArr","_goldPosInUi","_copyPosInUi","getResContentMiniMap","mapName","getResContentData","getMapList","ay_monster","getMapTypeByPve","pveType","DaDaoMap","BaoKu","BaoKuMap","JunHuo","JunHuoMap","JiYin","JiYinMap","ceilWidth","ceilHeight","single","bgTex","s1406","armyWearList","nextMap","ay_mapBuild","pos_buildPoint","ay_heroPoint","ay_lock","pos_lockPoint","ay_heroInitPoint","ay_camera","pos_xiaotou","soundid","_mapWidth","_mapHeight","_row","_col","_nodeWidth","_nodeHeight","_halfNodeWidth","_halfNodeHeight","_mapRoad","updateMapInfo","MapRoad45Angle","angle90","MapRoad90Angle","honeycomb","MapRoadHoneycomb","getNodeByPixel","RoadNode","getNodeByDerect","getNodeByWorldPoint","wy","getWorldPointByPixel","Point","getPixelByWorldPoint","getDerectByPixel","getDerectByWorldPoint","getPixelByDerect","halfNodeWidth","halfNodeHeight","wPoint","fPoint","dPoint","worldPoint","pixelPoint","_proto3","_nwDiv4","_proportion","_proto4","nwDiv4Index","testPointInHoneycomb","MapTestPoxy","spineName","spineAni","spinePoint","spineSca","MapTestView","testData","isTouchDown","beginPoint","originPoint","endPoint","distPoint","movePoint","onMapMouseDown","TOUCH_MOVE","onMapMouseMove","onMapMouseEnd","touch","getLocationX","getLocationY","fightUiView","isTransfer","current_map","deliverys","map_data","map_delivery","_buildMap","_lockBuildMap","_gebolinMap","_heroMap","_copyheroMap","_nowBoss","_nowFubenBoss","_thief","_nowScene","pveBossSceen","pveCopySceen","transView","getHeroById","onLoginEnd","onChangeNewPass","BOSS_IN_MAP","onBossIn","onNewBuildOpen","onVillUp","onHeroChange","onHeroFuhuo","onOpenPve","onChanegToCopy","onCopyFightEnd","onCopyReward","onClearOther","SHOW_SKILL_ACTION","showSkillAction","onGebolinAttChange","HERO_ATT_CHANGE","onHeroAttChange","thief","starPoint","thiefPre","ThiefRoleViewComp","aiType","ThiefAiEnum","TaoPao","clickPro","Sprite_shouzhi","removeFightUI","scenePre","MapViewScene","cfgId","transferPve","showFightUi","fightUiPre","mm","hpPrompt","Hitlayer","RoleViewHitHpPrompt","loadMap","loadBoss","loadCopyHero","loadCopyGebolin","fuhuoFloor","fuhuoTop","topEffNode","szArr","fuhuohero","isHave","lockBuildMap","buildPoint","bossIn","clearGuanQia","showNewScence","transfer","sound","getSoundEffectsConfigById","playBackgroundMusic","loadFuhuo","loadBuild","loadLockBuild","loadHero","changeNewBuild","_loadRes","fuhuodian","mapEffNode","isInit","pointArr","ay_build","buildTop","mapLayerTop","newBuildId","idIndex","bc","clearBuildMap","addNewCunzhuang","loadRole","bossLayer","loadSlicesMap","_this9","jsonAss","mapData","mapLoaded","loadSlices","addDelivery","setNodePos","outTilePos","array","stringToArray1","createCollisionPoint","tilePos","left_top","left_bottom","right_top","right_bottom","clearOther","ratio","_roadDic","_roadSeeker","winSize","screenCenter","boundary","calculateCameraPos","isLerp","lerp","MapParams","len2","setNodeType","checkPointCanMove","followPlayer","touPos","targetX","targetY","isShift","moveThief","zoomToLocation","testLayer","sharLayer","restLayer","MathUtil","numStart","numEnd","lerpAngle","dAngle","angleTowards","clamp","minLimit","maxLimit","probability","deg2Rad","rad2Deg","node_time","lbl_content","lbl_time","btn_close","btn_sure","disable_login_endtime","getTimeStrByS","showcancle","notclose","classMap","save_key","savepars","ay_Soldiers","ay_battle","ay_clear","ay_equip","ay_map","avatarUrl","new_player","Server","openid","is_register","ChapterID","Level","Exp","Regdate","_Diamond","_Gold","_Power","modify_nickname_time","head_id","head_frame_id","TotalChargeMoney","cfgData","attackRange","v3_scale","s1217","s1218","MonthCardProxy","CardEndTime","monthTime","SuperCardEndTime","sMonthTime","monthDayState","sMonthDayState","CardRewardList","monthPayRewards","CardDayRewardList","monthDayRewards","SuperCardRewardList","sMonthPayRewards","SuperDayCardRewardList","sMonthDayRewards","UPDATE_MONTHCARD_UI","UPDATE_OFFINE_JOIN","SendC1217","SendC1218","cardPayId","superCardPayId","cardType","superCardType","itemmoon","prefabitemmoon","itemsupermoon","prefabitemsupermoon","SendC1215","UpdateMonthCardUI","CloseOfflineUI","ShowCardTime","Label_timemoon","ShowMonthCardTime","ShowSuperCardTime","Label_timesupermoon","cardPayInfo","superCardPayInfo","Label_buymoon","Label_buysupermoon","Label_moondec1","Label_moondec2","p_reward","monthitem","p_reward1","monthitem1","Layout_itemmoon","Label_supermoondec1","Label_supermoondec2","superp_reward","supermonthitem","superp_reward1","supermonthitem1","Layout_itemsupermoon","Button_buymoon","Button_buysupermoon","Button_getsupermoon","Button_getmoon","CCString","setMsg","_heroId","_isJinzhan","isHuishou","musicKey","soundKey","screenKey","stopBackgroundMusic","MySocketState","ConnectType","MyWebSocekt","socket","socketState","connectType","NONE","severCloseUi","connect","Connecting","WebSocket","binaryType","bindEvent","Connected","severOver","SeverCloseUI","onopen","onOpen","onclose","ev","onClose","onError","onmessage","recvData","onMesage","INIT","RECONNNECT","handle_data","NetCode","s1220","OffineServerData","UPDATE_OFFINE_UI","ShowOffineUI","tan","s1221","s1222","_rewardList","SendC1221","SendC1222","OffineData","UpdateOffineUI","UpdateJoinUI","Button_join","ops","usetps","arrowattack","bossSkill","heroSkill","tpos","newballistic","skillNone","damage","skillType","SkillEtype","BossDan","setJitui","ay_effects","SkillEffectProxy","GetSkillEffByID","JiTui","ballistic","EffectBallistic","isPosInRotationRect","cpos","hw","hh","X","Y","nTempX","nTempY","passDatas","getPassBuildById","UnlockBuild","GetPassUnLockLevel","GetBuildIsUnLock","buildIdList","buildType","PassById","ay_functionld","PayInfoDataList","payType","goodsId","firstType","firstNum","otherType","otherNum","ay_skUid","ay_Osskuid","lan_productName","PlatMgr","_sdk","ToolSDK","GET_PLT","PlatType","WECHAT","WEB","Web","RegisterData","get_user_id","pools","resKey","powerUI","powerData","Sprite_power","Label_fuhao","_encodec1001","$token","writeVarint32","writeString","$platformID","writeVarint64","intToLong","$channelID","$deviceIMEI","$client","$sid","$local_language","_encodes1001","$result","$uid","$nth","_encodep_player_info","$res_id","$nickName","$gold","$coin","$diamond","$magic","$call","$challenge","$change_times","change_times","$isgm","isgm","$passId","$star","$power","$userId","_decodep_player_info","end_of_message","isAtEnd","readVarint32","skipUnknownField","_encodec1004","_encodes1004","$is_first_login","is_first_login","$playerinfo","nested","popByteBuffer","limit","writeByteBuffer","pushByteBuffer","_encodep_frist_pay","$payId","payId","$goodsId","$payed","payed","_decodep_frist_pay","_encodes1005","array$starPayInfo","starPayInfo","array$dimondPayInfo","dimondPayInfo","_encodes1006","$unixTime","unixTime","_encodes1007","$reason","_encodec1008","$sex","_encodes1008","$nickname","_encodec1009","_encodes1009","_encodec1010","$flag","flag","_encodec1012","$pic_id","_encodes1012","_encodes1013","array$pic_list","_step3","packed","_iterator3","_encodes1014","$isChange","_encodes1016","$attr_type","attr_type","$attr_value","attr_value","_encodes1017","$powerOld","$powerNew","$src","_encodec1020","$id","_encodes1020","$type","array$ids","_step4","_iterator4","_encodep_buff","$atkValue","$atkRate","$defValue","$defRate","$hpValue","$hpRate","$hurtRate","$skillHurtRate","$baoJiRate","$baoJiHurtRate","$mingRate","$zhiRate","$deHurtRate","$deBaoJiRate","$deShanRate","$deZhiRate","_decodep_buff","_encodes1021","$allBuff","$heroBuff","heroBuff","$allArmyBuff","$zhanShiBuff","$faShiBuff","$ciKeBuff","$paoShouBuff","$heroSkillCd","heroSkillCd","_encodes1022","$day1","$todaySign","$day2","$rewardDay2","_encodes1023","array$rewards","_step5","_iterator5","_encodep_reward","_encodes1024","_step6","_iterator6","_encodes1025","$id1","$lv1","$exp1","$endTime1","$id2","$lv2","$exp2","$endTime2","$id3","$lv3","$exp3","$endTime3","$lv","$exp","_encodec1026","_encodes1026","_encodes1027","_step7","_iterator7","_encodes1028","_step8","_iterator8","_encodep_cf_gift","$endTime","$cost","_step9","_iterator9","_decodep_cf_gift","pushTemporaryLength","_decodep_reward","_encodes1029","array$giftList","_step10","_iterator10","_encodec1030","_encodes1030","_step11","_iterator11","_encodec1031","_encodec1035","$sessionID","sessionID","_encodes1035","_encodec1037","$guideID","_encodes1037","_encodes1038","array$guideIDs","_step12","_iterator12","_encodes1039","$open_time","open_time","_encodep_boss_task","$nowNum","$maxNum","_decodep_boss_task","_encodes1049","$bossId","$state","$comeTime","$deBuffBoss","deBuffBoss","array$tasks","_step13","_iterator13","_encodec1050","_encodes1050","_step14","_iterator14","_encodes1051","array$idList","_step15","_iterator15","_encodep_process","_step16","_iterator16","_decodep_process","_encodes1052","array$processInfo","_step17","_iterator17","array$taskInfo","_step18","_iterator18","_encodep_task","$num","$finishTime","_encodec1053","_encodes1053","_step19","_iterator19","_encodec1054","$taskId","_encodes1054","_step20","_iterator20","_encodes1055","$quepos","quepos","_encodep_tx_task","$now_content","$max_content","$isAd","_decodep_tx_task","_encodes1056","$dayExp","$isBuy","array$dayRewardList","_step21","_iterator21","array$lvRewards1","lvRewards1","_step22","_iterator22","array$lvRewards2","lvRewards2","_step23","_iterator23","_step24","_iterator24","_encodec1057","_encodec1058","_encodes1058","_step25","_iterator25","_encodec1059","_encodes1059","_step26","_iterator26","_encodes1060","_step27","_iterator27","_encodec1074","$status","$age","age","_encodec1082","$language","_encodes1082","_encodep_tip_param","$str","_decodep_tip_param","_encodes1098","array$type","_step28","_iterator28","array$paraList","paraList","_step29","_iterator29","_encodep_hero","$heroId","$localId","$atk","$def","$hp","$skillZhu","skillZhu","array$skillList","skillList","_step30","_iterator30","$buffAttr","_decodep_hero","outerLimit","_encodes1100","array$heroList","_step31","_iterator31","_encodep_hero_sz","$pos","_decodep_hero_sz","_encodec1101","_encodes1101","_encodes1102","array$szHeros","_step32","_iterator32","_encodes1103","_encodec1104","_encodes1104","_encodep_ci_tiao","$v","_decodep_ci_tiao","_encodep_hero_equip","$eqId","array$ciTiaoList","_step33","_iterator33","_decodep_hero_equip","_encodes1105","$lvLv","$expLv","$lvColor","$expColor","array$eqList","_step34","_iterator34","$adNum","$adMaxNum","_encodes1106","_step35","_iterator35","_encodes1107","_encodes1108","_encodes1109","_encodes1110","$finishTIme","finishTIme","_encodes1111","_encodep_item","$itemUID","$itemID","_decodep_item","_encodes1200","array$itemList","_step36","_iterator36","_encodes1201","array$delIds","_step37","_iterator37","_step38","_iterator38","_encodec1202","array$selectList","_step39","_iterator39","_encodes1202","array$getList","getList","_step40","_iterator40","_encodes1210","$adNumMax","adNumMax","$chouNum1","chouNum1","$chouNum2","chouNum2","$chouNum3","chouNum3","$chou2Dimond","chou2Dimond","$chou3Dimond","chou3Dimond","_encodec1211","_encodes1211","_step41","_iterator41","_encodec1212","_encodes1212","array$goodsIds","goodsIds","_step42","_iterator42","_encodep_limit_goods","_decodep_limit_goods","_encodec1213","_encodes1213","array$goodsList","goodsList","_step43","_iterator43","_encodec1214","_encodes1214","_step44","_iterator44","_encodec1215","_encodes1215","_encodec1216","_encodec1217","_encodes1217","$pay","_step45","_iterator45","_encodes1218","$monthTime","$sMonthTime","$monthDayState","$sMonthDayState","array$monthPayRewards","_step46","_iterator46","array$sMonthPayRewards","_step47","_iterator47","array$monthDayRewards","_step48","_iterator48","array$sMonthDayRewards","_step49","_iterator49","_encodes1220","$startTime","_step50","_iterator50","$tan","_encodes1221","_step51","_iterator51","_encodes1222","_step52","_iterator52","_encodep_build","$buildId","_decodep_build","_encodes1300","array$buildList","_step53","_iterator53","_encodec1301","_encodes1301","_encodec1302","$index","_encodes1302","_encodep_army_equip","_decodep_army_equip","_encodep_effect","$value","_decodep_effect","_encodec1400","$armyType","_encodes1400","$wearWq","$wearKj","$wearHat","array$wqList","wqList","_step54","_iterator54","array$kJList","kJList","_step55","_iterator55","array$hatList","hatList","_step56","_iterator56","array$wqHaveEffct","wqHaveEffct","_step57","_iterator57","array$wqWearEffct","wqWearEffct","_step58","_iterator58","array$kjHaveEffct","kjHaveEffct","_step59","_iterator59","array$kjWearEffct","kjWearEffct","_step60","_iterator60","array$hatHaveEffct","hatHaveEffct","_step61","_iterator61","array$hatWearEffct","hatWearEffct","_step62","_iterator62","_encodep_equip_lv","$oldLv","oldLv","$newLv","newLv","_decodep_equip_lv","_encodec1401","_encodes1401","_step63","_iterator63","_encodec1402","$equipId","_encodes1402","$oldPower","oldPower","$newPower","newPower","_encodep_army_tuj_equip","$needLv","needLv","_decodep_army_tuj_equip","_encodep_army_tuj","_step64","_iterator64","_decodep_army_tuj","_encodes1403","array$tjList","tjList","_step65","_iterator65","_encodec1404","_encodes1404","_encodec1405","_encodes1405","_step66","_iterator66","$armyTjRed","armyTjRed","_encodep_army_wear_equip","_decodep_army_wear_equip","_encodes1406","array$armyWearList","_step67","_iterator67","_decodep_task","_encodes1500","_step68","_iterator68","_encodec1501","_encodes1501","_encodes1502","_step69","_iterator69","_step70","_iterator70","_encodep_bat_army","$hurt","hurt","$hurtBj","hurtBj","$atkNum","atkNum","$bjNum","bjNum","$allNum","allNum","$hurtAll","hurtAll","$beHurtAll","beHurtAll","_decodep_bat_army","_encodep_bat_hero","$heroUID","$hurtSkill","hurtSkill","$hurtBjSkill","hurtBjSkill","$skillNum","skillNum","$skillBjNum","skillBjNum","$skillNumAll","skillNumAll","$skillHurtAll","skillHurtAll","$newNum","$deadNum","_decodep_bat_hero","_encodep_bat_boss","_decodep_bat_boss","_encodec1601","$monsterId","$isKill","array$heroMy","_step71","_iterator71","array$armyMy","_step72","_iterator72","array$bossTar","_step73","_iterator73","$inArmyNum","$newArmyNum","$outArmyNUm","$deadArmyNum","_encodes1601","_encodec1621","_encodes1621","_encodec1622","$killHp","_encodes1622","_step74","_iterator74","_encodec1623","_encodes1623","_step75","_iterator75","_encodep_fuben","$adMax","$per","$freeNum","_decodep_fuben","_encodes1624","array$fuben_info","_step76","_iterator76","_encodes1651","$clickMax","$click","$goldClick","_encodes1652","_encodep_mail","$mailID","$title","$recvTime","$content","_step77","_iterator77","_decodep_mail","_encodes1700","array$mailList","_step78","_iterator78","_encodec1701","$mailId","_encodec1702","_encodes1702","_step79","_iterator79","_encodes1705","_step80","_iterator80","_encodes1707","array$mails","_step81","_iterator81","_encodep_sys_notice","$info","$beginTime","beginTime","$tanc","tanc","_decodep_sys_notice","_encodes1721","array$sys_notice","_step82","_iterator82","_encodep_rank","$rank","rank","$unitUID","$nick","$score","$para1","para1","_decodep_rank","_encodec1800","$rankId","rankId","_encodes1800","array$rankList","rankList","_step83","_iterator83","_encodep_chat_msg","$channel","$toname","toname","$sendUID","$toUID","$msg","$time","$resId","$frameId","_decodep_chat_msg","_encodec2151","_encodes2151","array$msgList","_step84","_iterator84","_encodep_festival","_decodep_festival","_encodes5501","array$festival","festival","_step85","_iterator85","_encodec5510","_encodes5510","_step86","_iterator86","_encodec5511","_encodes5511","_step87","_iterator87","_encodec5512","_encodes5512","_step88","_iterator88","_encodep_fes_rank","_decodep_fes_rank","_encodes5513","array$fesList","fesList","_step89","_iterator89","skip","low","high","unsigned","binary","_decodec1001","wrapByteBuffer","_decodec1004","_decodec1005","_decodec1006","_decodec1008","_decodec1009","_decodec1010","_decodec1012","_decodec1013","_decodec1014","_decodec1020","_decodec1022","_decodec1023","_decodec1024","_decodec1025","_decodec1026","_decodec1027","_decodec1028","_decodec1029","_decodec1030","_decodec1031","_decodec1033","_decodec1035","_decodec1037","_decodec1038","_decodec1039","_decodec1050","_decodec1052","_decodec1053","_decodec1054","_decodec1056","_decodec1057","_decodec1058","_decodec1059","_decodec1060","_decodec1074","_decodec1082","_decodec1100","_decodec1101","_decodec1102","_decodec1103","_decodec1104","_decodec1105","_decodec1106","_decodec1107","_decodec1108","_decodec1109","_decodec1110","_decodec1111","_decodec1200","_decodec1202","_decodec1210","_decodec1211","_decodec1212","_decodec1213","_decodec1214","_decodec1215","_decodec1216","_decodec1217","_decodec1218","_decodec1220","_decodec1221","_decodec1222","_decodec1300","_decodec1301","_decodec1302","_decodec1400","_decodec1401","_decodec1402","_decodec1403","_decodec1404","_decodec1405","_decodec1500","_decodec1501","_decodec1601","_decodec1621","_decodec1622","_decodec1623","_decodec1624","_decodec1652","_decodec1700","_decodec1701","_decodec1702","_decodec1703","_decodec1800","_decodec2151","_decodec5501","_decodec5510","_decodec5511","_decodec5512","_decodec5513","_decodes1001","_decodes1004","_decodes1005","_decodes1006","_decodes1007","_decodes1008","_decodes1009","_decodes1012","_decodes1013","_decodes1014","_decodes1016","_decodes1017","_decodes1020","_decodes1021","_decodes1022","_decodes1023","_decodes1024","_decodes1025","_decodes1026","_decodes1027","_decodes1028","_decodes1029","_decodes1030","_decodes1035","_decodes1037","_decodes1038","_decodes1039","_decodes1049","_decodes1050","_decodes1051","_decodes1052","_decodes1053","_decodes1054","_decodes1055","_decodes1056","_decodes1058","_decodes1059","_decodes1060","_decodes1082","_decodes1098","_decodes1100","_decodes1101","_decodes1102","_decodes1103","_decodes1104","_decodes1105","_decodes1106","_decodes1107","_decodes1108","_decodes1109","_decodes1110","_decodes1111","_decodes1200","_decodes1201","_decodes1202","_decodes1210","_decodes1211","_decodes1212","_decodes1213","_decodes1214","_decodes1215","_decodes1217","_decodes1218","_decodes1220","_decodes1221","_decodes1222","_decodes1300","_decodes1301","_decodes1302","_decodes1400","_decodes1401","_decodes1402","_decodes1403","_decodes1404","_decodes1405","_decodes1406","_decodes1500","_decodes1501","_decodes1502","_decodes1601","_decodes1621","_decodes1622","_decodes1623","_decodes1624","_decodes1651","_decodes1652","_decodes1700","_decodes1702","_decodes1705","_decodes1707","_decodes1721","_decodes1800","_decodes2151","_decodes5501","_decodes5510","_decodes5511","_decodes5512","_decodes5513","toUint8Array","bbStack","grow","finalOffset","newBytes","advance","invalid","c1","c4","byteCount","part0","part1","part2","binData","unpackData","unpack","do_s1001","do_s1004","do_s1005","do_s1006","do_s1008","do_s1009","do_s1012","do_s1013","do_s1016","do_s1017","do_s1020","do_s1021","do_s1022","do_s1023","do_s1024","do_s1025","do_s1026","do_s1027","do_s1028","do_s1029","do_s1030","do_s1038","do_s1049","do_s1050","do_s1051","do_s1052","do_s1053","do_s1054","do_s1056","do_s1058","do_s1059","do_s1060","do_s1100","do_s1101","do_s1102","do_s1103","do_s1104","do_s1105","do_s1106","do_s1107","do_s1108","do_s1109","do_s1110","do_s1111","do_s1200","do_s1201","do_s1202","do_s1210","do_s1211","do_s1212","do_s1213","do_s1214","do_s1215","do_s1217","do_s1218","do_s1220","do_s1221","do_s1222","do_s1300","do_s1301","do_s1302","do_s1405","do_s1400","do_s1401","do_s1402","do_s1403","do_s1404","do_s1406","do_s1500","do_s1501","do_s1502","do_s1651","do_s1652","do_s1621","do_s1622","do_s1623","do_s1624","do_s1700","do_s1702","do_s1705","do_s1707","do_s1721","do_s2151","TextDecoder","protoName","newData","handelData","isJiami","noJiamLiList","ptNameArray","TextEncoder","jia_mi","jie_mi","dataArray","ptName","dataResult","protoRouteList","MyProto","Func","desPrefab","labelJump","ad","Sprite_dec","onMofangClick","onJuanClick","onJinYanClick","RandomUtil","seed","range","randomAngle","randomDis","get_register_data","user_id","get_passwd","passwd","save_register_data","releaseDelay","whiteWinList","whitePrefab","checkDelete","garbageCollect","removeFromWhiteList","addToWhiteList","visitAsset","deps","_uuid","parseDepends","_texture","depends","dependUtil","getDeps","dependAsset","uuid","visitComponent","props","getOwnPropertyNames","propName","visitNodePool","isArray","val","Asset","visitNode","_components","_children","nodePool","excludeMap","pool","cleanAudio","free","remove","cleanAudioRes","nativeUrl","cleanAll","performance","getTexGPUMemory","getDepRes","loadingCount","defaultBundleName","infos","releasePrefabtDepsRecursively","removeBundle","releaseAsset","textureMem","getPixelFormat","PixelFormat","RGBA8888","total","getGebulin","gebolinId","uiRole","UiRole","initShow","battleSpineList","_px","_py","_cx","_cy","_dx","_dy","_f","_g","_h","_parent","_treeParent","_left","_right","_openTag","_closeTag","AttackData","_gebolinMapType","onAttack","_isBoss","_roleId","_isDie","_roleName","_friendType","_RoleType","_gebolinAttType","_reSources","_spineRes","_skillIn1","_skillIn2","attackData","_fangxiang","addSpineEvnet","myBuffMap","Role","spineEvent","onCasting","changeNewBoss","goblin_wait","checkTouch","goblin_walk","moveTo","skillIn","isNomAtt","updateChangBuff","die","goblin_skill","isrs","isr","shift","atkSound","showHP","clearBuff","showBossReward","armyArr","goldPosInUi","changePass","onBuffAdd","buffView","buffItem","footBuffNode","headBuffNode","buffNode","onBuffChange","removeTypeArr","parms","onHits","isHit","EffectDamage","targetModel","getIsHit","hpMax","baseDamage","RolePierceDamage","getBaseDamage","isCrit","getIsCrit","bsAdd","baoJiHurtRateAdd","ShangHai","addBuff","cbd","isnormal","sk","onDamage","behit","heroView","cB","baoJiRateAdd","cM","mingZhongRate","tS","deShanBiRate","_skills","_buffs","RoleNumericMap","buffs","atkSpeedAdd","removeArr","RoleModuleType","RoleNumeric","_cn","rmt","module","setValue","Base","Equip","Decorator","decorators","addDecorator","rnd","decorator","removeDecorator","attr","rn","arrType","callbackfn","thisArg","addValue","allGong","fang","allValue","hpTips","onoff","hitPools","addHit","recvover","rand","insideUnitCircle","xAdd","yAdd","RouteServer","getServerList","BusyNetBegin","getCurServer","OK","user_servers","cur_server","changeServer","Notice","msgbox","_login","login_callback","prefableft","prefabright","node_group","node_servers","server_list","ServerItem","ItemGroup","groupid","refreshGroups","refreshUserServers","destroyAllChildren","nodemain","refreshGroupButton","refreshServers","server_name","hasData","getUserServer","userid","serverid","child","onClickGroup","onClickServer","labelArr","label_1","reconnect","_TweenAction","Shake","_initial_x","_initial_y","_strength_x","_strength_y","strength_x","strength_y","act","initWithDuration","update_strength_xy","TweenAction","fgRangeRand","randx","randy","getTarget","startWithTarget","ShakeCamera","originalPosition","originalPosition1","shake","intensity","shakeDuration","shakeIntensity","xd","Lock","Unlock","CreateByBuffer","UseShareBuffer","UserSharedBuffType","CreateByLen","s1005","payInfoStartList","payInfodiamondList","REFRESH_RECHARGE_UI","s1210","SoldierShopServerData","REFRESH_SOLDIERSHOP_UI","s1211","SolderShopEquipIdList","EXTRACT_SOLDIEREQUIP_RESULT","SendC1210","s1212","REFRESH_HEROSHOP_UI","s1213","GoodsServerList","REFRESH_LIMIT_UI","s1214","s1215","SendC1216","ShopPayInfoId","SolderShopEquipIdMaps","isOnClickBuyHero","ShopoDataList","ShopDataConfig","goodID","GetShopTypePack","heroShopList","shopType","GetShopCoinIcon","ShopCoinType","yuanbao","xingzuan","GetShopCoinValue","SendC1005","SendC1211","SendC1213","SendC1214","discount","activity","activityType","limitCount","ay_goods","ay_goodsNum","coinType","price","refreshType","currentLv","SoldierShop","numberlist","decPerfab","OnClickLeftBtn","OnClickRightBtn","SoldiersShopList","InItChouJiangLevel","currentLvLabel","GetSoldiersShopDataByLv","GetSoldierEquipLvIconById","GetSoldierEquipUpNameById","Center","ToggleChildNodes","shopdaytype","ToggleOtherNodes","PanleChildNodes","shopuitype","Button_soldiers","HeroShopList","prefabheros","prefabstar","prefabdiamond","prefabgold","prefabday","timeWeekCallback","week","prefabweek","guideEvent_10004","Panle_soldiers","Panle_money","Panle_last","zhsoldier_Hit","buySoldierEquip","guideEvent_10002","showMoneyPanel","Panle_star","Panle_diamond","xiangouday","Panle_day","xiangouweek","Panle_week","RefreshSoldierShopUi","ExtractSoldierEquipResult","RefreshHeroShopUi","RefreshRechargeShopUi","RefreshLimitShopUi","on10001","on10003","Button_one","ShopSoldiersShop","soldierswait","soldiersopen","ShowShopHeroPack","Toggle_soldiers","ShowShopRechargePack","ShowShopLastPack","Panle_skin","Toggle_money","Toggle_lasttime","Toggle_skin","Toggle_star","Toggle_diamond","e_ui_shop_niudan_call_start","ShowWeekDownTime","CurrentTaskId","Label_guanggaonum","Label_guanggao","Label_tennum","Label_ten","Label_one","GRAY","Sprite_ten","fenmuExp","Label_soldiers","ProgressBar_soldiers","Label_soldierslv","shopHeroData","Sprite_herosbg","Layout_herositem","Button_herositem","googid","Button_herosbuy","bindClickHeroBuyEvent","rechargeXingzuanList","rechargezuanshiList","Layout_star","Button_star","Sprite_double","Label_double","bindClickXingZuanBuyEvent","Layout_diamond","Button_diamond","Sprite_diamond","Sprite_other","bindClickDiamondEvent","rechargedayList","indexCount","p_limit_goods","btnback","numberday","Sprite_day","indexcode","Sprite_daydouble","dayget","daydiamond","Sprite_daydiamond","Label_daydiamond","Layout_dayitem","Button_dayitem","bindClickDayEvent","Label_timeday","Label_timeweek","rechargeweekList","Layout_week","Button_week","weekdiamond","Layout_weekitem","Button_weekitem","bindClickWeekEvent","dayOfWeek","getDay","weektime","CallOnclickHeroGood","heroGoodid","BuyHeroLiBao","jumpShopPuop","CallOnclickDay","CallOnclickWeek","CallOnclickXingZuanGood","CallOnclickDiamond","cointype","CloseMainBuffUI","needCallNum","needDiamonNum","ActionsChange","BuysChange","s1022","s1023","s1024","SignDayDataConfig","SignTotalDataConfig","SkillModelComp","SkillAnimator","animCasting","onRoleHitList","animBallistic","animNone","_animNone","_animBallistic","_callee4","_callee3","_splitAngle","ballisticCls","ballisticRes","sent","Fang","Yuan","Xuli","rotateZ","getSkillAttType","Zhi","onEffectDamage","onEffectRecovery","onEffectBuff","onEffectTrap","SkillCasting","actionTarget","adsorbVec3","autoSelectTarget","SkillDataList","SkillDataConfig","vType","ay_value","ay_atkCond","ay_object","HitPosType","addto","attrid","Alive","Normal","mpRecvover","mpMax","mp","haveHuitan","huitanNum","flyType","SkillTimer","getSkillCd","cd1","cd","heroSkillCdSub","getSkillHaveHui","getFanwei","getShengxiao","getHuiTan","trigger","HuiTan","all","getTypeByCfg","CD","getAttTypeByCfg","getHuitanByCfg","BossYuan","BossFnag","getKillRes","NomAttack","isPaoWuXian","UP","screen","_elapsedTime","_this$callback","postionx","postiony","skilluipos","SoldiersEquip","SoldierEquipItem","s1400","SetSoldierEquipMapz","ReFreshSoldiersUI","REFRESH_SOLDIERS_UI","s1401","SendC1400","CurrentArmyType","SetEnhanceEquipList","s1402","WearEquipServerData","cdEquipSmallType","s1403","SetSoldiersTJMaps","ReFreshSoldiersTuJianUI","IsReFreshSoldiersTuJianUI","REFRESH_SOLDIERSTUJIAN_UI","s1404","SoldiersEquipMaps","SoldiersEquipUpMaps","SoldierEquipServerMaps","EnhanceEquipServerList","SoldiersTJMaps","SoldierEquipIdList","SoldiersEquitConfig","GetEquipBigType","smallType","GetEquipSmallType","equipBigType","EquipBigType","EquipBigType0","EquipBigType1","EquipBigType2","EquipBigType3","EquipBigType4","equipSmallType","EquipSmallType","EquipSmallType0","EquipSmallType1","EquipSmallType2","EquipSmallType3","SoldiersEquipColorType","equipColorType1","equipColorType2","equipColorType3","equipColorType4","equipColorType5","equipColorType6","GetSoldierEquipBiaoZhi","soldiertype","GetSoldierModel","InitModelType","gebulinid","SoldiersEquitUpConfig","GetSoldiersEquipUpByLv","GetSoldierEquipMaxLevel","soldiersEquipLevel","EquipUpData","SoldiersEquipUpData","att","att1","up1","att2","up2","att3","up3","att4","up4","att5","up5","att6","up6","GetHaveType","havetype","HaveType","GetWFBString","unm","GetAddWFBString","num1","SoldiersShopConfig","GetSoldierEquipUpPinZhiValueById","SendC1401","SendC1402","equipdata","SendC1404","SetSoldierEquipWearList","GetSoldierEquipServerData","haveType","initial","SoldiersBuildType","SoldiersDataList","modle1","modle2","modle3","animationWaitList","animationOpenList","animationList","Panle_fifteen","item15","prefabitem15","guideEvent_10003","showShopEquipList","equipCount","Layout_item15","equipid","suijishu","itemwait","itemopen","waiNode","waiSkeleton","itemdec","spritek","ShowOpenFiveEquipBox","ShowOpenEquipBox","equiptPerfab","guideEvent_10009","ShowQHSoldierEquip","Button_equipt","equipt","Layout_equipt","Sprite_equiptkaung","Sprite_equipt","equipServer","equipTypeIcon","spriteType","Sprite_soliderstype","typestring","Label_yuanzhanli","olderpower","newerpower","Label_xianzhanli","Sprite_up","Sprite_down","SetSoldierEQuipModel","SpriteEquiptkaungNode","equipnum","_dec47","_dec48","_dec49","_dec50","_dec51","_dec52","_dec53","_dec54","_dec55","_dec56","_dec57","_dec58","_dec59","_dec60","SoldierEquipServerData","LEVEL","SoldiersEquipsTipsList","MoRenBigType","CurrentUnLockBuildList","WuQiChooseid","KaiJiaChooseid","MaoZiChooseid","WuQiBoolean","KaiJiaBoolean","MaoZiBoolean","lock2","lock3","lock4","toggleMaps","soldierTuJianList","yes1item1","Prefabyes1item1","yes1item2","Prefabyes1item2","yes2item1","Prefabyes2item1","yes2item2","Prefabyes2item2","_descriptor47","_descriptor48","_descriptor49","yes3item1","Prefabyes3item1","_descriptor50","yes3item2","Prefabyes3item2","_descriptor51","_descriptor52","_descriptor53","_descriptor54","PanleModelNodes","_descriptor55","_descriptor56","Toggle_equipt","PanleToggleNodes","scroeeww","_descriptor57","_descriptor58","_descriptor59","EquipWeaponMaps","EquipArmorMaps","EquipHatMaps","totalItems","SoldierTuJianConfigList","visibleItems","bufferItems","nowIndex","showTuJianPane","refreshSoldierUI","on10007","Button_qh","UpDataModel","ShowSoldierEquip","ScrollView_tujian","InitPanelNode","Panle_equipt","Pamle_tujian","ShowChildPanl","Toggle_1","Toggle_2","Toggle_3","Toggle_4","guideEvent_10011","Sprite_qhred","guideEvent_10008","btn_lock2","btn_lock3","btn_lock4","ChiKeWuQi","SetModel","ShowChildOtherPanl","SetSoldierModel","ScrollView_List","scrollToTop","SetListViewShow","yes1","yes2","yes3","Layout_yes1item1","Button_yes1item1","soldierItem","equipweapon","wuqiserverdata","WuQiEquipUpData","Sprite_sure","Sprite_chosse","Sprite_lock","Progress","isGuide","listCount","bindClickWuQiEvent","Layout_yes1item2","Button_yes1item2","Label_qh","wuqiEquip","SetWuQiEquipInfo","_loop4","Layout_yes2item1","_loop5","Button_yes2item1","EquipArmor","kaijiaserverdata","KiaJiaEquipUpData","bindClickKaiJiaEvent","Layout_yes2item2","_loop6","Button_yes2item2","kaijiaEquip","SetKaiJiaEquipInfo","_loop7","_loop8","Layout_yes3item1","_loop9","Button_yes3item1","EquipHat","maoziserverdata","MaiZiEquipUpData","bindClickMaoZiEvent","Layout_yes3item2","_loop10","Button_yes3item2","maoziEquip","SetMaoZiEquipInfo","_loop11","_loop12","SetButtonQHRed","IsNotMoRen","IsUnLockWuQi","Sprite_pingzhizhu1","Sprite_zhu1","Label_zhulv1","Label_zhuangbei1","Label_yongyou1","Button_get1","equipicon","wuqidatadata","zhuangbei1","djequipUpData","Sprite_up1","Sprite_down1","cadata","cdequipUpData","IsUnLockKaiJia","Sprite_pingzhizhu2","Sprite_zhu2","Label_zhulv2","Label_zhuangbei2","Label_yongyou2","Sprite_up2","Button_get2","kaijiadata","zhuangbei2","Sprite_down2","IsUnLockMaoZi","Sprite_pingzhizhu3","Sprite_zhu3","Label_zhulv3","Label_zhuangbei3","Button_get3","Sprite_up3","Label_yongyou3","maizidata","zhuangbei3","Sprite_down3","ZhanShiWuQI","List1","no1","List2","no2","List3","no3","ChiKeKaiJia","ChiKeMaoZi","Label_no2","Label_no3","isLast","CallOnclickWuQi","guideEvent_10010","CallOnclickKaiJia","CallOnclickMaoZi","SortSoldierTuJianList","updateItem","equipTujianData","serverTJData","Sprite_yijihuo","Lable_1","soldierdata","soldierpzdb","buffnum","Layout_item2","item2prefab","firstIndex","serverTJDataA","serverTJDataB","soldierTuJian","CallOnclickTJJH","equipTuJianid","CallOnclickTJJHNOT","soldierTuJianid","SoldierTuJianDataConfig","kv_soldieritem","SoundEffectsConfigMaps","SoundEffectsConfigitem","SoundEffectsConfigid","backgroundMusicSource","effectInstances","effectWeights","_playBackgroundMusic","musicNode","loadAudioClip","_x3","_playEffectMusic","weight","effectNode","audioSource","adjustEffectVolumes","_x4","_x5","_x6","_x7","playEffectMp3","_playEffectMp","_x8","_x9","_x10","_x11","stopEffectMusic","stopAllEffects","totalWeight","adjustedVolume","_loadAudioClip","_x12","SoundMaps","SoundItem","soundId","TextureAtlasReader","SpineAddSpriteUtils","GetSpriteBySpine","spinePath","imageName","atlasText","textures","_w","u2","_rect","degrees","_spriteFrame","rotated","reader","tuple","page","regions","readLine","region","TextureRegion","rotateValue","readValue","parseFloat","readTuple","originalWidth","originalHeight","colon","lastMatch","comma","renderObject","onAddHeroClick","heroIdLabel","onRemoveHeroClick","onAddGebolin1Click","isCreateZhanshi","onAddgebolin2Click","onRemoveGebolin1Click","onRemoveGebolin2Click","onOpenBossAiClick","onCloseBossAiClick","onYuanPaoClick","onChangeBossClick","onChangeGuanQiaClick","Batch","StoryMaps","Storyitem","storyId","neg","vertices","nu","nv","triangles","updateLine","numberTotPermil","toLocaleString","numberToThousand","fixed","numberToTenThousand","format","date","fmt","getMonth","$1","getFullYear","stringToArray2","stringToArray3","stringToArray4","sub","showdot","stringLen","realLength","charCode","ms","p1","CCBoolean","refreshicon","_on","onclick","s1500","UPDATE_TASK_UI","s1501","s1502","serverdata","TaskIdList","TaskDataList","TaskDataDataConfig","JumpDataList","JumpDataDataConfig","GetJumpDataByID","GetJumpFuncationType","uiId","JumpFunctionType","ShopSoldierUI","SendC1501","UpdateTaskUI","Label_herositem","TestDataRecorder","defaultTest","currentSelectMenu","objTestsss","ObjeTestC","value1","value2","recorder","vfmt","gfx","Attribute","AttributeName","ATTR_POSITION","Format","RGB32F","ATTR_TEX_COORD","RG32F","ATTR_COLOR","RGBA32F","ATTR_COLOR2","R32F","TmpOverflow","TmpUniform","_enableOutline","_enableUnderlay","_enableGlow","_comp","updateTmpMatFace","updateTmpMatOutline","updateTmpMatUnderlay","updateTmpMatGlow","_faceColor","_faceDilate","_faceSoftness","_outlineColor","_outlineThickness","_underlayColor","_underlayOffset","_underlayDilate","_underlaySoftness","_glowColor","_glowOffset","_glowInner","_glowOuter","_glowPower","multiline","HorizontalTextAlignment","VerticalTextAlignment","_overflow","SHRINK","CLAMP","ELLIPSIS","_enableUnderline","_enableStrikethrough","_colorGradient","_UIRenderer","_fontConfig","_lettersInfo","_assembler","_colorExtraDirty","_richTextDeltaX","editorInit","customMaterial","tmpUniform","TmpFontConfig","_font","_applyFontTexture","updateColorExtra","requestRenderData","drawInfoType","RenderData","initRenderDrawInfo","_renderData","_flushAssembler","renderData","vertDirty","_render","commitComp","assembler","transform","mat","dataHash","bufferID","chunk","bufferId","stencilStage","StencilManager","sharedManager","stage","depthStencilStateStage","isMatEqual","tmpMatDefine","enableOutline","enableUnderlay","enableGlow","_currMaterial","renderer","MaterialInstance","_currTmpMatDefine","renderMat","getRenderMaterial","v1","getProperty","equals","_currHash","_currDepthStencilStateStage","autoMergeBatches","_currComponent","_isMeshBuffer","updateBuffer","vertexFormat","_currRenderData","_currTransform","_currLayer","_currTexture","getGFXTexture","_currSampler","getGFXSampler","_currTextureHash","getHash","_currSamplerHash","hash","fillBuffers","_updateColor","markForUpdateRenderData","setEntityColor","_canRender","_string","fontConfig","TmpAssembler","destroyRenderData","createData","changeMaterialForDefine","updateMaterial","_customMaterial","setMaterial","_updateTmpMatTexture","recompileShaders","faceColor","faceDilate","faceSoftness","outlineColor","outlineThickness","underlayColor","underlayOffset","underlayDilate","underlaySoftness","glowColor","glowOffset","glowInner","glowOuter","glowPower","forceUpdateRenderData","setFont","enabledInHierarchy","isVisble","_horizontalAlign","_verticalAlign","_actualFontSize","_fontSize","_lineHeight","_spacingX","_enableWrapText","_enableItalic","_underlineOffset","_strikethroughOffset","_colorLB","_colorRB","_colorLT","_colorRT","LEFT","TOP","ThiefAiComp","Action","onChusheng","YiDong","onYidong","ShouJi","onTaopao","toV3","isStar","thiefAi","initMovePos","posArr1","difference","days","hours","minutes","remainingSeconds","hStr","mStr","sStr","seconds","year","month","BackMonth","BackDay","TipsSolt","titleItem","titlestyle","TitleUIData","TitleDataList","TitleDataConfig","titleitem","Ber_toggle","GetTitleIcon","titleStyle","zhaohuanjuan","titleData","goldItem","UPDATE_TITLE_UI","UpdateTitleUI","Panle_top","Spriteitem","saveGoldPoint","CallOnclick","QUAD_INDICES","tempColor","vec3_temp","_worldMatrix","Mat4","ITALIC_REDIANS","misc","degreesToRadians","shareLabelInfo","fontAtlas","fontSize","lineHeight","hAlign","vAlign","margin","_uiTrans","_tmpUvRect","_tmpPosRect","_horizontalKernings","_linesWidth","_linesOffsetX","_fntConfig","_numberOfLines","_textDesiredHeight","_letterOffsetY","_tailoredTopY","_tailoredBottomY","_bmfontScale","_originFontSize","_hAlign","_vAlign","_isWrapText","_labelWidth","_labelHeight","_maxLineWidth","_italicVec","_extraLinesData","_extraLineDef","_ellipsisDef","_ellipsisWidth","TmpLetterInfo","valid","quadsIndex","_uiProps","dataList","vData","vb","vertexCount","vertexOffset","vert","toArray","vid","meshBuffer","ib","iData","indexOffset","setDirty","uiTransformComp","lettersInfo","_updateProperties","_updateContent","updateUVs","updateColor","updateTextureIdx","_resetProperties","textureDirty","uvOffset","floatsPerVert","textureIdxOffset","horizontalAlign","verticalAlign","RESIZE_HEIGHT","enableWrapText","_setupBMFontOverflowMetrics","enableItalic","enableUnderline","enableStrikethrough","getLetter","xAdvance","_computeHorizontalKerningForText","_alignText","_multilineTextWrapByWord","scaleHeight","scaleWidth","needReset","maxWidth","_computeAlignmentOffset","_updateQuads","_multilineTextWrap","_getFirstWordLen","_multilineTextWrapByChar","_getFirstCharLen","nextTokenFunc","ellipsisMaxLines","useEllipsis","textLen","lineIndex","nextTokenX","nextTokenY","longestLine","letterRight","highestY","lowestY","letterDef","letterPosition","character","tokenLen","tokenHighestY","tokenLowestY","tokenRight","nextLetterX","newLine","letterIndex","getLetterDefinitionForChar","letterX","_recordEllipsis","isUnicodeSpace","_getFontScale","_recordLetterInfo","_recordPlaceholderInfo","isUnicodeCJK","nextX","lastIndex","lastInfo","lastDef","lastW","lastXAdvance","lastOffsetX","lastRightX","char","tmpInfo","CENTER","RIGHT","blank","BOTTOM","newWidth","newHeight","dataLength","resize","appX","appY","letterInfo","clipTop","clipRight","appendQuad","textureId","lineData","_updateLineQuads","underlineOffset","strikethroughOffset","createQuadIndices","setIndexBuffer","quadCount","appx","appy","underlineInfo","lineIdx","firstInfo","firstDef","wLeft","wRight","wMid","leftX","rightX","midX","uvRect","posRect","dataOffset","getTexture","texw","texh","rectWidth","rectHeight","appendVerts","colorLB","colorRB","colorLT","colorRT","rColor","verticesCount","indicesCount","colorOffset","colorExtraOffset","TmpFontLetter","_letterDefinitions","_textures","_json","charData","letter","xoffset","yoffset","xadvance","addLetterDefinitions","addTexture","letterDefinition","cloneLetterDefinition","copyLetterDefinitions","mixin","RichTextChildName","RichTextChildImageName","_htmlTextParser","labelPool","Pool","seg","imagePool","createSegment","lineCount","styleIndex","clickParam","clickHandler","getSegmentByPool","hideFlags","CCObject","Flags","DontSave","HideInHierarchy","SLICED","CUSTOM","underlineHeight","setAnchorPoint","SpriteAtlas","_textArray","_segments","_labelSegmentsCache","_lineOffsetX","_lineCount","_layoutDirty","_labelChildrenNum","_labelContent","_imageContent","onRestore","handleTouchEvent","_addEventListeners","_onFontLoaded","_activateChildren","_removeEventListeners","NodeEventType","LAYER_CHANGED","_applyLayer","ANCHOR_CHANGED","_updateRichTextPosition","_onTouchEnded","_updateLabelSegmentTextAttributes","_applyTextAttribute","_createFontLabel","_createImage","_updateRichText","SplitLongStringApproximatelyIn2048","partStringArr","_calculateSize","multilineTexts","thisPartSplitResultArr","splitLongStringOver2048","longStr","curStart","curEnd","curString","leftString","curStringSize","sizeForOnePart","leftTryTimes","curWordStep","nextPartExec","getEnglishWordPartAtFirst","lastWordExec","getEnglishWordPartAtLast","_measureText","func","components","getComponents","_containsTouchLocation","getUILocation","propagationStopped","_resetContent","segment","_resetState","_addLabelSegment","stringToken","labelSegment","labelComp","labelContent","insertChild","_updateRichTextWithMaxWidth","labelString","labelWidth","fragmentWidth","_maxWidth","checkStartIndex","checkEndIndex","checkString","checkStringWidth","remainingString","_updateLineInfo","fragmentText","splitString","labelSize","_isLastComponentCR","_needsUpdateTextLayout","newTextArray","newItem","oldStyle","newStyle","_addRichTextImageElement","richTextElement","spriteFrameName","_imageAtlas","getSpriteFrame","imageContent","spriteRect","scaleFactor","spriteWidth","spriteHeight","expectWidth","expectHeight","warnID","lastEmptyLine","nextLineIndex","totalLineCount","lineOffsetX","richTextDeltaX","lineHeightSet","lineHeightReal","offsets","isInteger","_convertLiteralColorValue","colorValue","toUpperCase","hexString","labelSeg","_textStyle","textStyle","Boolean","_handleTouchEvent","_this$node$getChildBy","_this$node$getChildBy2","WORD_REG","SYMBOL_REG","LAST_WORD_REG","LAST_ENGLISH_REG","FIRST_ENGLISH_REG","_safeSubstring","targetString","endIndex","newStartIndex","newEndIndex","startChar","endChar","cmpt","ch","chCode","allWidth","measureText","wrappedWords","fuzzyLen","tmpText","sLine","pushNum","checkWhile","sText","TMP_MAT","s1056","s1058","s1059","s1060","InitTongXingConfig","InitTongXingLvConfig","InitTongXingTaskConfig","InitTongXingProcessConfig","TongXingDataList","TongXingDataConfig","TongXingLvDataList","TongXingLvDataConfig","TongXingTaskDataList","TongXingTaskDataConfig","TongXingProcessDataConfig","SendC1057","tongyongi","get_cache","set_cache","delete_cache","clear_cache","plat_type","plt_str","_print","TweenUtils","jumpTo_v3","_jumpTo_progress","jumpTo_v2","heightSqrt","cur","pcs","rsl","math","du","_gebolinId","initType","wearShowWuqi","wearShowKaijia","wearShowMaozi","URL","_path","formatURL","customFormat","char1","_formatRelativePath","_basePath","rootPath","parts","ofs","getFileName","getAdptedFilePath","exportSceneToJson","tArr","_adpteTypeList","newUrl","conch","s1006","s1016","S1016_Type","PLAYER_ATTR_GOLD","PLAYER_ATTR_COIN","PLAYER_ATTR_DIAMOND","PLAYER_ATTR_MAGIC","PLAYER_ATTR_CALL","PLAYER_ATTR_CHALLENGE","PLAYER_ATTR_PASS_ID","PLAYER_ATTR_STAR","PLAYER_ATTR_POWER","PLAYER_ATTR_RES","PLAYER_ATTR_FRAME","PLAYER_ATTR_CHANGENAME","s1021","p_buff_to_buffEffect","buffEff","fun","zhiLiaoRate","deJianLiaoRate","_guid","S4","getRandomInt","checkIsToDay","dateNow","bSameDay","getRandom","lower","upper","formatNumber","afterdot","nFormatter","digits","si","symbol","formatDate","front","back","dirBundle","releaseAssets","assetsMap","bundleCache","resCache","releaseBundle","onProgress","loadResSync","rejcet","loadReses","paths","needPaths","rs","rets","useCache","getResUIOnly","mTotalWeight","randnum","shuffle","rIndex","GetFastAxisDist","RectContainsCircle","xMin","xMax","yMin","yMax","vectorAngle","ma","mb","cosM","angleAMB","acos","RandomSmart","quadIn","v1s","v2s","num2","showReardAniJump","endNode","getWinContainer","endpos","h1","h2","showReardAni","changeSlot","skinName","slotName","targetAttaName","getRuntimeData","targetSkin","findSkin","targetSkinSlotIndex","findSlotIndex","atta","getAttachment","curSlot","setAttachment","createAuthorizeBtn","btnNode","btnSize","frameSize","getViewportRect","windowSize","wxButton","createUserInfoButton","backgroundColor","textAlign","borderRadius","onTap","uinfo","userInfo","chekModifyMemory","bModifyMemory","lastChekMemoryTime","sum","CryptoES","MD5","IDHead","IDBuildHead","AngleToRadian","RadianToAngle","pos2","outPos","mul","scalar","div","magnitude","posStart","posEnd","bezierOne","slerp","rotateTo","lenght","axis","cross","radian","rotateMatrix","m00","m04","m08","m01","m05","m09","m02","m06","m10","pStart","pEnd","bezierTwo","posCon","tt","pCon","bezierThree","posCon1","posCon2","nn","nnn","ttt","pCon1","pCon2","dot","dir1","dir2","tempDir1","tempDir2","iv","jv","kv","dotValue","dirAngle","DEG","villageDataList","valueOf","villageID","upType","_Scope","global","pushScope","scope","codes","pc","loadAddress","dv","loadNumber","loadString","_ret","NOP","UNDEF","NULL","ARR","TRUE","FALSE","NUM","ADDR","STR","POP","TOP2","VAR","LOAD","OUT","JUMP","JUMPIF","addr","JUMPNOT","FUNC","defineProperty","CALL","NEW","RET","GET","object","SET","IN","DELETE","EQ","NEQ","SEQ","SNEQ","LT","LTE","GT","GTE","ADD","SUB","MUL","EXP","DIV","MOD","BNOT","arg","BOR","BXOR","BAND","LSHIFT","RSHIFT","URSHIFT","OR","AND","NOT","INSOF","TYPEOF","_BaseSdk","userName","validCode","userPassword","loginVersion","toJson","SUCC","isLoadingEnd","loadLoaclAll","loadCdnAll","loadCdnResourceArrAll","totalFiles","loadedFiles","localPaths","cdnPaths","loadTime","loadResources","countLocalFiles","loadCDNResources","updateProgress","dataBin","pack","_windowContainer","_windows","uiLayerMap","_loadingwindows","_hidewindows","isAlignBottom","isAlignLeft","isAlignTop","isAlignRight","_open","showBusy","resolove","layerStack","hidename","topUI","ll","pauseGame","BattlePause","basePanel","checkStack","hide","panel","_Update","uis","destorys","clearWindows","excepts","isMainUI","isNotOtherUI","WordMapDataConfigList","MapDataConfig","lan_button","left_build","lan_building","right_build","WorkerEventType","Samplinginterval","onMessage","postTime","BYTEDANCE_MINI_GAME","createWorker","Worker","terminate","postMessage","hideMapItem","showNowSelect","world","myIndex","closeGuanqia","openLabel","openGuanqia","getGuanqia","headpoint","wordId","tempWord","headIcon","onMapClick","showMapItem","onItemCloseClick","starId","endId","isKillNode","fightNode","guanqiaProLabel","guanqiaPro","monsterModle","CloseAllBuild","openAllBuild","buildSprite","soldierSprite","soldierUpSprite","buildNameLabel","rewarPass","clickNode","InitXiaoTouConfig","minute","newPlayer","gameId","sendVideoEvent"],"mappings":"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D,GAAY56E,EAAY+6E,QAC/BF,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAG7BssD,GAAY56E,EAAYg7E,UAC/BH,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAG7BssD,GAAY56E,EAAYC,SAC/B46E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAG7BssD,GAAY56E,EAAYE,eAE/B26E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYI,SAC/By6E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAG/BssD,GAAY56E,EAAYM,gBAC7Bu6E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYQ,gBAE/Bq6E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYS,kBAC/Bo6E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYW,kBAC/Bk6E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAG7BssD,GAAY56E,EAAYa,kBAE/Bg6E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYe,QAC/B85E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAG/BssD,GAAY56E,EAAYiB,aAC7B45E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYmB,gBAC/B05E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYqB,cAE/Bw5E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAE7BssD,GAAY56E,EAAYuB,cAC/Bs5E,EAAUthH,EAAe+0D,OAAO,OACpB,GAARruD,EACA46G,EAAUthH,EAAe+0D,OAAO,OACjB,GAARruD,IACP46G,EAAUthH,EAAe+0D,OAAO,SAIpCusD,EAAUthH,EAAe+0D,OAAO,OAE7BusD,GAIXthH,EACc0hH,oBAAd,SAAkCL,OAC1BC,EAAU,UACVD,GAAY56E,EAAYmpE,KACxB0R,EAAUthH,EAAe+0D,OAAO,OAC3BssD,GAAY56E,EAAY86E,OAC7BD,EAAUthH,EAAe+0D,OAAO,OAC3BssD,GAAY56E,EAAY+6E,OAC7BF,EAAUthH,EAAe+0D,OAAO,OAC3BssD,GAAY56E,EAAYg7E,SAC7BH,EAAUthH,EAAe+0D,OAAO,OAC3BssD,GAAY56E,EAAYI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,QACAA,QACAA,QACAA,QACAA,QACAA,QACAA,QACAA,QACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SAEAA,SACAA,SAEAA,SACAA,SAEAA,SACAA,SAEAA,SACAA,SAEAA,SACAA,SAEAA,SAEAA,SAEAA,SACAA,SAEAA,SACAA,SAEAA,SAEAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SAEAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,SACAA,IAGTT,GAA8B,CAAC,QAAS,kBAInCF,GAAWF,EAAmBl/N,OAC/BggO,EAAOF,GAAeZ,UACdhgO,MAAR8gO,GACA3iO,QAAQmX,MAAM0qN,EAAY,gCACnB,MAGGc,EAAKhgO,YA8Cdy/N,GAAOz/N,OACRkkE,EAAMh9D,EAASC,WAAW+8D,OAC1BlkE,EAAKvJ,QAAUytE,SACRlkE,MAGPD,EAAS,IAAI7J,WAAW8J,EAAKvJ,eAC7BuJ,EAAKvJ,QAAU,EAAIytE,GACnBnkE,EAAOhG,IAAIiG,EAAKy9C,SAASz9C,EAAKvJ,OAASytE,IACvCnkE,EAAOhG,IAAIiG,EAAKy9C,SAAS,EAAGz9C,EAAKvJ,OAASytE,GAAKA,GACxCnkE,IAGXA,EAAOhG,IAAIiG,EAAKy9C,SAASz9C,EAAKvJ,OAASytE,IACvCnkE,EAAOhG,IAAIiG,EAAKy9C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","file":"all.js","sourcesContent":["export var AB: any = {};\r\nAB.inflateRaw = function (e, r) {\r\n return AB.F.inflate(e, r)\r\n};\r\nAB.readUintBE = function (e) {\r\n return (e[0] << 24 | e[1] << 16 | e[2] << 8 | e[3]) >>> 0\r\n};\r\nAB.inflate = function (e, r) {\r\n var a = new Uint8Array(e.slice(0, 6));\r\n if (a[0] == 120 && a[1] == 156) {\r\n var t = AB.readUintBE([a[2], a[3], a[4], a[5]]);\r\n r = new Uint8Array(t);\r\n if (e instanceof ArrayBuffer) {\r\n return AB.inflateRaw(new Uint8Array(e, 6, e.byteLength - 6), r)\r\n }\r\n return AB.inflateRaw(new Uint8Array(e.buffer, e.byteOffset + 6, e.length - 6), r)\r\n }\r\n return e\r\n};\r\nAB.F = {};\r\nAB.F.inflate = function (e, r) {\r\n var a = Uint8Array;\r\n if (e[0] == 3 && e[1] == 0) return r ? r : new a(0);\r\n var t = AB.F,\r\n n = t._bitsF,\r\n o = t._bitsE,\r\n i = t._decodeTiny,\r\n f = t.makeCodes,\r\n l = t.codes2map,\r\n d = t._get17;\r\n var c = t.U;\r\n var s = r == null;\r\n if (s) r = new a(e.length >>> 2 << 3);\r\n var v = 0,\r\n u = 0,\r\n A = 0,\r\n p = 0,\r\n h = 0,\r\n w = 0,\r\n B = 0;\r\n var m = 0,\r\n y = 0;\r\n var L, F;\r\n while (v == 0) {\r\n v = n(e, y, 1);\r\n u = n(e, y + 1, 2);\r\n y += 3;\r\n if (u == 0) {\r\n if ((y & 7) != 0) y += 8 - (y & 7);\r\n var g = (y >>> 3) + 4,\r\n b = e[g - 4] | e[g - 3] << 8;\r\n if (s) r = AB.F._check(r, m + b);\r\n r.set(new a(e.buffer, e.byteOffset + g, b), m);\r\n y = g + b << 3;\r\n m += b;\r\n continue\r\n }\r\n if (s) r = AB.F._check(r, m + (1 << 17));\r\n if (u == 1) {\r\n L = c.flmap;\r\n F = c.fdmap;\r\n w = (1 << 9) - 1;\r\n B = (1 << 5) - 1\r\n }\r\n if (u == 2) {\r\n A = o(e, y, 5) + 257;\r\n p = o(e, y + 5, 5) + 1;\r\n h = o(e, y + 10, 4) + 4;\r\n y += 14;\r\n var _ = y;\r\n for (var C = 0; C < 38; C += 2) {\r\n c.itree[C] = 0;\r\n c.itree[C + 1] = 0\r\n }\r\n var U = 1;\r\n for (var C = 0; C < h; C++) {\r\n var k = o(e, y + C * 3, 3);\r\n c.itree[(c.ordr[C] << 1) + 1] = k;\r\n if (k > U) U = k\r\n }\r\n y += 3 * h;\r\n f(c.itree, U);\r\n l(c.itree, U, c.imap);\r\n L = c.lmap;\r\n F = c.dmap;\r\n y = i(c.imap, (1 << U) - 1, A + p, e, y, c.ttree);\r\n var O = t._copyOut(c.ttree, 0, A, c.ltree);\r\n w = (1 << O) - 1;\r\n var I = t._copyOut(c.ttree, A, p, c.dtree);\r\n B = (1 << I) - 1;\r\n f(c.ltree, O);\r\n l(c.ltree, O, L);\r\n f(c.dtree, I);\r\n l(c.dtree, I, F)\r\n }\r\n while (true) {\r\n var x = L[d(e, y) & w];\r\n y += x & 15;\r\n var H = x >>> 4;\r\n if (H >>> 8 == 0) {\r\n r[m++] = H\r\n } else if (H == 256) {\r\n break\r\n } else {\r\n var S = m + H - 254;\r\n if (H > 264) {\r\n var E = c.ldef[H - 257];\r\n S = m + (E >>> 3) + o(e, y, E & 7);\r\n y += E & 7\r\n }\r\n var R = F[d(e, y) & B];\r\n y += R & 15;\r\n var T = R >>> 4;\r\n var M = c.ddef[T],\r\n D = (M >>> 4) + n(e, y, M & 15);\r\n y += M & 15;\r\n if (s) r = AB.F._check(r, m + (1 << 17));\r\n while (m < S) {\r\n r[m] = r[m++ - D];\r\n r[m] = r[m++ - D];\r\n r[m] = r[m++ - D];\r\n r[m] = r[m++ - D]\r\n }\r\n m = S\r\n }\r\n }\r\n }\r\n return r.length == m ? r : r.slice(0, m)\r\n};\r\nAB.F._check = function (e, r) {\r\n var a = e.length;\r\n if (r <= a) return e;\r\n var t = new Uint8Array(Math.max(a << 1, r));\r\n t.set(e, 0);\r\n return t\r\n};\r\nAB.F._decodeTiny = function (e, r, a, t, n, o) {\r\n var i = AB.F._bitsE,\r\n f = AB.F._get17;\r\n var l = 0;\r\n while (l < a) {\r\n var d = e[f(t, n) & r];\r\n n += d & 15;\r\n var c = d >>> 4;\r\n if (c <= 15) {\r\n o[l] = c;\r\n l++\r\n } else {\r\n var s = 0,\r\n v = 0;\r\n if (c == 16) {\r\n v = 3 + i(t, n, 2);\r\n n += 2;\r\n s = o[l - 1]\r\n } else if (c == 17) {\r\n v = 3 + i(t, n, 3);\r\n n += 3\r\n } else if (c == 18) {\r\n v = 11 + i(t, n, 7);\r\n n += 7\r\n }\r\n var u = l + v;\r\n while (l < u) {\r\n o[l] = s;\r\n l++\r\n }\r\n }\r\n }\r\n return n\r\n};\r\nAB.F._copyOut = function (e, r, a, t) {\r\n var n = 0,\r\n o = 0,\r\n i = t.length >>> 1;\r\n while (o < a) {\r\n var f = e[o + r];\r\n t[o << 1] = 0;\r\n t[(o << 1) + 1] = f;\r\n if (f > n) n = f;\r\n o++\r\n }\r\n while (o < i) {\r\n t[o << 1] = 0;\r\n t[(o << 1) + 1] = 0;\r\n o++\r\n }\r\n return n\r\n};\r\nAB.F.makeCodes = function (e, r) {\r\n var a = AB.F.U;\r\n var t = e.length;\r\n var n, o, i, f, l;\r\n var d = a.bl_count;\r\n for (let f = 0; f <= r; f++) d[f] = 0;\r\n for (f = 1; f < t; f += 2) d[e[f]]++;\r\n var c = a.next_code;\r\n n = 0;\r\n d[0] = 0;\r\n for (o = 1; o <= r; o++) {\r\n n = n + d[o - 1] << 1;\r\n c[o] = n\r\n }\r\n for (i = 0; i < t; i += 2) {\r\n l = e[i + 1];\r\n if (l != 0) {\r\n e[i] = c[l];\r\n c[l]++\r\n }\r\n }\r\n};\r\nAB.F.codes2map = function (e, r, a) {\r\n var t = e.length;\r\n var n = AB.F.U,\r\n o = n.rev15;\r\n for (var i = 0; i < t; i += 2)\r\n if (e[i + 1] != 0) {\r\n var f = i >> 1;\r\n var l = e[i + 1],\r\n d = f << 4 | l;\r\n var c = r - l,\r\n s = e[i] << c,\r\n v = s + (1 << c);\r\n while (s != v) {\r\n var u = o[s] >>> 15 - r;\r\n a[u] = d;\r\n s++\r\n }\r\n }\r\n};\r\nAB.F.revCodes = function (e, r) {\r\n var a = AB.F.U.rev15,\r\n t = 15 - r;\r\n var n = e.length;\r\n for (var o = 0; o < n; o += 2) {\r\n var i = e[o] << r - e[o + 1];\r\n e[o] = a[i] >>> t\r\n }\r\n};\r\nAB.F._putsE = function (e, r, a) {\r\n a = a << (r & 7);\r\n var t = r >>> 3;\r\n e[t] |= a;\r\n e[t + 1] |= a >>> 8\r\n};\r\nAB.F._putsF = function (e, r, a) {\r\n a = a << (r & 7);\r\n var t = r >>> 3;\r\n e[t] |= a;\r\n e[t + 1] |= a >>> 8;\r\n e[t + 2] |= a >>> 16\r\n};\r\nAB.F._bitsE = function (e, r, a) {\r\n return (e[r >>> 3] | e[(r >>> 3) + 1] << 8) >>> (r & 7) & (1 << a) - 1\r\n};\r\nAB.F._bitsF = function (e, r, a) {\r\n return (e[r >>> 3] | e[(r >>> 3) + 1] << 8 | e[(r >>> 3) + 2] << 16) >>> (r & 7) & (1 << a) - 1\r\n};\r\nAB.F._get17 = function (e, r) {\r\n return (e[r >>> 3] | e[(r >>> 3) + 1] << 8 | e[(r >>> 3) + 2] << 16) >>> (r & 7)\r\n};\r\nAB.F._get25 = function (e, r) {\r\n return (e[r >>> 3] | e[(r >>> 3) + 1] << 8 | e[(r >>> 3) + 2] << 16 | e[(r >>> 3) + 3] << 24) >>> (r & 7)\r\n};\r\nAB.F.U = function () {\r\n var e = Uint16Array,\r\n r = Uint32Array;\r\n return {\r\n next_code: new e(16),\r\n bl_count: new e(16),\r\n ordr: [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],\r\n of0: [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 999, 999, 999],\r\n exb: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0],\r\n ldef: new e(32),\r\n df0: [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 65535, 65535],\r\n dxb: [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0],\r\n ddef: new r(32),\r\n flmap: new e(512),\r\n fltree: [],\r\n fdmap: new e(32),\r\n fdtree: [],\r\n lmap: new e(32768),\r\n ltree: [],\r\n ttree: [],\r\n dmap: new e(32768),\r\n dtree: [],\r\n imap: new e(512),\r\n itree: [],\r\n rev15: new e(1 << 15),\r\n lhst: new r(286),\r\n dhst: new r(30),\r\n ihst: new r(19),\r\n lits: new r(15e3),\r\n strt: new e(1 << 16),\r\n prev: new e(1 << 15)\r\n }\r\n}();\r\n\r\n(function () {\r\n var e = AB.F.U;\r\n var r = 1 << 15;\r\n for (var a = 0; a < r; a++) {\r\n var t = a;\r\n t = (t & 2863311530) >>> 1 | (t & 1431655765) << 1;\r\n t = (t & 3435973836) >>> 2 | (t & 858993459) << 2;\r\n t = (t & 4042322160) >>> 4 | (t & 252645135) << 4;\r\n t = (t & 4278255360) >>> 8 | (t & 16711935) << 8;\r\n e.rev15[a] = (t >>> 16 | t << 16) >>> 17\r\n }\r\n\r\n function n(e, r, a) {\r\n while (r-- != 0) e.push(0, a)\r\n }\r\n for (var a = 0; a < 32; a++) {\r\n e.ldef[a] = e.of0[a] << 3 | e.exb[a];\r\n e.ddef[a] = e.df0[a] << 4 | e.dxb[a]\r\n }\r\n n(e.fltree, 144, 8);\r\n n(e.fltree, 255 - 143, 9);\r\n n(e.fltree, 279 - 255, 7);\r\n n(e.fltree, 287 - 279, 8);\r\n AB.F.makeCodes(e.fltree, 9);\r\n AB.F.codes2map(e.fltree, 9, e.flmap);\r\n AB.F.revCodes(e.fltree, 9);\r\n n(e.fdtree, 32, 5);\r\n AB.F.makeCodes(e.fdtree, 5);\r\n AB.F.codes2map(e.fdtree, 5, e.fdmap);\r\n AB.F.revCodes(e.fdtree, 5);\r\n n(e.itree, 19, 0);\r\n n(e.ltree, 286, 0);\r\n n(e.dtree, 30, 0);\r\n n(e.ttree, 320, 0)\r\n})();\r\n\r\n\r\n","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class AchievePoxy {\n private static _inst: AchievePoxy;\n public static get Inst(): AchievePoxy {\n if (AchievePoxy._inst == null) {\n AchievePoxy._inst = new AchievePoxy();\n }\n return AchievePoxy._inst;\n }\n @res_assign(\"achieve\")\n public datas: achieve[]; \n public get datasAchieve(){\n\n if(!this.datas){\n this.datas =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"Achieve\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"Achieve\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.datas.push(achieveitem);\n }\n\n }\n return this.datas;\n }\n // private _map: any;\n // private get Map(): Map {\n // if (this._map == null) {\n // this._map = new Map();\n // this.datas.forEach(config => {\n // this._map.set(config.id, config);\n // });\n // }\n // return this._map;\n // }\n // public Get(id: string) {\n // //return this.Map.get(id);\n // }\n // public cutStringIntoArray(str) {\n // // let chunkk = str.\n // let strArray = [];\n // for (let i = 0; i < str.length; i ++) {\n // let chunk = str.substr(i, 1);\n // strArray.push(chunk);\n // }\n // return strArray;\n // }\n public GetAchieveById(id:number){\n if(!this.datas){\n return this.datas.find(element=>element.id==id); \n }else{\n \n this.datas = this.datasAchieve;\n return this.datas.find(element=>element.id==id); \n }\n }\n\n public GetAchieveRewards(kv_reward :Map){\n // console.log(\"kv_reward.size=======\"+kv_reward.size);\n for(const [key, value] of Array.from(kv_reward.entries())) \n {\n console.log(\"key -> \", key, \" value -> \", value);\n // break;\t// 注释3\n }\n // kv_reward.forEach((key: string, value: string) => {\n\n // console.log(\"key========\"+key +\"value==============\"+value);\n // });\n // return this.xh_rewards;\n\n }\n}\n\nexport class achieve {\n // // /** 名称 */\n // des: string;\n // // /** 整形 */\n // TypeInt: number;\n // // /** 整形数组 */\n // TypeIntArray: number[];\n // // /** 浮点类型 */\n // TypeFloat: number;\n // // /** 浮点类型数组 */\n // TypeFloatArray: number[];\n // // /** 字符串类型 */\n // TypeString: string;\n // // /** 字符串类型数组 */\n // TypeStringArray: string[];\n // // /** 复杂数组类型 */\n // TypeListInt: number[][];\n\n // /** 名称 */\n achieveIcon: string;\n // /** 整形 */\n achieveMaxValue: number;\n // /** 整形数组 */\n achieveType: number;\n // /** 浮点类型数组 */\n chain_id: number;\n // /** 字符串类型 */\n id: number;\n // /** 字符串类型数组 */\n jumpTo: number;\n // /** 复杂数组类型 */\n kv_reward: Map;\n // /** 字符串类型数组 */\n lan_achieveDes: string;\n lan_achieveName: string;\n score: number;\n}","\nimport { _decorator } from 'cc';\nimport {res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { c1028, p_reward, s1027, s1028 } from '../../../proto/proto';\nimport { GameModleComp } from '../../../game/GameModle';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { BoxData } from '../common/Component';\n@res_auto_bind()\nexport class AdGiftProxy {\n private static _inst: AdGiftProxy;\n public static get Inst(): AdGiftProxy {\n if (AdGiftProxy._inst == null) {\n AdGiftProxy._inst = new AdGiftProxy();\n }\n return AdGiftProxy._inst;\n }\n @res_assign(\"AdGift\")\n public AdGiftDataList: AdGift[];\n public InitPayInfoConfig() {\n if (this.AdGiftDataList == null) {\n this.AdGiftDataList = [];\n }\n let AdGiftDataConfig = ConfigManager.GetInstance().getValue(\"AdGift\")\n for (var key in AdGiftDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"AdGift\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.AdGiftDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取payinfo */\n public GetChufaInfoDataByID(id: number) {\n if (id == undefined) return undefined;\n if (this.AdGiftDataList == null) {\n this.InitPayInfoConfig();\n }\n let data: AdGift = this.AdGiftDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n \n return null;\n } \n\n \n\n\n /***==========================服务器数据存储============================== */\n public rewardsList :p_reward[];//触发礼包信息\n public rewardId :number;//触发礼包信息\n\n public SendC1028(){\n //触发礼包信息,有变化后端会主动推送\n var c1028: c1028 = {};\n send2client(\"c1028\", c1028);\n }\n\n}\n\nexport function do_s1027(s1027: s1027){\n if(AdGiftProxy.Inst.rewardsList!=undefined){\n AdGiftProxy.Inst.rewardsList.length=0\n }\n AdGiftProxy.Inst.rewardsList = s1027.rewards;\n AdGiftProxy.Inst.rewardId = s1027.id;\n if(s1027.rewards && s1027.rewards.length>0){\n if(GameModleComp.getInstance().isOpenGame){\n EventManager.Inst.event(EventType.AD_GIFT_REWARD_SHOW , true);\n }\n }else{\n EventManager.Inst.event(EventType.AD_GIFT_REWARD_SHOW , false);\n }\n}\nexport function do_s1028(s1028: s1028){\n if(s1028.result==undefined){\n if(s1028.rewards &&s1028.rewards.length>0)\n var data = new BoxData\n {\n data.rewards = s1028.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n}\n\nexport class AdGift{\n id: number;\n ay_item: Array;\n rate: number;\n rewardTime: string;\n time:number\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EquipBigType, SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { Prefab } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport ResHelper from \"../../../core/manager/ResHelper\";\nimport { Color } from \"cc\";\nimport { p_hero } from \"../../../proto/proto\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { Button } from \"cc\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('AdvanceHeroUI')\nexport default class AdvanceHeroUI extends BasePanel {\n\n @property(Node) Label_name: Node | null = null;\n @property(Node) Sprite_type: Node | null = null;\n @property(Node) Sprite_pinzhi: Node | null = null;\n\n @property(Node) Label_atk: Node | null = null;\n \n @property(Node) Label_def: Node | null = null;\n\n @property(Node) Label_hp: Node | null = null;\n // @property(Node) Label_bj: Node | null = null;\n // @property(Node) Label_bs: Node | null = null;\n\n @property(Node) Modle :Node | null =null;\n @property(Button) Button_back:Button|null = null;\n\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_back\") {\n EventManager.Inst.event(EventType.guideEvent_4009 , 4009);\n this.close(true)\n }\n }\n\n onShow(heroid: number): void {\n\n // let heroids = heroid;\n let herodata = HeroProxy.Inst.GetHeroDataByID(heroid);\n let p_hero :p_hero=HeroProxy.Inst.HeroDataServerMaps.get(heroid);\n\n \n let Label_name =this.Label_name.getComponent(Label);\n let Sprite_type =this.Sprite_type.getComponent(Sprite);\n let Sprite_pinzhi =this.Sprite_pinzhi.getComponent(Sprite);\n \n Label_name.string = herodata.lan_nameId;\n let heropzdb = HeroProxy.Inst.GetHeroDjByColor(herodata.color);\n let heroTypeIcon = HeroProxy.Inst.GetHeroTypeIcon(herodata.type);\n GlobalFunction.SetSpriteFrame(Sprite_type,heroTypeIcon);\n GlobalFunction.SetSpriteFrame(Sprite_pinzhi, heropzdb);\n\n let Label_atk = this.Label_atk.getComponent(Label);\n let Label_def = this.Label_def.getComponent(Label);\n let Label_hp = this.Label_hp.getComponent(Label);\n\n if(p_hero){\n Label_atk.string=GlobalFunction.ConvertUndefinedToNumber(p_hero.atk).toString();\n \n Label_def.string=GlobalFunction.ConvertUndefinedToNumber(p_hero.def).toString();\n \n Label_hp.string=GlobalFunction.ConvertUndefinedToNumber(p_hero.hp).toString();\n }else{\n Label_atk.string=GlobalFunction.ConvertUndefinedToNumber(herodata.atk).toString();\n \n Label_def.string=GlobalFunction.ConvertUndefinedToNumber(herodata.def).toString();\n \n Label_hp.string=GlobalFunction.ConvertUndefinedToNumber(herodata.hp).toString();\n }\n\n let vecs3 = new Vec3(2, 2);\n let vecps3 = new Vec3(0, -240, 0);\n if (herodata.id == 1004) {\n vecs3 = new Vec3(0.5, 0.5);\n vecps3 = new Vec3(0, -240, 0);\n }\n Utils.loadResUIOnly(\"spine/hero/\" + herodata.heroModel, \"resources\", Prefab, (err: Error, res: Prefab) => {\n if (!err) {\n res.addRef();\n let heronode: Node = instantiate(res)\n if (heronode) {\n heronode.layer = this.node.layer;\n heronode.position = vecps3;\n heronode.setParent(this.Modle);\n heronode.scale = vecs3;\n }\n }\n });\n if(GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.uiOpenEvent_4009 , [4009,this.Button_back.node])\n }\n \n\n }\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EquipBigType, SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { Prefab } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport ResHelper from \"../../../core/manager/ResHelper\";\nimport { Color } from \"cc\";\nimport { FunctionForetell, FunctionProxy } from \"../proxy/FunctionProxy\";\nimport { dataUser } from \"../../gameData/dataUser\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('AdvanceShowUI')\nexport default class AdvanceShowUI extends BasePanel {\n\n // timeDayCallback: any;\n gongnenglist: FunctionForetell[];\n @property(Node) Label_timemun: Node | null = null;\n\n @property(Node) Layout_show: Node | null = null;\n show: Node | null = null;\n prefabshow: Node | null = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n // this.unschedule(this.timeDayCallback);\n // this.timeDayCallback=null;\n this.close(true)\n }else if (name == \"Button_Mask\") {\n // this.unschedule(this.timeDayCallback);\n // this.timeDayCallback=null;\n this.close(true)\n }\n \n }\n\n onShow(): void {\n if(this.gongnenglist==undefined){\n this.gongnenglist =[];\n }\n let level = dataUser.Instance().passId+1;\n this.gongnenglist = FunctionProxy.Inst.GetFunctionDataByLevel(level);\n\n this.prefabshow = this.show;\n this.Layout_show.removeAllChildren();\n for (let i = 0; i < this.gongnenglist.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabshow);\n if (itemNode) {\n itemNode.parent = this.Layout_show;\n let data =this.gongnenglist[i];\n let fountion = FunctionProxy.Inst.GetFunctionDataByID(data.id);\n let Sprite_show = itemNode.getChildByName(\"Sprite_show\").getComponent(Sprite);\n let Label_show = itemNode.getChildByName(\"Label_show\").getComponent(Label);\n Label_show.string = fountion.lan_name;\n GlobalFunction.SetSpriteAdvanceFrame(Sprite_show,fountion.icon);\n }\n }\n\n // let different = 3;\n // let timelabel = this.Label_timemun.getComponent(Label);\n // if (different > 1) {\n // timelabel.string = different+\"\";\n // this.timeDayCallback = function (dt) {\n // if (different > 1) {\n // different--;\n // timelabel.string = different+\"\";\n\n // } else {\n // this.unschedule(this.timeDayCallback);\n // this.close(true);\n // }\n // }\n // this.schedule(this.timeDayCallback, 1.0);\n // }\n\n\n }\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n // this.timeDayCallback=null;\n }\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EquipBigType, SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { Prefab } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport ResHelper from \"../../../core/manager/ResHelper\";\nimport { Color } from \"cc\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { FunctionForetell, FunctionProxy } from \"../proxy/FunctionProxy\";\nimport { Item } from \"../proxy/ItemProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('AdvanceSoldiersUI')\nexport default class AdvanceSoldiersUI extends BasePanel {\n\n // timeDayCallback: any;\n type: EquipBigType\n gongnenglist: FunctionForetell[];\n @property(Node) Modle :Node | null =null;\n @property(Node) Label_timemun :Node | null =null;\n @property(Node) Sprite_soldiers :Node | null =null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_back\") {\n // this.unschedule(this.timeDayCallback);\n // this.timeDayCallback=null;\n this.close(true)\n }\n }\n onShow(heroid: number): void {\n if(this.gongnenglist==undefined){\n this.gongnenglist =[];\n }\n let level = dataUser.Instance().passId+1;\n \n this.gongnenglist = FunctionProxy.Inst.GetFunctionDataByLevel(level);\n\n let functiondata = this.gongnenglist.find(Item=>Item.level==level);\n if(!functiondata)return;\n ResHelper.getShowGebulin(functiondata.soldiers, this.Modle, new Vec3(0, -130, 0), new Vec3(2, 2));\n\n let Sprite_soldiers=this.Sprite_soldiers.getComponent(Sprite);\n if(functiondata.soldiers==201){\n\n GlobalFunction.SetSpriteFrame(Sprite_soldiers,\"ui_gnyg_fsbg\");\n }else if(functiondata.soldiers==301){\n GlobalFunction.SetSpriteFrame(Sprite_soldiers,\"ui_gnyg_ckbg\");\n }else if(functiondata.soldiers==401){\n GlobalFunction.SetSpriteFrame(Sprite_soldiers,\"ui_gnyg_psbg\");\n }\n // if(heroid==7){\n // //法师\n // ResHelper.getShowGebulin(201, this.Modle, new Vec3(0, -130, 0), new Vec3(2, 2));\n // }else if(heroid==15){\n // ResHelper.getShowGebulin(301, this.Modle, new Vec3(0, -130, 0), new Vec3(2, 2));\n // }else if(heroid==240){\n // ResHelper.getShowGebulin(401, this.Modle, new Vec3(0, -130, 0), new Vec3(2, 2));\n // }\n\n // let different = 3;\n // let timelabel = this.Label_timemun.getComponent(Label);\n // if (different > 1) {\n // timelabel.string = different+\"\";\n // this.timeDayCallback = function (dt) {\n // if (different > 1) {\n // different--;\n // timelabel.string = different+\"\";\n\n // } else {\n // this.unschedule(this.timeDayCallback);\n // this.close(true);\n // }\n // }\n // this.schedule(this.timeDayCallback, 1.0);\n // }\n }\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n onHide(): void {\n // this.timeDayCallback=null;\n }\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { s1220 } from \"../../../proto/proto\";\nimport { OffineProxy } from \"../proxy/OffineProxy\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { Sprite } from \"cc\";\nimport { Item, ItemProxy } from \"../proxy/ItemProxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { FunctionProxy } from \"../proxy/FunctionProxy\";\nimport { PassPoxy } from \"../proxy/PassPoxy\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { Vec3 } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('AdvanceUI')\nexport default class AdvanceUI extends BasePanel {\n\n @property(Node) ScrollView_dec: Node | null = null; //ScrollView\n @property(Node) Layout_dec: Node | null = null; //content\n dec: Node | null = null;//item\n prefabdec: Node | null = null;//item\n Button_close: Button | null = null;\n\n\n private Button_get: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_item\") {\n }\n }\n start() {\n this.addEvent();\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.UPDATE_ADVANCE_UI, this, this.UpdateAdvanceUI);\n }\n onShow(data: any): void {\n\n this.UpdateAdvanceUI();\n }\n\n /**刷新界面 */\n UpdateAdvanceUI() {\n this.SortHeroList();\n this.prefabdec = this.dec;\n this.Layout_dec.removeAllChildren();\n for (let i = 0; i < FunctionProxy.Inst.FunctionDataList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdec);\n if (itemNode) {\n itemNode.parent = this.Layout_dec;\n let FunctionData = FunctionProxy.Inst.FunctionDataList[i];\n if (FunctionData) {\n let icon = itemNode.getChildByName(\"icon\");\n let Sprite_name = icon.getChildByName(\"Sprite_name\").getComponent(Sprite);\n GlobalFunction.SetSpriteAdvanceFrame(Sprite_name, FunctionData.icon);\n let Sprite_decred = icon.getChildByName(\"Sprite_decred\");//紅點\n let yesicon = icon.getChildByName(\"yesicon\");//已完成=打勾\n let noticon = icon.getChildByName(\"noticon\");//鎖住=鎖\n let timeicon = icon.getChildByName(\"timeicon\");//時間 =鈡\n let itemicon = icon.getChildByName(\"itemicon\");//item\n let Button_itemicon = itemicon.getChildByName(\"Button_itemicon\");//獎勵btn\n\n let Button_get = icon.getChildByName(\"Button_get\");//領取按鈕\n let Sprite_yilingqu = icon.getChildByName(\"Sprite_yilingqu\");//已領取\n\n let tips = itemNode.getChildByName(\"tips\");\n\n let Label_name = tips.getChildByName(\"Label_name\").getComponent(Label);\n Label_name.string = FunctionData.lan_name;\n\n let Label_dec = tips.getChildByName(\"Label_dec\").getComponent(Label);\n Label_dec.string = FunctionData.lan_content;\n\n let yesdec = tips.getChildByName(\"yesdec\");\n let Label_yes = yesdec.getChildByName(\"Label_yes\");\n let notdec = tips.getChildByName(\"notdec\");\n let Label_not = notdec.getChildByName(\"Label_not\");\n let time = tips.getChildByName(\"time\");\n time.active = false;\n let Label_time = time.getChildByName(\"Label_time\");\n\n let itemdec = tips.getChildByName(\"itemdec\");\n let Label_item = itemdec.getChildByName(\"Label_item\");\n\n let itemid = FunctionData.ay_reward[0];\n let itemnum = FunctionData.ay_reward[1];\n let itemdata = ItemProxy.Inst.GetItemDataByID(Number(itemid));\n let Sprite_itemkuang = Button_itemicon.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteAdvanceFrame(Sprite_itemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_item = Button_itemicon.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteAdvanceFrame(Sprite_item, itemdata.icon);\n Label_item.getComponent(Label).string = itemnum;\n this.bindClickItemEvent(Button_itemicon, Number(itemid));//點擊道具\n\n noticon.active = dataUser.Instance().passId + 1 < FunctionData.level;\n notdec.active = dataUser.Instance().passId + 1 < FunctionData.level;\n yesicon.active = dataUser.Instance().passId + 1 >= FunctionData.level;\n yesdec.active = dataUser.Instance().passId + 1 >= FunctionData.level;\n Label_not.getComponent(Label).string = PassPoxy.Inst.GetCurrentLevelDec(FunctionData.level);\n Label_yes.getComponent(Label).string = PassPoxy.Inst.GetCurrentLevelDec(FunctionData.level);\n\n\n Button_get.active = dataUser.Instance().passId + 1 >= FunctionData.level && !FunctionProxy.Inst.ISFuntionGetReward(FunctionData.id);\n Sprite_yilingqu.active = dataUser.Instance().passId + 1 >= FunctionData.level && FunctionProxy.Inst.ISFuntionGetReward(FunctionData.id);;\n\n\n if (Button_get.active) {\n this.bindClickGetEvent(Button_get, FunctionData.id);//領取獎勵\n }\n if (i == 0) {\n Button_get[\"guide\"] = \"guide\";\n this.Button_get = Button_get;\n }\n }\n }\n }\n }\n\n /**排序 */\n private SortHeroList() {\n FunctionProxy.Inst.FunctionDataList.sort(function (a, b) {\n const detailA = FunctionProxy.Inst.GetFunctionDataByID(a.id), detailB = FunctionProxy.Inst.GetFunctionDataByID(b.id);\n if (FunctionProxy.Inst.FunctionIDList.length > 0) {\n let dataA = FunctionProxy.Inst.FunctionIDList.find(Item => Item == a.id);\n let dataB = FunctionProxy.Inst.FunctionIDList.find(Item => Item == b.id);\n if (dataA && dataB) {\n return detailA.id - detailB.id;\n } else {\n\n if (dataA && !dataB) {\n return 1;//-1正序\n } else if (!dataA && dataB) {\n return -1;//倒序\n } else if (!dataA && !dataB) {\n\n let boola = (dataUser.Instance().passId + 1) > a.level;\n let boolb = (dataUser.Instance().passId + 1) > b.level;\n if (boola && boolb) {\n return detailA.id - detailB.id;\n } else {\n if (boola && !boolb) {\n return -1;//-1正序\n } else if (!boola && boolb) {\n return 1;//倒序\n } else if (!boola && !boolb) {\n\n return detailA.id - detailB.id;\n }\n }\n }\n }\n } else {\n let boola = (dataUser.Instance().passId + 1) > a.level;\n let boolb = (dataUser.Instance().passId + 1) > b.level;\n if (boola && boolb) {\n return detailA.id - detailB.id;\n } else {\n if (boola && !boolb) {\n return -1;//-1正序\n } else if (!boola && boolb) {\n return 1;//倒序\n } else if (!boola && !boolb) {\n\n return detailA.id - detailB.id;\n }\n }\n\n return detailA.id - detailB.id;\n }\n });\n }\n //点击道具事件\n bindClickItemEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n\n if (GuideManager.getInstance().isInGuide && itemid == 2701) {\n setTimeout(() => {\n EventManager.Inst.event(EventType.uiOpenEvent_4008, [4008, itemnode])\n }, 400);\n }\n }\n\n CallOnclickItem(itemnode, itemids) {\n console.log(\"=============點擊道具==============\");\n let itemid = parseInt(itemids);\n //新手引导log\n if (GuideManager.getInstance().isInGuide) {\n if (itemid == 2701) {\n EventManager.Inst.event(EventType.guideEvent_4008, 4008);\n this.close(true);\n }\n }\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n //点击领取奖励事件\n bindClickGetEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGet\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickGet(itemnode, Functionids) {\n let Functionid = parseInt(Functionids);\n FunctionProxy.Inst.SendC1050(Functionid);\n console.log(\"=============點擊領取獎勵==============\");\n //新手引导log\n if (GuideManager.getInstance().isInGuide) {\n }\n }\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n\n }\n clearRes() {\n }\n}\n","\n\nimport BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator} from \"cc\";\n\nconst { ccclass, property } = _decorator;\n\n@ccclass\nexport default class Age12LoadingUI extends BasePanel {\n onBtnClicked(e: any, name: string) {\n\n if (name == \"btn_close\") {\n this.close(true)\n }\n }\n\n}\n","import BinaryTreeNode from \"./BinaryTreeNode\";\r\nimport IRoadSeeker from \"./IRoadSeeker\";\r\nimport RoadNode from \"./RoadNode\";\r\n\r\n/**\r\n * 六边形 A*寻路算法 \r\n * @author 落日故人 QQ 583051842\r\n * \r\n */\r\nexport default class AstarHoneycombRoadSeeker implements IRoadSeeker {\r\n\t/**\r\n\t * 横向移动一个格子的代价\r\n\t */\r\n\tprivate COST_STRAIGHT: number = 10;\r\n\r\n\t/**\r\n\t * 斜向移动一个格子的代价\r\n\t */\r\n\tprivate COST_DIAGONAL: number = 10;\r\n\r\n\t/**\r\n\t * 最大搜寻步骤数,超过这个值时表示找不到目标 \r\n\t */\r\n\tprivate maxStep: number = 15000;\r\n\r\n\t/**\r\n\t * 开启列表\r\n\t */\r\n\tprivate _openlist: Array;\r\n\r\n\t/**\r\n\t *关闭列表 \r\n\t\t*/\r\n\tprivate _closelist: Array;\r\n\r\n\t/**\r\n\t * 二叉堆存储结构\r\n\t */\r\n\tprivate _binaryTreeNode: BinaryTreeNode = new BinaryTreeNode();\r\n\r\n\t/**\r\n\t *开始节点 \r\n\t */\r\n\tprivate _startNode: RoadNode;\r\n\r\n\t/**\r\n\t *当前检索节点 \r\n\t */\r\n\tprivate _currentNode: RoadNode;\r\n\r\n\t/**\r\n\t *目标节点 \r\n\t */\r\n\tprivate _targetNode: RoadNode;\r\n\r\n\t/**\r\n\t*地图路点数据 \r\n\t*/\r\n\tprivate _roadNodes: { [key: number]: RoadNode };\r\n\r\n\t/**\r\n\t *用于检索一个节点周围6个点的向量数组 格子列数为偶数时使用\r\n\t */\r\n\tprivate _round1: number[][] = [[0, -1], [1, -1], [1, 0], [0, 1], [-1, 0], [-1, -1]];\r\n\t/**\r\n\t *用于检索一个节点周围6个点的向量数组 格子列数为奇数时使用\r\n\t */\r\n\tprivate _round2: number[][] = [[0, -1], [1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0]];\r\n\r\n\tprivate handle: number = -1;\r\n\r\n\t/**\r\n\t * 是否优化路径\r\n\t */\r\n\tprivate optimize: boolean = true;\r\n\r\n\tpublic constructor(roadNodes: { [key: string]: RoadNode }) {\r\n\t\tthis._roadNodes = roadNodes;\r\n\t}\r\n\r\n\t/**\r\n\t *寻路入口方法 \r\n\t * @param startNode\r\n\t * @param targetNode\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic seekPath(startNode: RoadNode, targetNode: RoadNode): Array {\r\n\t\tthis._startNode = startNode;\r\n\t\tthis._currentNode = startNode;\r\n\t\tthis._targetNode = targetNode;\r\n\r\n\t\tif (!this._startNode || !this._targetNode)\r\n\t\t\treturn [];\r\n\r\n\t\tif (this._targetNode.value == 1) {\r\n\t\t\t// //console.log(\"目标不可达到:\");\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\r\n\t\tthis._startNode.g = 0; //重置起始节点的g值\r\n\t\tthis._startNode.resetTree(); //清除起始节点原有的二叉堆关联关系\r\n\r\n\t\tthis._binaryTreeNode.refleshTag(); //刷新二叉堆tag,用于后面判断是不是属于当前次的寻路\r\n\t\t//this._binaryTreeNode.addTreeNode(this._startNode); //把起始节点设置为二叉堆结构的根节点\r\n\r\n\t\tvar step: number = 0;\r\n\r\n\t\twhile (true) {\r\n\t\t\tif (step > this.maxStep) {\r\n\t\t\t\t// //console.log(\"没找到目标计算步骤为:\", step);\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\r\n\t\t\tstep++;\r\n\r\n\t\t\tthis.searchRoundNodes(this._currentNode);\r\n\r\n\t\t\tif (this._binaryTreeNode.isTreeNull()) //二叉堆树里已经没有任何可搜寻的点了,则寻路结束,每找到目标\r\n\t\t\t{\r\n\t\t\t\t// //console.log(\"没找到目标计算步骤为:\", step);\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\r\n\t\t\tthis._currentNode = this._binaryTreeNode.getMin_F_Node();\r\n\r\n\t\t\tif (this._currentNode == this._targetNode) {\r\n\t\t\t\t// //console.log(\"找到目标计算步骤为:\", step);\r\n\t\t\t\treturn this.getPath();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._binaryTreeNode.setRoadNodeInCloseList(this._currentNode);//打入关闭列表标记\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t}\r\n\r\n\r\n\t/**\r\n\t *寻路入口方法 如果没有寻到目标,则返回离目标最近的路径\r\n\t * @param startNode\r\n\t * @param targetNode\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic seekPath2(startNode: RoadNode, targetNode: RoadNode): Array {\r\n\t\tthis._startNode = startNode;\r\n\t\tthis._currentNode = startNode;\r\n\t\tthis._targetNode = targetNode;\r\n\r\n\t\tif (!this._startNode || !this._targetNode)\r\n\t\t\treturn [];\r\n\r\n\t\tvar newMaxStep: number = this.maxStep;\r\n\r\n\t\tif (!this.isPassNode(this._targetNode)) {\r\n\t\t\t//如果不能直达目标,最大寻路步骤 = 为两点间的预估距离的2倍\r\n\t\t\tnewMaxStep = (Math.abs(this._targetNode.cx - this._startNode.cx) + Math.abs(this._targetNode.cy - this._startNode.cy)) * 2;\r\n\t\t\tif (newMaxStep > this.maxStep) {\r\n\t\t\t\tnewMaxStep = this.maxStep;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tthis._startNode.g = 0; //重置起始节点的g值\r\n\t\tthis._startNode.resetTree(); //清除起始节点原有的二叉堆关联关系\r\n\r\n\t\tthis._binaryTreeNode.refleshTag(); //刷新二叉堆tag,用于后面判断是不是属于当前次的寻路\r\n\t\t//this._binaryTreeNode.addTreeNode(this._startNode); //把起始节点设置为二叉堆结构的根节点\r\n\r\n\t\tvar step: number = 0;\r\n\r\n\t\tvar closestNode: RoadNode = null; //距离目标最近的路点\r\n\r\n\t\twhile (true) {\r\n\t\t\tif (step > newMaxStep) {\r\n\t\t\t\t// //console.log(\"没找到目标计算步骤为:\", step);\r\n\t\t\t\treturn this.seekPath(startNode, closestNode);\r\n\t\t\t}\r\n\r\n\t\t\tstep++;\r\n\r\n\t\t\tthis.searchRoundNodes(this._currentNode);\r\n\r\n\t\t\tif (this._binaryTreeNode.isTreeNull()) { \t\t\t\t//二叉堆树里已经没有任何可搜寻的点了,则寻路结束,没找到目标\r\n\t\t\t\t// //console.log(\"没找到目标计算步骤为:\", step);\r\n\t\t\t\treturn this.seekPath(startNode, closestNode);\r\n\t\t\t}\r\n\r\n\t\t\tthis._currentNode = this._binaryTreeNode.getMin_F_Node();\r\n\r\n\t\t\tif (closestNode == null) {\r\n\t\t\t\tclosestNode = this._currentNode;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._currentNode.h < closestNode.h) {\r\n\t\t\t\t\tclosestNode = this._currentNode;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this._currentNode == this._targetNode) {\r\n\t\t\t\t// //console.log(\"找到目标计算步骤为:\", step);\r\n\t\t\t\treturn this.getPath();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._binaryTreeNode.setRoadNodeInCloseList(this._currentNode);//打入关闭列表标记\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.seekPath(startNode, closestNode);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * 对路节点进行排序\r\n\t * @param node1 \r\n\t * @param node2 \r\n\t */\r\n\tprivate sortNode(node1: RoadNode, node2: RoadNode) {\r\n\t\tif (node1.f < node2.f) {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse if (node1.f > node2.f) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n\r\n\t/*private getPath():Array\r\n\t{\r\n\t\tvar nodeArr:Array = [];\r\n\t\t\r\n\t\tvar node:RoadNode = this._targetNode;\r\n\t\t\r\n\t\twhile(node != this._startNode)\r\n\t\t{\r\n\t\t\tnodeArr.unshift(node);\r\n\t\t\tnode = node.parent;\r\n\t\t}\r\n\t\t\r\n\t\tnodeArr.unshift(this._startNode);\r\n\t\t\r\n\t\tif(!this.optimize)\r\n\t\t{\r\n\t\t\treturn nodeArr;\r\n\t\t}\r\n\r\n\t\t//把多个节点连在一起的,横向或者斜向的一连串点,除两边的点保留\r\n\t\t\r\n\t\tvar preNode:RoadNode;\r\n\t\tvar midNode:RoadNode;\r\n\t\tvar nextNode:RoadNode;\r\n\t\t\r\n\t\tfor(var i:number = 1 ; i < nodeArr.length - 1 ; i++)\r\n\t\t{\r\n\t\t\tpreNode = nodeArr[i - 1] as RoadNode;\r\n\t\t\tmidNode = nodeArr[i] as RoadNode;\r\n\t\t\tnextNode = nodeArr[i + 1] as RoadNode;\r\n\t\t\t\r\n\t\t\tvar bool:Boolean = false;\r\n\t\t\t\r\n\t\t\tvar otherNode:RoadNode = null;\r\n\t\t\t\r\n\t\t\tif(Math.abs(nextNode.cx - preNode.cx) == 2 && preNode.cy == nextNode.cy)\r\n\t\t\t{\r\n\t\t\t\tif(midNode.cx % 2 == 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(midNode.cy == preNode.cy)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\totherNode = this._roadNodes[midNode.cx + \"_\" + (midNode.cy + 1)] as RoadNode\r\n\t\t\t\t\t}else\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\totherNode = this._roadNodes[midNode.cx + \"_\" + (midNode.cy - 1)] as RoadNode\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}else\r\n\t\t\t\t{\r\n\t\t\t\t\tif(midNode.cy == preNode.cy)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\totherNode = this._roadNodes[midNode.cx + \"_\" + (midNode.cy - 1)] as RoadNode\r\n\t\t\t\t\t}else\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\totherNode = this._roadNodes[midNode.cx + \"_\" + (midNode.cy + 1)] as RoadNode\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(otherNode)\r\n\t\t\t\tbool = otherNode.value != 1 ? true : false;\r\n\t\t\t\r\n\t\t\tif(bool)\r\n\t\t\t{\r\n\t\t\t\tnodeArr.splice(i,1)\r\n\t\t\t\ti--;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor(i = 1 ; i < nodeArr.length - 1 ; i++)\r\n\t\t{\r\n\t\t\tpreNode = nodeArr[i - 1] as RoadNode;\r\n\t\t\tmidNode = nodeArr[i] as RoadNode;\r\n\t\t\tnextNode = nodeArr[i + 1] as RoadNode;\r\n\t\t\t\r\n\t\t\tvar bool1:Boolean = midNode.cx == preNode.cx && midNode.cx == nextNode.cx;\r\n\t\t\t\r\n\t\t\tvar bool2:Boolean = (midNode.cy == preNode.cy && midNode.cy == nextNode.cy) && ((preNode.cx % 2 == midNode.cx % 2 && midNode.cx % 2 == nextNode.cx % 2) );\r\n\t\t\t\r\n\t\t\tvar bool3:Boolean = preNode.cy - Math.floor(preNode.cx / 2) == midNode.cy - Math.floor(midNode.cx / 2) && midNode.cy - Math.floor(midNode.cx / 2) == nextNode.cy - Math.floor(nextNode.cx / 2);\r\n\t\t\t\r\n\t\t\tvar bool4:Boolean = preNode.cy + Math.ceil(preNode.cx / 2) == midNode.cy + Math.ceil(midNode.cx / 2) && midNode.cy + Math.ceil(midNode.cx / 2) == nextNode.cy + Math.ceil(nextNode.cx / 2);\r\n\t\t\t\r\n\t\t\tif(bool1 || bool2 || bool3 || bool4)\r\n\t\t\t{\r\n\t\t\t\tnodeArr.splice(i,1)\r\n\t\t\t\ti--;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn nodeArr\r\n\t}*/\r\n\r\n\r\n\t/**\r\n\t *获得最终寻路到的所有路点 \r\n\t * @return \r\n\t * \r\n\t */\r\n\tprivate getPath(): Array {\r\n\t\tvar nodeArr: Array = [];\r\n\r\n\t\tvar node: RoadNode = this._targetNode;\r\n\r\n\t\twhile (node != this._startNode) {\r\n\t\t\tnodeArr.unshift(node);\r\n\t\t\tnode = node.parent;\r\n\t\t}\r\n\r\n\t\tnodeArr.unshift(this._startNode);\r\n\r\n\t\tif (!this.optimize) {\r\n\t\t\treturn nodeArr;\r\n\t\t}\r\n\r\n\t\t//把多个节点连在一起的,横向或者斜向的一连串点,除两边的点保留\r\n\r\n\t\tvar preNode: RoadNode;\r\n\t\tvar midNode: RoadNode;\r\n\t\tvar nextNode: RoadNode;\r\n\r\n\t\tvar preHpos: HoneyPoint;\r\n\t\tvar midHpos: HoneyPoint;\r\n\t\tvar nextHpos: HoneyPoint;\r\n\r\n\t\t//var hround:number[][] = [[-1,-1],[-1,0],[0,1],[1,1],[1,0],[0,-1]];\r\n\t\t//var hround2:number[][] = [[-2,-1],[-1,1],[1,2],[2,1],[1,-1],[-1,-2]];\r\n\r\n\t\t//第一阶段优化: 对横,竖,正斜进行优化\r\n\t\tfor (i = 1; i < nodeArr.length - 1; i++) {\r\n\t\t\tpreNode = nodeArr[i - 1] as RoadNode;\r\n\t\t\tmidNode = nodeArr[i] as RoadNode;\r\n\t\t\tnextNode = nodeArr[i + 1] as RoadNode;\r\n\r\n\t\t\tpreHpos = this.getHoneyPoint(preNode);\r\n\t\t\tmidHpos = this.getHoneyPoint(midNode);\r\n\t\t\tnextHpos = this.getHoneyPoint(nextNode);\r\n\r\n\t\t\tvar bool1: Boolean = midNode.cx == preNode.cx && midNode.cx == nextNode.cx;\r\n\r\n\t\t\tvar bool2: Boolean = (midNode.cy == preNode.cy && midNode.cy == nextNode.cy) && ((preNode.cx % 2 == midNode.cx % 2 && midNode.cx % 2 == nextNode.cx % 2));\r\n\r\n\t\t\tvar bool3: Boolean = preHpos.hx == midHpos.hx && midHpos.hx == nextHpos.hx;\r\n\r\n\t\t\tvar bool4: Boolean = preHpos.hy == midHpos.hy && midHpos.hy == nextHpos.hy;\r\n\r\n\t\t\tif (bool1 || bool2 || bool3 || bool4) {\r\n\t\t\t\tnodeArr.splice(i, 1)\r\n\t\t\t\ti--;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//第二阶段优化:对不在横,竖,正斜的格子进行优化\r\n\t\tfor (var i: number = 0; i < nodeArr.length - 2; i++) {\r\n\t\t\tvar startNode: RoadNode = nodeArr[i] as RoadNode;\r\n\t\t\tvar optimizeNode: RoadNode = null;\r\n\r\n\t\t\t//优先从尾部对比,如果能直达就把中间多余的路点删掉\r\n\t\t\tfor (var j: number = nodeArr.length - 1; j > i + 1; j--) {\r\n\t\t\t\tvar targetNode: RoadNode = nodeArr[j] as RoadNode;\r\n\r\n\t\t\t\tif (this.isArriveBetweenTwoNodes(this.getHoneyPoint(startNode), this.getHoneyPoint(targetNode))) {\r\n\t\t\t\t\toptimizeNode = targetNode;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif (optimizeNode) {\r\n\t\t\t\tvar optimizeLen: number = j - i - 1;\r\n\t\t\t\tnodeArr.splice(i + 1, optimizeLen);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn nodeArr\r\n\t}\r\n\r\n\t/**\r\n\t * 两点之间是否可到达\r\n\t */\r\n\tprivate isArriveBetweenTwoNodes(startPoint: HoneyPoint, targetPoint: HoneyPoint): boolean {\r\n\t\tif (startPoint.hx == targetPoint.hx && startPoint.hy == targetPoint.hy) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar disX: number = Math.abs(targetPoint.hx - startPoint.hx);\r\n\t\tvar disY: number = Math.abs(targetPoint.hy - startPoint.hy);\r\n\r\n\t\tvar dirX = 0;\r\n\r\n\t\tif (targetPoint.hx > startPoint.hx) {\r\n\t\t\tdirX = 1;\r\n\t\t}\r\n\t\telse if (targetPoint.hx < startPoint.hx) {\r\n\t\t\tdirX = -1;\r\n\t\t}\r\n\r\n\t\tvar dirY = 0;\r\n\r\n\t\tif (targetPoint.hy > startPoint.hy) {\r\n\t\t\tdirY = 1;\r\n\t\t}\r\n\t\telse if (targetPoint.hy < startPoint.hy) {\r\n\t\t\tdirY = -1;\r\n\t\t}\r\n\r\n\t\tvar rx: number = 0;\r\n\t\tvar ry: number = 0;\r\n\t\tvar intNum: number = 0;\r\n\t\tvar decimal: number = 0;\r\n\r\n\t\tif (disX > disY) {\r\n\t\t\tvar rate: number = disY / disX;\r\n\r\n\t\t\tfor (var i = 0; i < disX; i += 2) {\r\n\t\t\t\try = i * dirY * rate;\r\n\t\t\t\tintNum = dirY > 0 ? Math.floor(startPoint.hy + ry) : Math.ceil(startPoint.hy + ry);\r\n\t\t\t\tdecimal = Math.abs(ry % 1);\r\n\r\n\t\t\t\tvar hpoint1: HoneyPoint = new HoneyPoint();\r\n\t\t\t\thpoint1.hx = startPoint.hx + i * dirX;\r\n\t\t\t\thpoint1.hy = decimal <= 0.5 ? intNum : intNum + 1 * dirY;\r\n\r\n\t\t\t\t//cc.log(i + \" :: \" ,hpoint1.hx, hpoint1.hy,\" yy \",startPoint.hy + i * dirY * rate,ry % 1,rate,intNum,decimal,dirY,ry);\r\n\r\n\t\t\t\try = (i + 1) * dirY * rate;\r\n\t\t\t\tintNum = dirY > 0 ? Math.floor(startPoint.hy + ry) : Math.ceil(startPoint.hy + ry);\r\n\t\t\t\tdecimal = Math.abs(ry % 1);\r\n\r\n\t\t\t\tvar hpoint2: HoneyPoint = new HoneyPoint();\r\n\t\t\t\thpoint2.hx = startPoint.hx + (i + 1) * dirX;\r\n\t\t\t\thpoint2.hy = decimal <= 0.5 ? intNum : intNum + 1 * dirY;\r\n\r\n\t\t\t\try = (i + 2) * dirY * rate;\r\n\t\t\t\tintNum = dirY > 0 ? Math.floor(startPoint.hy + ry) : Math.ceil(startPoint.hy + ry);\r\n\t\t\t\tdecimal = Math.abs(ry % 1);\r\n\r\n\t\t\t\tvar hpoint3: HoneyPoint = new HoneyPoint();\r\n\t\t\t\thpoint3.hx = startPoint.hx + (i + 2) * dirX;\r\n\t\t\t\thpoint3.hy = decimal <= 0.5 ? intNum : intNum + 1 * dirY;\r\n\r\n\t\t\t\tif (!this.isCrossAtAdjacentNodes(startPoint, targetPoint, hpoint1, hpoint2, hpoint3)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar rate: number = disX / disY;\r\n\r\n\t\t\tfor (var i = 0; i < disY; i += 2) {\r\n\t\t\t\trx = i * dirX * rate;\r\n\t\t\t\tintNum = dirX > 0 ? Math.floor(startPoint.hx + rx) : Math.ceil(startPoint.hx + rx);\r\n\t\t\t\tdecimal = Math.abs(rx % 1);\r\n\r\n\t\t\t\tvar hpoint1: HoneyPoint = new HoneyPoint();\r\n\t\t\t\thpoint1.hx = decimal <= 0.5 ? intNum : intNum + 1 * dirX;\r\n\t\t\t\thpoint1.hy = startPoint.hy + i * dirY;\r\n\r\n\t\t\t\trx = (i + 1) * dirX * rate;\r\n\t\t\t\tintNum = dirX > 0 ? Math.floor(startPoint.hx + rx) : Math.ceil(startPoint.hx + rx);\r\n\t\t\t\tdecimal = Math.abs(rx % 1);\r\n\r\n\t\t\t\tvar hpoint2: HoneyPoint = new HoneyPoint();\r\n\t\t\t\thpoint2.hx = decimal <= 0.5 ? intNum : intNum + 1 * dirX;\r\n\t\t\t\thpoint2.hy = startPoint.hy + (i + 1) * dirY;\r\n\r\n\t\t\t\trx = (i + 2) * dirX * rate;\r\n\t\t\t\tintNum = dirX > 0 ? Math.floor(startPoint.hx + rx) : Math.ceil(startPoint.hx + rx);\r\n\t\t\t\tdecimal = Math.abs(rx % 1);\r\n\r\n\t\t\t\tvar hpoint3: HoneyPoint = new HoneyPoint();\r\n\t\t\t\thpoint3.hx = decimal <= 0.5 ? intNum : intNum + 1 * dirX;\r\n\t\t\t\thpoint3.hy = startPoint.hy + (i + 2) * dirY;\r\n\r\n\t\t\t\tif (!this.isCrossAtAdjacentNodes(startPoint, targetPoint, hpoint1, hpoint2, hpoint3)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * 判断三个相邻的点是否可通过\r\n\t * @param node1 \r\n\t * @param node2 \r\n\t */\r\n\tprivate isCrossAtAdjacentNodes(startPoint: HoneyPoint, targetPoint: HoneyPoint, hpoint1: HoneyPoint, hpoint2: HoneyPoint, hpoint3: HoneyPoint): boolean {\r\n\t\tvar node1: RoadNode = this.getNodeByHoneyPoint(hpoint1.hx, hpoint1.hy);\r\n\t\tvar node2: RoadNode = this.getNodeByHoneyPoint(hpoint2.hx, hpoint2.hy);\r\n\t\tvar node3: RoadNode = this.getNodeByHoneyPoint(hpoint3.hx, hpoint3.hy); \t\t\t// 节点3主要用做路径方向的判断\r\n\r\n\t\tif (node1 == node2) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//前两个点只要有一个点不能通过就不能通过,节点3只做方向向导,不用考虑是否可通过和是否存在\r\n\t\tif (!this.isPassNode(node1) || !this.isPassNode(node2)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar dirX1: number = hpoint1.hx - hpoint2.hx;\r\n\t\tvar dirY1: number = hpoint1.hy - hpoint2.hy;\r\n\r\n\t\tvar dirX2: number = hpoint3.hx - hpoint2.hx;\r\n\t\tvar dirY2: number = hpoint3.hy - hpoint2.hy;\r\n\r\n\t\t//hround:number[][] = [[-1,-1],[-1,0],[0,1],[1,1],[1,0],[0,-1]]; //相邻点向量 \r\n\t\t//[-1,1] [1,-1] //特殊相邻点向量\r\n\r\n\t\t//如果不是相邻的两个点 则不能通过\r\n\t\tif ((Math.abs(dirX1) > 1 || Math.abs(dirY1) > 1) || (Math.abs(dirX2) > 1 || Math.abs(dirY2) > 1)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//特殊相邻点 特殊对待\r\n\t\tif (dirX1 == -dirY1) {\t\t\t //如果第一个点和第二个点是特殊相邻点\r\n\t\t\tif (dirX1 == -1) {\r\n\t\t\t\tif (!this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx - 1, hpoint2.hy)) || !this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx, hpoint2.hy + 1))) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (!this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx + 1, hpoint2.hy)) || !this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx, hpoint2.hy - 1))) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//第一个点和第二个点已经可通过,如果第二个点是终点,那么可直达\r\n\t\tif (hpoint2.hx == targetPoint.hx && hpoint2.hy == targetPoint.hy) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t//特殊相邻点 特殊对待\r\n\t\tif (dirX2 == -dirY2) {\t\t\t//如果第二个点和第三个点是特殊相邻点 \r\n\t\t\tif (dirX2 == -1) {\r\n\t\t\t\tif (!this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx - 1, hpoint2.hy)) || !this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx, hpoint2.hy + 1))) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (!this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx + 1, hpoint2.hy)) || !this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx, hpoint2.hy - 1))) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//如果相邻的点和目标点在同一直线\r\n\t\tif (hpoint1.hx == hpoint2.hx && hpoint2.hx == hpoint3.hx) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t//var hround2:number[][] = [[-2,-1],[-1,1],[1,2],[2,1],[1,-1],[-1,-2]];\r\n\r\n\t\tif (this.isPassNode(this.getNodeByHoneyPoint(hpoint2.hx + (dirX1 + dirX2), hpoint2.hy + (dirY1 + dirY2)))) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * 获得六边形格子坐标(以正斜角和反斜角为标准的坐标)\r\n\t * @param node \r\n\t */\r\n\tpublic getHoneyPoint(node: RoadNode): HoneyPoint {\r\n\t\tvar hx: number = node.cy + Math.ceil(node.cx / 2); //设置反斜角为x坐标\r\n\t\tvar hy: number = node.cy - Math.floor(node.cx / 2); //设置正斜角为y坐标\r\n\r\n\t\treturn new HoneyPoint(hx, hy);\r\n\t}\r\n\r\n\tpublic getNodeByHoneyPoint(hx: number, hy: number): RoadNode {\r\n\t\tvar cx: number = hx - hy; //研究出来的\r\n\t\tvar cy: number = Math.floor((hx - hy) / 2) + hy; //研究出来的\r\n\r\n\t\treturn this._roadNodes[cx + \"_\" + cy] as RoadNode;\r\n\t}\r\n\r\n\t/**\r\n\t * 获得一个点周围指定方向相邻的一个点\r\n\t * @param node 制定的点\r\n\t * @param roundIndex 0是下,然后顺时针,5右下\r\n\t */\r\n\tpublic getRoundNodeByIndex(node: RoadNode, roundIndex: number): RoadNode {\r\n\t\tif (!node) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\troundIndex = roundIndex % 6;\r\n\r\n\t\tvar round: number[][];\r\n\r\n\t\tnode.cx % 2 == 0 ? round = this._round1 : round = this._round2;\r\n\t\tvar cx: number = node.cx + round[roundIndex][0];\r\n\t\tvar cy: number = node.cy + round[roundIndex][1];\r\n\r\n\t\treturn this._roadNodes[cx + \"_\" + cy] as RoadNode;\r\n\t}\r\n\r\n\t/**\r\n\t * 获得一个点周围所有的相邻点\r\n\t * @param node \r\n\t */\r\n\tpublic getRoundNodes(node: RoadNode): RoadNode[] {\r\n\t\tvar round: number[][];\r\n\r\n\t\tnode.cx % 2 == 0 ? round = this._round1 : round = this._round2;\r\n\r\n\t\tvar nodeArr: RoadNode[] = [];\r\n\r\n\t\tfor (var i: number = 0; i < round.length; i++) {\r\n\t\t\tvar cx: number = node.cx + round[i][0];\r\n\t\t\tvar cy: number = node.cy + round[i][1];\r\n\r\n\t\t\tvar node2: RoadNode = this._roadNodes[cx + \"_\" + cy] as RoadNode;\r\n\r\n\t\t\tnodeArr.push(node2);\r\n\t\t}\r\n\r\n\t\treturn nodeArr;\r\n\t}\r\n\r\n\t/**\r\n\t * 是否是可通过的点 \r\n\t * @param node \r\n\t */\r\n\tprivate isPassNode(node: RoadNode): boolean {\r\n\t\tif (!node || node.value == 1) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t *测试寻路步骤 \r\n\t * @param startNode\r\n\t * @param targetNode\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic testSeekPathStep(startNode: RoadNode, targetNode: RoadNode, callback: Function, target: any, time: number = 100): void {\r\n\t\tthis._startNode = startNode;\r\n\t\tthis._currentNode = startNode;\r\n\t\tthis._targetNode = targetNode;\r\n\r\n\t\tif (this._targetNode.value == 1)\r\n\t\t\treturn;\r\n\r\n\t\tthis._startNode.g = 0; //重置起始节点的g值\r\n\t\tthis._startNode.resetTree(); //清除起始节点原有的二叉堆关联关系\r\n\r\n\t\tthis._binaryTreeNode.refleshTag(); //刷新二叉堆tag,用于后面判断是不是属于当前次的寻路\r\n\t\t//this._binaryTreeNode.addTreeNode(this._startNode); //把起始节点设置为二叉堆结构的根节点\r\n\r\n\t\tthis._closelist = [];\r\n\r\n\t\tvar step: number = 0;\r\n\r\n\t\tclearInterval(this.handle);\r\n\t\tthis.handle = setInterval(() => {\r\n\r\n\t\t\tif (step > this.maxStep) {\r\n\t\t\t\t// //console.log(\"没找到目标计算步骤为:\", step);\r\n\t\t\t\tclearInterval(this.handle);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tstep++;\r\n\r\n\t\t\tthis.searchRoundNodes(this._currentNode);\r\n\r\n\t\t\tif (this._binaryTreeNode.isTreeNull()) //二叉堆树里已经没有任何可搜寻的点了,则寻路结束,每找到目标\r\n\t\t\t{\r\n\t\t\t\t// //console.log(\"没找到目标计算步骤为:\", step);\r\n\t\t\t\tclearInterval(this.handle);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis._currentNode = this._binaryTreeNode.getMin_F_Node();\r\n\r\n\t\t\tif (this._currentNode == this._targetNode) {\r\n\t\t\t\t// //console.log(\"找到目标计算步骤为:\", step);\r\n\t\t\t\tclearInterval(this.handle);\r\n\r\n\t\t\t\tthis._openlist = this._binaryTreeNode.getOpenList();\r\n\t\t\t\tcallback.apply(target, [this._startNode, this._targetNode, this._currentNode, this._openlist, this._closelist, this.getPath()]);\r\n\t\t\t} else {\r\n\t\t\t\tthis._binaryTreeNode.setRoadNodeInCloseList(this._currentNode);//打入关闭列表标记\r\n\t\t\t\tthis._openlist = this._binaryTreeNode.getOpenList();\r\n\t\t\t\tthis._closelist.push(this._currentNode);\r\n\t\t\t\tcallback.apply(target, [this._startNode, this._targetNode, this._currentNode, this._openlist, this._closelist, null]);\r\n\t\t\t}\r\n\r\n\t\t}, time);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t *查找一个节点周围可通过的点 \r\n\t * @param node\r\n\t * @return \r\n\t * \r\n\t */\r\n\tprivate searchRoundNodes(node: RoadNode): void {\r\n\t\tvar round: number[][];\r\n\r\n\t\tnode.cx % 2 == 0 ? round = this._round1 : round = this._round2;\r\n\r\n\t\tfor (var i: number = 0; i < round.length; i++) {\r\n\t\t\tvar cx: number = node.cx + round[i][0];\r\n\t\t\tvar cy: number = node.cy + round[i][1];\r\n\t\t\tvar node2: RoadNode = this._roadNodes[cx + \"_\" + cy] as RoadNode;\r\n\r\n\t\t\tif (node2 != null && node2 != this._startNode && node2.value != 1 && !this.isInCloseList(node2)) {\r\n\t\t\t\tthis.setNodeF(node2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t *设置节点的F值 \r\n\t * @param node\r\n\t * \r\n\t */\r\n\tpublic setNodeF(node: RoadNode): void {\r\n\t\tvar g: number;\r\n\r\n\t\tif (node.cx == this._currentNode.cx || node.cy == this._currentNode.cy) {\r\n\t\t\tg = this._currentNode.g + this.COST_STRAIGHT;\r\n\t\t} else {\r\n\t\t\tg = this._currentNode.g + this.COST_DIAGONAL;\r\n\t\t}\r\n\r\n\t\tif (this.isInOpenList(node)) {\r\n\t\t\tif (g < node.g) {\r\n\t\t\t\tnode.g = g;\r\n\r\n\t\t\t\tnode.parent = this._currentNode;\r\n\t\t\t\tnode.h = (Math.abs(this._targetNode.cx - node.cx) + Math.abs(this._targetNode.cy - node.cy)) * this.COST_STRAIGHT;\r\n\t\t\t\tnode.f = node.g + node.h;\r\n\r\n\t\t\t\t//节点的g值已经改变,把节点先从二堆叉树结构中删除,再重新添加进二堆叉树\r\n\t\t\t\tthis._binaryTreeNode.removeTreeNode(node);\r\n\t\t\t\tthis._binaryTreeNode.addTreeNode(node);\r\n\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tnode.g = g;\r\n\r\n\t\t\tthis._binaryTreeNode.setRoadNodeInOpenList(node);//给节点打入开放列表的标志\r\n\t\t\tnode.resetTree();\r\n\r\n\t\t\tnode.parent = this._currentNode;\r\n\t\t\tnode.h = (Math.abs(this._targetNode.cx - node.cx) + Math.abs(this._targetNode.cy - node.cy)) * this.COST_STRAIGHT;\r\n\t\t\tnode.f = node.g + node.h;\r\n\r\n\t\t\tthis._binaryTreeNode.addTreeNode(node);\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\t/**\r\n\t *节点是否在开启列表 \r\n\t * @param node\r\n\t * @return \r\n\t * \r\n\t */\r\n\tprivate isInOpenList(node: RoadNode): Boolean {\r\n\t\treturn this._binaryTreeNode.isInOpenList(node);\r\n\t}\r\n\r\n\t/**\r\n\t * 节点是否在关闭列表\r\n\t * @param node \r\n\t * @returns \r\n\t */\r\n\tprivate isInCloseList(node: RoadNode): Boolean {\r\n\t\treturn this._binaryTreeNode.isInCloseList(node);\r\n\t}\r\n\r\n\tpublic dispose(): void {\r\n\t\tthis._roadNodes = null;\r\n\t\tthis._round1 = null;\r\n\t\tthis._round2 = null;\r\n\t}\r\n}\r\n\r\n/**\r\n * 六边形格子坐标(以正斜角和反斜角为标准的坐标)\r\n */\r\nclass HoneyPoint {\r\n\tpublic hx: number = 0;\r\n\tpublic hy: number = 0;\r\n\r\n\tconstructor(x: number = 0, y: number = 0) {\r\n\t\tthis.hx = x;\r\n\t\tthis.hy = y;\r\n\t}\r\n}","import RoadNode from \"./RoadNode\";\r\nimport IRoadSeeker from \"./IRoadSeeker\";\r\nimport BinaryTreeNode from \"./BinaryTreeNode\";\r\n\r\n/**\r\n * A*寻路算法 \r\n * @author 落日故人 QQ 583051842\r\n * \r\n */\r\nexport default class AStarRoadSeeker implements IRoadSeeker {\r\n /**\r\n * 横向移动一个格子的代价\r\n */\r\n private COST_STRAIGHT: number = 10;\r\n\r\n /**\r\n * 斜向移动一个格子的代价\r\n */\r\n private COST_DIAGONAL: number = 14;\r\n\r\n /**\r\n * 最大搜寻步骤数,超过这个值时表示找不到目标 \r\n */\r\n private maxStep: number = 15000;\r\n\r\n /**\r\n * 开启列表\r\n */\r\n private _openlist: Array;\r\n\r\n /**\r\n *关闭列表 \r\n */\r\n private _closelist: Array;\r\n\r\n /**\r\n * 二叉堆存储结构\r\n */\r\n private _binaryTreeNode: BinaryTreeNode = new BinaryTreeNode();\r\n\r\n /**\r\n *开始节点 \r\n */\r\n private _startNode: RoadNode;\r\n\r\n /**\r\n *当前检索节点 \r\n */\r\n private _currentNode: RoadNode;\r\n\r\n /**\r\n *目标节点 \r\n */\r\n private _targetNode: RoadNode;\r\n\r\n /**\r\n *地图路点数据 \r\n */\r\n private _roadNodes: { [key: number]: RoadNode };\r\n\r\n /**\r\n *用于检索一个节点周围8个点的向量数组 \r\n */\r\n private _round: number[][] = [[0, -1], [1, -1], [1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0], [-1, -1]]\r\n\r\n private handle: number = -1;\r\n\r\n /**\r\n * 是否优化路径\r\n */\r\n private optimize: boolean = true;\r\n\r\n public constructor(roadNodes: { [key: string]: RoadNode }) {\r\n this._roadNodes = roadNodes;\r\n }\r\n\r\n\r\n /**\r\n *寻路入口方法 \r\n * @param startNode\r\n * @param targetNode\r\n * @return \r\n * \r\n */\r\n public seekPath(startNode: RoadNode, targetNode: RoadNode): Array {\r\n this._startNode = startNode;\r\n this._currentNode = startNode;\r\n this._targetNode = targetNode;\r\n\r\n if (!this._startNode || !this._targetNode)\r\n return [];\r\n\r\n if (this._targetNode.value == 1) {\r\n // //console.log(\"目标不可达到:\");\r\n return [];\r\n }\r\n\r\n\r\n this._startNode.g = 0; //重置起始节点的g值\r\n this._startNode.resetTree(); //清除起始节点原有的二叉堆关联关系\r\n\r\n this._binaryTreeNode.refleshTag(); //刷新二叉堆tag,用于后面判断是不是属于当前次的寻路\r\n //this._binaryTreeNode.addTreeNode(this._startNode); //把起始节点设置为二叉堆结构的根节点\r\n\r\n var step: number = 0;\r\n\r\n while (true) {\r\n if (step > this.maxStep) {\r\n // //console.log(\"没找到目标计算步骤为:\", step);\r\n return [];\r\n }\r\n\r\n step++;\r\n\r\n this.searchRoundNodes(this._currentNode);\r\n\r\n if (this._binaryTreeNode.isTreeNull()) //二叉堆树里已经没有任何可搜寻的点了,则寻路结束,每找到目标\r\n {\r\n // //console.log(\"没找到目标计算步骤为:\", step);\r\n return [];\r\n }\r\n\r\n this._currentNode = this._binaryTreeNode.getMin_F_Node();\r\n\r\n if (this._currentNode == this._targetNode) {\r\n // //console.log(\"找到目标计算步骤为:\", step);\r\n return this.getPath();\r\n }\r\n else {\r\n this._binaryTreeNode.setRoadNodeInCloseList(this._currentNode);//打入关闭列表标记\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n\r\n /**\r\n *寻路入口方法 如果没有寻到目标,则返回离目标最近的路径\r\n * @param startNode\r\n * @param targetNode\r\n * @return \r\n * \r\n */\r\n public seekPath2(startNode: RoadNode, targetNode: RoadNode): Array {\r\n this._startNode = startNode;\r\n this._currentNode = startNode;\r\n this._targetNode = targetNode;\r\n\r\n if (!this._startNode || !this._targetNode)\r\n return [];\r\n\r\n\r\n var newMaxStep: number = this.maxStep;\r\n\r\n if (!this.isPassNode(this._targetNode)) {\r\n //如果不能直达目标,最大寻路步骤 = 为两点间的预估距离的2倍\r\n newMaxStep = (Math.abs(this._targetNode.cx - this._startNode.cx) + Math.abs(this._targetNode.cy - this._startNode.cy)) * 2;\r\n if (newMaxStep > this.maxStep) {\r\n newMaxStep = this.maxStep;\r\n }\r\n }\r\n\r\n this._startNode.g = 0; //重置起始节点的g值\r\n this._startNode.resetTree(); //清除起始节点原有的二叉堆关联关系\r\n\r\n this._binaryTreeNode.refleshTag(); //刷新二叉堆tag,用于后面判断是不是属于当前次的寻路\r\n //this._binaryTreeNode.addTreeNode(this._startNode); //把起始节点设置为二叉堆结构的根节点\r\n\r\n var step: number = 0;\r\n\r\n var closestNode: RoadNode = null; //距离目标最近的路点\r\n\r\n while (true) {\r\n if (step > newMaxStep) {\r\n // //console.log(\"没找到目标计算步骤为:\", step);\r\n return this.seekPath(startNode, closestNode);\r\n }\r\n\r\n step++;\r\n\r\n this.searchRoundNodes(this._currentNode);\r\n\r\n if (this._binaryTreeNode.isTreeNull()) //二叉堆树里已经没有任何可搜寻的点了,则寻路结束,没找到目标\r\n {\r\n // //console.log(\"没找到目标计算步骤为:\", step);\r\n return this.seekPath(startNode, closestNode);\r\n }\r\n\r\n this._currentNode = this._binaryTreeNode.getMin_F_Node();\r\n\r\n\r\n if (closestNode == null) {\r\n closestNode = this._currentNode;\r\n }\r\n else {\r\n if (this._currentNode.h < closestNode.h) {\r\n closestNode = this._currentNode;\r\n }\r\n }\r\n\r\n if (this._currentNode == this._targetNode) {\r\n // //console.log(\"找到目标计算步骤为:\", step);\r\n return this.getPath();\r\n }\r\n else {\r\n this._binaryTreeNode.setRoadNodeInCloseList(this._currentNode);//打入关闭列表标记\r\n }\r\n }\r\n\r\n return this.seekPath(startNode, closestNode);\r\n }\r\n\r\n /**\r\n * 对路节点进行排序\r\n * @param node1 \r\n * @param node2 \r\n */\r\n private sortNode(node1: RoadNode, node2: RoadNode) {\r\n if (node1.f < node2.f) {\r\n return -1;\r\n }\r\n else if (node1.f > node2.f) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * 获得最终寻路到的所有路点 \r\n * @return \r\n * \r\n */\r\n private getPath(): Array {\r\n var nodeArr: Array = [];\r\n\r\n var node: RoadNode = this._targetNode;\r\n\r\n while (node != this._startNode) {\r\n nodeArr.unshift(node);\r\n node = node.parent;\r\n }\r\n\r\n nodeArr.unshift(this._startNode);\r\n\r\n if (!this.optimize) {\r\n return nodeArr;\r\n }\r\n\r\n //第一阶段优化: 对横,竖,正斜进行优化\r\n //把多个节点连在一起的,横向或者斜向的一连串点,除两边的点保留\r\n for (var i: number = 1; i < nodeArr.length - 1; i++) {\r\n var preNode: RoadNode = nodeArr[i - 1] as RoadNode;\r\n var midNode: RoadNode = nodeArr[i] as RoadNode;\r\n var nextNode: RoadNode = nodeArr[i + 1] as RoadNode;\r\n\r\n var bool1: Boolean = midNode.cx == preNode.cx && midNode.cx == nextNode.cx;\r\n var bool2: Boolean = midNode.cy == preNode.cy && midNode.cy == nextNode.cy;\r\n var bool3: Boolean = ((midNode.cx - preNode.cx) / (midNode.cy - preNode.cy)) * ((nextNode.cx - midNode.cx) / (nextNode.cy - midNode.cy)) == 1\r\n\r\n if (bool1 || bool2 || bool3) {\r\n nodeArr.splice(i, 1)\r\n i--;\r\n }\r\n }\r\n\r\n //return nodeArr;\r\n\r\n //第二阶段优化:对不在横,竖,正斜的格子进行优化\r\n for (var i: number = 0; i < nodeArr.length - 2; i++) {\r\n var startNode: RoadNode = nodeArr[i] as RoadNode;\r\n var optimizeNode: RoadNode = null;\r\n\r\n //优先从尾部对比,如果能直达就把中间多余的路点删掉\r\n for (var j: number = nodeArr.length - 1; j > i + 1; j--) {\r\n var targetNode: RoadNode = nodeArr[j] as RoadNode;\r\n\r\n //在第一阶段优已经优化过横,竖,正斜了,所以再出现是肯定不能优化的,可以忽略\r\n if (startNode.cx == targetNode.cx || startNode.cy == targetNode.cy || Math.abs(targetNode.cx - startNode.cx) == Math.abs(targetNode.cy - startNode.cy)) {\r\n continue;\r\n }\r\n\r\n if (this.isArriveBetweenTwoNodes(startNode, targetNode)) {\r\n optimizeNode = targetNode;\r\n break;\r\n }\r\n\r\n }\r\n\r\n if (optimizeNode) {\r\n var optimizeLen: number = j - i - 1;\r\n nodeArr.splice(i + 1, optimizeLen);\r\n }\r\n }\r\n return nodeArr;\r\n }\r\n\r\n /**\r\n * 两点之间是否可到达\r\n */\r\n private isArriveBetweenTwoNodes(startNode: RoadNode, targetNode: RoadNode): boolean {\r\n if (startNode == targetNode) {\r\n return false;\r\n }\r\n\r\n var disX: number = Math.abs(targetNode.cx - startNode.cx);\r\n var disY: number = Math.abs(targetNode.cy - startNode.cy);\r\n\r\n var dirX = 0;\r\n\r\n if (targetNode.cx > startNode.cx) {\r\n dirX = 1;\r\n }\r\n else if (targetNode.cx < startNode.cx) {\r\n dirX = -1;\r\n }\r\n\r\n var dirY = 0;\r\n\r\n if (targetNode.cy > startNode.cy) {\r\n dirY = 1;\r\n }\r\n else if (targetNode.cy < startNode.cy) {\r\n dirY = -1;\r\n }\r\n\r\n var rx: number = 0;\r\n var ry: number = 0;\r\n var intNum: number = 0;\r\n var decimal: number = 0;\r\n\r\n if (disX > disY) {\r\n var rate: number = disY / disX;\r\n\r\n for (var i = 0; i < disX; i++) {\r\n ry = startNode.cy + i * dirY * rate;\r\n intNum = Math.floor(ry);\r\n decimal = ry % 1;\r\n\r\n var cx1: number = startNode.cx + i * dirX;\r\n var cy1: number = decimal <= 0.5 ? intNum : intNum + 1;\r\n\r\n\r\n ry = startNode.cy + (i + 1) * dirY * rate;\r\n intNum = Math.floor(ry);\r\n decimal = ry % 1;\r\n\r\n var cx2: number = startNode.cx + (i + 1) * dirX;\r\n var cy2: number = decimal <= 0.5 ? intNum : intNum + 1;\r\n\r\n var node1: RoadNode = this._roadNodes[cx1 + \"_\" + cy1] as RoadNode;\r\n var node2: RoadNode = this._roadNodes[cx2 + \"_\" + cy2] as RoadNode;\r\n\r\n //cc.log(i + \" :: \" + node1.cy,\" yy \",startNode.cy + i * rate,ry % 1);\r\n\r\n if (!this.isCrossAtAdjacentNodes(node1, node2)) {\r\n return false;\r\n }\r\n }\r\n\r\n } else {\r\n var rate: number = disX / disY;\r\n\r\n for (var i = 0; i < disY; i++) {\r\n rx = i * dirX * rate;\r\n intNum = dirX > 0 ? Math.floor(startNode.cx + rx) : Math.ceil(startNode.cx + rx);\r\n decimal = Math.abs(rx % 1);\r\n\r\n var cx1: number = decimal <= 0.5 ? intNum : intNum + 1 * dirX;\r\n var cy1: number = startNode.cy + i * dirY;\r\n\r\n\r\n rx = (i + 1) * dirX * rate;\r\n intNum = dirX > 0 ? Math.floor(startNode.cx + rx) : Math.ceil(startNode.cx + rx);\r\n decimal = Math.abs(rx % 1);\r\n\r\n var cx2: number = decimal <= 0.5 ? intNum : intNum + 1 * dirX;\r\n var cy2: number = startNode.cy + (i + 1) * dirY;\r\n\r\n var node1: RoadNode = this._roadNodes[cx1 + \"_\" + cy1] as RoadNode;\r\n var node2: RoadNode = this._roadNodes[cx2 + \"_\" + cy2] as RoadNode;\r\n\r\n if (!this.isCrossAtAdjacentNodes(node1, node2)) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * 判断两个相邻的点是否可通过\r\n * @param node1 \r\n * @param node2 \r\n */\r\n private isCrossAtAdjacentNodes(node1: RoadNode, node2: RoadNode): boolean {\r\n if (node1 == node2) {\r\n return false;\r\n }\r\n\r\n //两个点只要有一个点不能通过就不能通过\r\n if (!this.isPassNode(node1) || !this.isPassNode(node2)) {\r\n return false;\r\n }\r\n\r\n var dirX = node2.cx - node1.cx;\r\n var dirY = node2.cy - node1.cy\r\n\r\n //如果不是相邻的两个点 则不能通过\r\n if (Math.abs(dirX) > 1 || Math.abs(dirY) > 1) {\r\n return false;\r\n }\r\n\r\n //如果相邻的点是在同一行,或者同一列,则判定为可通过\r\n if ((node1.cx == node2.cx) || (node1.cy == node2.cy)) {\r\n return true;\r\n }\r\n\r\n //只剩对角情况了\r\n if (\r\n this.isPassNode(this._roadNodes[node1.cx + \"_\" + (node1.cy + dirY)]) &&\r\n this.isPassNode(this._roadNodes[(node1.cx + dirX) + \"_\" + node1.cy])\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * 是否是可通过的点 \r\n * @param node \r\n */\r\n private isPassNode(node: RoadNode): boolean {\r\n if (!node || node.value == 1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n *测试寻路步骤 \r\n * @param startNode\r\n * @param targetNode\r\n * @return \r\n * \r\n */\r\n public testSeekPathStep(startNode: RoadNode, targetNode: RoadNode, callback: Function, target: any, time: number = 100): void {\r\n this._startNode = startNode;\r\n this._currentNode = startNode;\r\n this._targetNode = targetNode;\r\n\r\n if (this._targetNode.value == 1)\r\n return;\r\n\r\n this._startNode.g = 0; //重置起始节点的g值\r\n this._startNode.resetTree(); //清除起始节点原有的二叉堆关联关系\r\n\r\n this._binaryTreeNode.refleshTag(); //刷新二叉堆tag,用于后面判断是不是属于当前次的寻路\r\n //this._binaryTreeNode.addTreeNode(this._startNode); //把起始节点设置为二叉堆结构的根节点\r\n\r\n this._closelist = [];\r\n\r\n var step: number = 0;\r\n\r\n clearInterval(this.handle);\r\n this.handle = setInterval(() => {\r\n if (step > this.maxStep) {\r\n // //console.log(\"没找到目标计算步骤为:\", step);\r\n clearInterval(this.handle);\r\n return;\r\n }\r\n\r\n step++;\r\n\r\n this.searchRoundNodes(this._currentNode);\r\n\r\n if (this._binaryTreeNode.isTreeNull()) //二叉堆树里已经没有任何可搜寻的点了,则寻路结束,每找到目标\r\n {\r\n // //console.log(\"没找到目标计算步骤为:\", step);\r\n clearInterval(this.handle);\r\n return;\r\n }\r\n\r\n this._currentNode = this._binaryTreeNode.getMin_F_Node();\r\n\r\n if (this._currentNode == this._targetNode) {\r\n // //console.log(\"找到目标计算步骤为:\", step);\r\n clearInterval(this.handle);\r\n\r\n this._openlist = this._binaryTreeNode.getOpenList();\r\n callback.apply(target, [this._startNode, this._targetNode, this._currentNode, this._openlist, this._closelist, this.getPath()]);\r\n }\r\n else {\r\n this._binaryTreeNode.setRoadNodeInCloseList(this._currentNode);//打入关闭列表标记\r\n this._openlist = this._binaryTreeNode.getOpenList();\r\n this._closelist.push(this._currentNode);\r\n callback.apply(target, [this._startNode, this._targetNode, this._currentNode, this._openlist, this._closelist, null]);\r\n }\r\n\r\n }, time);\r\n\r\n }\r\n\r\n /**\r\n *查找一个节点周围可通过的点 \r\n * @param node\r\n * @return \r\n * \r\n */\r\n private searchRoundNodes(node: RoadNode): void {\r\n for (var i: number = 0; i < this._round.length; i++) {\r\n var cx: number = node.cx + this._round[i][0];\r\n var cy: number = node.cy + this._round[i][1];\r\n var node2: RoadNode = this._roadNodes[cx + \"_\" + cy] as RoadNode\r\n\r\n if (node2 != null && node2 != this._startNode && node2.value != 1 && !this.isInCloseList(node2) && !this.inInCorner(node2)) {\r\n this.setNodeF(node2);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *设置节点的F值 \r\n * @param node\r\n * \r\n */\r\n public setNodeF(node: RoadNode): void {\r\n var g: number;\r\n\r\n if (node.cx == this._currentNode.cx || node.cy == this._currentNode.cy) {\r\n g = this._currentNode.g + this.COST_STRAIGHT;\r\n }\r\n else {\r\n g = this._currentNode.g + this.COST_DIAGONAL;\r\n }\r\n\r\n if (this.isInOpenList(node)) {\r\n if (g < node.g) {\r\n node.g = g;\r\n\r\n node.parent = this._currentNode;\r\n node.h = (Math.abs(this._targetNode.cx - node.cx) + Math.abs(this._targetNode.cy - node.cy)) * this.COST_STRAIGHT;\r\n node.f = node.g + node.h;\r\n\r\n //节点的g值已经改变,把节点先从二堆叉树结构中删除,再重新添加进二堆叉树\r\n this._binaryTreeNode.removeTreeNode(node);\r\n this._binaryTreeNode.addTreeNode(node);\r\n }\r\n }\r\n else {\r\n node.g = g;\r\n\r\n this._binaryTreeNode.setRoadNodeInOpenList(node);//给节点打入开放列表的标志\r\n node.resetTree();\r\n\r\n node.parent = this._currentNode;\r\n node.h = (Math.abs(this._targetNode.cx - node.cx) + Math.abs(this._targetNode.cy - node.cy)) * this.COST_STRAIGHT;\r\n node.f = node.g + node.h;\r\n\r\n this._binaryTreeNode.addTreeNode(node);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n /**\r\n *节点是否在开启列表 \r\n * @param node\r\n * @return \r\n */\r\n private isInOpenList(node: RoadNode): Boolean {\r\n return this._binaryTreeNode.isInOpenList(node);\r\n }\r\n\r\n /**\r\n * 节点是否在关闭列表 \r\n * @param node \r\n * @returns \r\n */\r\n private isInCloseList(node: RoadNode): Boolean {\r\n return this._binaryTreeNode.isInCloseList(node);\r\n }\r\n\r\n /**\r\n *节点是否在拐角处 \r\n * @return \r\n * \r\n */\r\n private inInCorner(node: RoadNode): Boolean {\r\n if (node.cx == this._currentNode.cx || node.cy == this._currentNode.cy) {\r\n return false;\r\n }\r\n\r\n var node1: RoadNode = this._roadNodes[this._currentNode.cx + \"_\" + node.cy] as RoadNode;\r\n var node2: RoadNode = this._roadNodes[node.cx + \"_\" + this._currentNode.cy] as RoadNode;\r\n\r\n if (this.isPassNode(node1) && this.isPassNode(node2)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public dispose(): void {\r\n this._roadNodes = null;\r\n this._round = null;\r\n }\r\n}\r\n","export class AttManager{\r\n /**\r\n * @zh 单例\r\n */\r\n private static instance: AttManager;\r\n /**\r\n * @zh 静态获取单例函数\r\n * @return 单例 \r\n */\r\n public static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new AttManager();\r\n }\r\n return this.instance;\r\n }\r\n\r\n \r\n}","/*\r\n * @Author: dgflash\r\n * @Date: 2022-09-01 18:00:28\r\n * @LastEditors: dgflash\r\n * @LastEditTime: 2022-09-02 10:22:36\r\n */\r\nimport { AudioClip, AudioSource, error, _decorator } from 'cc';\r\nimport ResHelper from '../core/manager/ResHelper';\r\nconst { ccclass, menu } = _decorator;\r\n\r\n/**\r\n * 注:用playOneShot播放的音乐效果,在播放期间暂时没办法即时关闭音乐\r\n */\r\n\r\n/** 游戏音效 */\r\n@ccclass('AudioEffect')\r\nexport class AudioEffect extends AudioSource {\r\n private effects: Map = new Map();\r\n\r\n /**\r\n * 加载音效并播放\r\n * @param url 音效资源地址\r\n * @param callback 资源加载完成并开始播放回调\r\n */\r\n load(url: string, callback?: Function) {\r\n let acp = ResHelper.get(url, AudioClip) as AudioClip;\r\n if (acp) {\r\n // this.effects.set(url, acp);\r\n this.playOneShot(acp, this.volume);\r\n callback && callback();\r\n } else {\r\n ResHelper.load(url, AudioClip, (err: Error | null, data: AudioClip) => {\r\n if (err) {\r\n error(err);\r\n } else {\r\n this.effects.set(url, data);\r\n this.playOneShot(data, this.volume);\r\n callback && callback();\r\n }\r\n });\r\n }\r\n\r\n }\r\n playEff(mp3:AudioClip){\r\n this.playOneShot(mp3, 1);\r\n }\r\n\r\n /** 释放所有已使用过的音效资源 */\r\n release() {\r\n for (let key in this.effects) {\r\n ResHelper.releaseDir(key);\r\n }\r\n this.effects.clear();\r\n }\r\n}\r\n","/*\r\n * @Author: dgflash\r\n * @Date: 2022-09-01 18:00:28\r\n * @LastEditors: dgflash\r\n * @LastEditTime: 2022-09-02 10:22:36\r\n */\r\nimport { AudioClip, AudioSource, error, _decorator } from 'cc';\r\nimport ResHelper from '../core/manager/ResHelper';\r\nconst { ccclass, menu } = _decorator;\r\n\r\n/**\r\n * 注:用playOneShot播放的音乐效果,在播放期间暂时没办法即时关闭音乐\r\n */\r\n\r\n/** 游戏音效 */\r\n@ccclass('AudioLongEffect')\r\nexport class AudioLongEffect extends AudioSource {\r\n private effects: Map = new Map();\r\n\r\n /**\r\n * 加载音效并播放\r\n * @param url 音效资源地址\r\n * @param callback 资源加载完成并开始播放回调\r\n */\r\n load(url: string, callback?: Function) {\r\n let acp = ResHelper.get(url, AudioClip) as AudioClip;\r\n if (acp) {\r\n // this.effects.set(url, acp);\r\n // this.playOneShot(acp, this.volume);\r\n this.clip = acp;\r\n this.play();\r\n callback && callback();\r\n } else {\r\n ResHelper.load(url, AudioClip, (err: Error | null, data: AudioClip) => {\r\n if (err) {\r\n error(err);\r\n } else {\r\n this.effects.set(url, data);\r\n // this.playOneShot(data, this.volume);\r\n this.clip = data;\r\n this.play();\r\n callback && callback();\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n /** 释放所有已使用过的音效资源 */\r\n release() {\r\n for (let key in this.effects) {\r\n ResHelper.releaseDir(key);\r\n }\r\n this.effects.clear();\r\n }\r\n}\r\n","import { Component } from \"cc\";\r\nimport { AudioEffect } from \"./AudioEffect\";\r\nimport { AudioMusic } from \"./AudioMusic\";\r\nimport { AudioLongEffect } from \"./AudioLongEffect\";\r\nimport { sys } from \"cc\";\r\nimport { AudioClip } from \"cc\";\r\n\r\nconst LOCAL_STORE_KEY = \"game_audio\";\r\n\r\n/** \r\n * 音频管理\r\n * @example \r\n */\r\nexport class AudioManager extends Component {\r\n private local_data: any = {};\r\n\r\n private music!: AudioMusic;\r\n private effect!: AudioEffect;\r\n\r\n private longeffect!: AudioLongEffect;\r\n\r\n private _volume_music: number = 1;\r\n private _volume_effect: number = 1;\r\n private _volume_music_now: number = 1;\r\n private _volume_effect_now: number = 1;\r\n private _switch_music: boolean = true;\r\n private _switch_effect: boolean = true;\r\n private _curmusicurl: string = '';\r\n private _agomusicurl: string = '';\r\n\r\n \r\n /**\r\n * @zh 单例\r\n */\r\n private static instance: AudioManager;\r\n /**\r\n * @zh 静态获取单例函数\r\n * @return 单例 \r\n */\r\n public static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new AudioManager();\r\n }\r\n return this.instance;\r\n }\r\n\r\n\r\n /**\r\n * 设置背景音乐播放完成回调\r\n * @param callback 背景音乐播放完成回调\r\n */\r\n setMusicComplete(callback: Function | null = null) {\r\n this.music.onComplete = callback;\r\n }\r\n\r\n /**\r\n * 播放背景音乐\r\n * @param url 资源地址\r\n * @param callback 音乐播放完成事件\r\n */\r\n playMusic(url: string, callback?: Function) {\r\n return;\r\n if (this._curmusicurl != url) {\r\n this.music.stop();\r\n this._agomusicurl = this.music._url;\r\n this.music.load(url, this._switch_music, () => {\r\n callback && callback();\r\n });\r\n this._curmusicurl = url\r\n this.music.loop = true;\r\n }\r\n\r\n }\r\n\r\n playLastMusic() {\r\n // ago\r\n if (this._agomusicurl != '') {\r\n this.playMusic(this._agomusicurl);\r\n }\r\n }\r\n /**\r\n * 获取背景音乐播放进度\r\n */\r\n get progressMusic(): number {\r\n return this.music.progress;\r\n }\r\n /**\r\n * 设置背景乐播放进度\r\n * @param value 播放进度值\r\n */\r\n set progressMusic(value: number) {\r\n this.music.progress = value;\r\n }\r\n\r\n /**\r\n * 获取背景音乐音量\r\n */\r\n get volumeMusic(): number {\r\n return this._volume_music;\r\n }\r\n /** \r\n * 设置背景音乐音量\r\n * @param value 音乐音量值\r\n */\r\n set volumeMusic(value: number) {\r\n this._volume_music = value;\r\n this._volume_music_now = value;\r\n this.music.volume = value;\r\n }\r\n\r\n /** \r\n * 获取背景音乐开关值 \r\n */\r\n get switchMusic(): boolean {\r\n return this._switch_music;\r\n }\r\n /** \r\n * 设置背景音乐开关值\r\n * @param value 开关值\r\n */\r\n set switchMusic(value: boolean) {\r\n // if (this._switch_music != value) {\r\n this._switch_music = value;\r\n\r\n if (this._switch_music == false)\r\n this.music.pause();\r\n else {\r\n this.music.play();\r\n }\r\n // }\r\n }\r\n\r\n /**\r\n * 播放音效\r\n * @param url 资源地址\r\n */\r\n playEffect(url: string) {\r\n if (this._switch_effect) {\r\n this.effect.load(url);\r\n }\r\n }\r\n playMp3Eff(mp3:AudioClip) {\r\n this.effect.playEff(mp3);\r\n }\r\n\r\n playLongEffect(url: string) {\r\n if (this._switch_effect) {\r\n this.longeffect.load(url);\r\n }\r\n }\r\n\r\n /** \r\n * 获取音效音量 \r\n */\r\n get volumeEffect(): number {\r\n return this._volume_effect;\r\n }\r\n /**\r\n * 设置获取音效音量\r\n * @param value 音效音量值\r\n */\r\n set volumeEffect(value: number) {\r\n this._volume_effect = value;\r\n this._volume_effect_now = value;\r\n this.effect.volume = value;\r\n this.longeffect.volume = value;\r\n }\r\n\r\n /** \r\n * 获取音效开关值 \r\n */\r\n get switchEffect(): boolean {\r\n return this._switch_effect;\r\n }\r\n /**\r\n * 设置音效开关值\r\n * @param value 音效开关值\r\n */\r\n set switchEffect(value: boolean) {\r\n this._switch_effect = value;\r\n if (value == false) {\r\n this.effect.pause();\r\n this.longeffect.pause();\r\n }\r\n }\r\n\r\n /** 恢复当前暂停的音乐与音效播放 */\r\n resumeAll() {\r\n if (this.music) {\r\n this.music.play();\r\n this.effect.play();\r\n this.longeffect.play();\r\n }\r\n }\r\n\r\n /** 暂停当前音乐与音效的播放 */\r\n pauseAll() {\r\n if (this.music) {\r\n this.music.pause();\r\n this.effect.pause();\r\n this.longeffect.pause();\r\n }\r\n }\r\n\r\n /** 停止当前音乐与音效的播放 */\r\n stopAll() {\r\n if (this.music) {\r\n this.music.stop();\r\n this.effect.stop();\r\n this.longeffect.stop();\r\n }\r\n }\r\n\r\n /** 保存音乐音效的音量、开关配置数据到本地 */\r\n save() {\r\n this.local_data.volume_music = this._volume_music;\r\n this.local_data.volume_effect = this._volume_effect;\r\n this.local_data.switch_music = this._switch_music;\r\n this.local_data.switch_effect = this._switch_effect;\r\n\r\n let data = JSON.stringify(this.local_data);\r\n sys.localStorage.setItem(LOCAL_STORE_KEY, data)\r\n }\r\n\r\n\r\n /** 本地加载音乐音效的音量、开关配置数据并设置到游戏中 */\r\n load() {\r\n this.music = new AudioMusic();\r\n this.effect = new AudioEffect();\r\n this.longeffect = new AudioLongEffect();\r\n let data = sys.localStorage.getItem(LOCAL_STORE_KEY);\r\n if (data) {\r\n try {\r\n this.local_data = JSON.parse(data);\r\n this._volume_music = this.local_data.volume_music;\r\n this._volume_effect = this.local_data.volume_effect;\r\n this._switch_music = this.local_data.switch_music;\r\n this._switch_effect = this.local_data.switch_effect;\r\n }\r\n catch (e) {\r\n this.local_data = {};\r\n this._volume_music = 1;\r\n this._volume_effect = 1;\r\n this._switch_music = true;\r\n this._switch_effect = true;\r\n }\r\n\r\n if (this.music) this.music.volume = this._volume_music;\r\n if (this.effect) this.effect.volume = this._volume_effect;\r\n if (this.longeffect) this.longeffect.volume = this._volume_effect;\r\n }\r\n }\r\n}","/*\r\n * @Author: dgflash\r\n * @Date: 2022-06-21 12:05:13\r\n * @LastEditors: dgflash\r\n * @LastEditTime: 2023-05-16 09:11:30\r\n */\r\nimport { AudioClip, AudioSource, _decorator, error } from 'cc';\r\nimport ResHelper from '../core/manager/ResHelper';\r\nconst { ccclass, menu } = _decorator;\r\n\r\n/** 背景音乐 */\r\n@ccclass('AudioMusic')\r\nexport class AudioMusic extends AudioSource {\r\n /** 背景音乐播放完成回调 */\r\n onComplete: Function | null = null;\r\n\r\n private _progress: number = 0;\r\n public _url: string = null!;\r\n private _isPlay: boolean = false;\r\n\r\n /** 获取音乐播放进度 */\r\n get progress(): number {\r\n if (this.duration > 0)\r\n this._progress = this.currentTime / this.duration;\r\n return this._progress;\r\n }\r\n /**\r\n * 设置音乐当前播放进度\r\n * @param value 进度百分比0到1之间\r\n */\r\n set progress(value: number) {\r\n this._progress = value;\r\n this.currentTime = value * this.duration;\r\n }\r\n\r\n /**\r\n * 加载音乐并播放\r\n * @param url 音乐资源地址\r\n * @param callback 加载完成回调\r\n */\r\n public load(url: string, switchMusic: boolean, callback?: Function) {\r\n\r\n ResHelper.load(\"sound/\"+url, AudioClip, (err: Error | null, data: AudioClip) => {\r\n if (err) {\r\n error(err);\r\n } else {\r\n if (this.playing) {\r\n this._isPlay = false;\r\n this.stop();\r\n }\r\n if (this._url) {\r\n ResHelper.releaseDir(this._url);\r\n }\r\n this.enabled = switchMusic;\r\n this.clip = data;\r\n // 注:事件定义在这里,是为了在播放前设置初始播放位置数据\r\n callback && callback();\r\n if (switchMusic) {\r\n this.play();\r\n }\r\n this._url = url;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n /** cc.Component 生命周期方法,验证背景音乐播放完成逻辑,建议不要主动调用 */\r\n update(dt: number) {\r\n if (this.currentTime > 0) {\r\n this._isPlay = true;\r\n }\r\n\r\n if (this._isPlay && this.playing == false) {\r\n this._isPlay = false;\r\n this.enabled = false\r\n this.onComplete && this.onComplete();\r\n }\r\n }\r\n\r\n /** 释放当前背景音乐资源 */\r\n release() {\r\n if (this._url) {\r\n ResHelper.releaseDir(this._url);\r\n this._url = null!;\r\n }\r\n }\r\n}\r\n","import { _decorator, Button, tween } from 'cc';\r\nconst { ccclass, property } = _decorator;\r\nimport { v3 } from 'cc';\r\nimport WindowManager, { UILayer } from \"../manager/WindowManager\";\r\nimport Component from \"./Component\";\r\nimport MotionQueueData from \"./MotionQueueData\";\r\nimport { Logger } from '../../../core/common/log/Logger';\r\n\r\n@ccclass\r\nexport default class BasePanel extends Component {\r\n onBtnClicked(e, name: string){\r\n \r\n };\r\n winInfo: { name: string, path: string, bundle: string, layer?: UILayer, pauseGame?: boolean }\r\n data: any\r\n\r\n onCreate(data) {\r\n this.data = data;\r\n }\r\n showMotions(group: string = \"default\") {\r\n let list = this.node.getComponentsInChildren(MotionQueueData).filter(a => a.Group == group)\r\n list = list.sort((a, b) => {\r\n return a.Index - b.Index\r\n })\r\n for (var i = 0; i < list.length; ++i) {\r\n let motion = list[i].node;\r\n Logger.logView(motion.name)\r\n let btn = motion.getComponent(Button)\r\n if (btn) btn.enabled = false;\r\n motion.scale = v3(0, 0, 0);\r\n tween(motion).delay(i * 0.1).to(0.2, { scale: v3(1, 0, 0) }).call(() => {\r\n if (btn) btn.enabled = true;\r\n }).start()\r\n }\r\n }\r\n\r\n onShow(data) {\r\n }\r\n\r\n \r\n onLoadUpdate(data) {\r\n\r\n }\r\n onHide() {\r\n this.RemoveAllEventTrigger()\r\n }\r\n\r\n close(destory: boolean = false) {\r\n WindowManager.Instance().removeWindow(this.winInfo, destory);\r\n }\r\n\r\n //销毁之前处理一些回收\r\n onRecycle() {\r\n }\r\n}","import MsgHints from \"../../core/component/MsgHints\";\r\nimport { RegisterData } from \"../../AutoStorages/PersistentData/RegisterData\";\r\nimport ConfigManager from \"../../_config/ConfigManager\";\r\nimport { dataAccout } from \"../gameData/dataAccout\";\r\nimport Utils from \"../../core/utils/Utils\";\r\nimport { HttpGame } from \"../../core/http/HttpGame\";\r\nimport { dataServer } from \"../gameData/dataServer\";\r\nimport { dataServerList } from \"../gameData/dataServerList\";\r\n\r\nexport class BaseSdk {\r\n\r\n //广告初始化\r\n initVideo() {\r\n\r\n }\r\n\r\n //支付\r\n pay(data, success_callback: Function, fail_callback: Function) {\r\n\r\n }\r\n\r\n //播放激励视频\r\n play(call: Function, reason: string): void {\r\n\r\n }\r\n\r\n //分享\r\n share(callback = null) {\r\n\r\n }\r\n\r\n //是否已经添加到桌面 【vivo】\r\n isShortCutInstalled: boolean = false;\r\n\r\n //微信订阅\r\n requestSubscribeMessage(tmplIds: string, successCallBack: Function) {\r\n\r\n }\r\n\r\n autoRegister(callback: Function, fail_callback: Function) {\r\n\r\n }\r\n\r\n login(callback: Function, fail_callback: Function) {\r\n\r\n }\r\n\r\n showTip(str: string) {\r\n MsgHints.show(str);\r\n }\r\n\r\n //版本检查\r\n checkUpdateVersion() {\r\n }\r\n\r\n //微信更新订阅\r\n requestSubscribeWhatsNew() {\r\n }\r\n\r\n\r\n //震动\r\n vibrateShort() {\r\n }\r\n //长震动\r\n vibrateLong() {\r\n }\r\n\r\n //写剪贴板\r\n setClipboardData(data: string, callback?: Function) {\r\n }\r\n\r\n //获取剪贴板\r\n getClipboardData(callback?: Function) {\r\n }\r\n\r\n\r\n\r\n //显示原生广告 【vivo】\r\n showCustomAd(isPatch: any) {\r\n\r\n }\r\n\r\n //关闭原生广告 【vivo】\r\n closeCustomAd() {\r\n\r\n }\r\n\r\n showADInsert() {\r\n }\r\n\r\n\r\n showGameBanner() {\r\n\r\n }\r\n\r\n hideGameBanner() {\r\n\r\n }\r\n\r\n shortCutInstalled(onComplete: Function) {\r\n }\r\n\r\n public getDefaultServer(callback: Function, fail_callback: Function) {\r\n let sysConfig = ConfigManager.GetInstance().getValue(\"sys\");\r\n let accessToken = dataAccout.Instance().accessToken;\r\n let str = sysConfig.apiVersion + accessToken + sysConfig.channel + sysConfig.platform + sysConfig.sub_v;\r\n var sign = Utils.md5(str);\r\n var obj = {\r\n apiVersion: sysConfig.apiVersion, accessToken: accessToken, channel: sysConfig.channel,\r\n client: sysConfig.platform, sign: sign\r\n };\r\n HttpGame.sendRequest(\"server/defaultServer\", obj, (ret) => {\r\n var retJson = JSON.parse(ret);\r\n if (retJson.success == true) {\r\n var server = new dataServer(retJson.content);\r\n dataServerList.Instance().defaultServer = server;\r\n dataServerList.Instance().selectServer = server; // 初始化选择的为默认\r\n callback()\r\n }\r\n else {\r\n console.log(ret)\r\n fail_callback(ret)\r\n }\r\n }, null, (msg) => {\r\n fail_callback({ msg })\r\n })\r\n\r\n }\r\n}\r\n","import { UITransform } from 'cc';\r\nimport { UIOpacity } from 'cc';\r\nimport { _decorator, Node, Component, UIRenderer, Mask, Layout, rect, mat4, Rect, director, Director } from 'cc';\r\nconst { ccclass, property } = _decorator;\r\n\r\n//绘画层\r\nclass Draw {\r\n key: string = ''; //以节点名为标记\r\n mask: boolean = false; //是否有mask遮盖组件\r\n layout: boolean = false; //是否有layout组件\r\n nodes: Array = []; //绘画节点容器\r\n localOpacitys: Array = [];\r\n childrens: Array> = []; //绘图节点原子节点数据\r\n next: Draw | null = null;\r\n prev: Draw | null = null;\r\n constructor(key: string) {\r\n this.key = key;\r\n this.mask = false;\r\n this.nodes = [];\r\n this.childrens = [];\r\n }\r\n}\r\n\r\n//绘画层队列\r\nclass Queue {\r\n items: any = {};\r\n head: Draw | null = null;\r\n constructor() {\r\n this.items = {};\r\n this.head = null;\r\n }\r\n get(key: string) {\r\n return this.items[key];\r\n }\r\n set(prev: Draw | null, data: Draw) {\r\n this.items[data.key] = data;\r\n if (!this.head) this.head = data;\r\n else {\r\n data.next = prev!.next;\r\n prev!.next = data;\r\n data.prev = prev;\r\n }\r\n }\r\n clear() {\r\n Object.keys(this.items).forEach(key => {\r\n delete this.items[key];\r\n });\r\n this.head = null;\r\n this.items = {};\r\n }\r\n}\r\n\r\n//遍历建立绘图层队,并收集绘画节点, 全程以节点名字来作为唯一识别标记\r\nconst DFS = function (prev: Draw | null, node: Node, queue: Queue, active: boolean, level: number = 0, opacity: number = 1.0) {\r\n let render: any = node.getComponent(UIRenderer);\r\n //注意:根据节点的名字进行分层,务必确保名字的唯一性\r\n let key = node.name; //添加层级前缀加强同名过滤\r\n if (level == 0) key = \"98K\";//自定义收集首节点(允许Item首节点异名)\r\n let draw = queue.get(key);\r\n if (!draw) {\r\n draw = new Draw(key);\r\n queue.set(prev, draw);\r\n //检测是否带有mask组件,不建议item内有mask\r\n //mask 会打断合批,会增加draw call\r\n draw.mask = (node.getComponent(Mask) != null);\r\n draw.layout = (node.getComponent(Layout) != null);\r\n };\r\n prev = draw;\r\n if (render) {\r\n let nodes = draw.nodes;\r\n let localOpacitys = draw.localOpacitys;\r\n if (active) { //node.active && active\r\n nodes.push(node); //收集节点\r\n localOpacitys.push(node.getComponent(UIOpacity).opacity);//保存透明度\r\n node.getComponent(UIOpacity).opacity = opacity * node.getComponent(UIOpacity).opacity; //设置当前透明度\r\n }\r\n }\r\n opacity = opacity * node.getComponent(UIOpacity).opacity / 255.0;\r\n //遮罩直接打断返回\r\n if (draw.mask) return prev;\r\n if (draw.layout) //强制新layout世界矩阵\r\n node[\"_updateWorldMatrix\"]();\r\n let childs = node.children;\r\n for (let i = 0; i < childs.length; i++) {\r\n let isActive = childs[i].active ? active : false;\r\n prev = DFS(prev, childs[i], queue, isActive, level + 1, opacity);\r\n }\r\n return prev;\r\n}\r\n\r\nconst aabb0 = rect();\r\nconst aabb1 = rect();\r\nconst worldMat4 = mat4();\r\nconst getWorldBoundingBox = function (node: Node, rect: Rect) {\r\n let _contentSize = node.getComponent(UITransform).contentSize;\r\n let _anchorPoint = node.getComponent(UITransform).anchorPoint;\r\n let width = _contentSize.width;\r\n let height = _contentSize.height;\r\n rect.x = -_anchorPoint.x * width;\r\n rect.y = -_anchorPoint.y * height;\r\n rect.width = width; rect.height = height;\r\n node.getWorldMatrix(worldMat4);\r\n return rect.transformMat4(worldMat4);\r\n}\r\n\r\nconst changeTree = function (parent: Node, queue: Queue) {\r\n // queue.clear();\r\n let btn = parent.getComponent(BatchItems)!;\r\n if (btn.culling) {\r\n getWorldBoundingBox(btn.culling, aabb0)\r\n }\r\n //遍历所有绘画节点,按顺序分层\r\n let nodes = parent.children;\r\n for (let i = 0; i < nodes.length; i++) {\r\n let node = nodes[i];\r\n if (node.activeInHierarchy) {\r\n //剔除显示范围外的item\r\n if (btn.culling) {\r\n getWorldBoundingBox(node, aabb1);\r\n if (!aabb0.intersects(aabb1)) continue;\r\n }\r\n DFS(null, node, queue, true);\r\n }\r\n }\r\n // //记录item的父节点的子节点结构\r\n // let btn = parent.getComponent(BatchItems)!;\r\n btn.children = parent['_children']; //记录原来节点结构\r\n let childs: Array = parent['_children'] = []; //创建动态分层节点结构\r\n //拼接动态分层的绘画节点\r\n let curr = queue.head;\r\n while (curr) {\r\n let mask = curr.mask;\r\n let nodes = curr.nodes;\r\n let childrens = curr.childrens;\r\n for (let i = 0; i < nodes.length; i++) {\r\n childrens[i] = nodes[i]['_children']; //记录原来节点结构\r\n !mask && (nodes[i]['_children'] = []);//清空切断下层节点\r\n }\r\n //按顺序拼接分层节点\r\n childs.push(...nodes);\r\n curr = curr.next;\r\n }\r\n}\r\n\r\nconst resetTree = function (parent: Node, queue: Queue) {\r\n //恢复父节点结构\r\n let btn = parent.getComponent(BatchItems)!;\r\n parent['_children'].length = 0; //清空动态分层节点结构\r\n parent['_children'] = btn.children; //恢复原来节点结构\r\n //恢复原来节点结构\r\n let curr = queue.head;\r\n while (curr) {\r\n let nodes = curr.nodes;\r\n let childrens = curr.childrens;\r\n let localOpacitys = curr.localOpacitys;\r\n for (let i = 0; i < nodes.length; i++) {\r\n nodes[i]['_children'] = childrens[i]; //恢复原来节点结构\r\n //恢复原来透明度\r\n nodes[i].getComponent(UIOpacity).opacity = localOpacitys[i];\r\n }\r\n childrens.length = 0;\r\n nodes.length = 0;\r\n curr = curr.next;\r\n }\r\n queue.clear();\r\n}\r\n\r\ndirector.on(Director.EVENT_BEFORE_DRAW, (dt) => {\r\n //绘画前拦截修改节点结构\r\n let nodes = BatchItems.nodes;\r\n let queues = BatchItems.queues;\r\n for (let i = 0; i < nodes.length; i++) {\r\n let node = nodes[i];\r\n if (node.active && node.isValid) {\r\n changeTree(node, queues[i]);\r\n }\r\n }\r\n});\r\ndirector.on(Director.EVENT_AFTER_DRAW, (dt) => {\r\n //绘画结束后恢复节点结构\r\n let nodes = BatchItems.nodes;\r\n let queues = BatchItems.queues;\r\n for (let i = 0; i < nodes.length; i++) {\r\n let node = nodes[i];\r\n if (node && node.isValid) {\r\n resetTree(node, queues[i]);\r\n }\r\n }\r\n nodes.length = 0;\r\n queues.length = 0;\r\n});\r\n\r\n@ccclass('BatchItem')\r\nexport default class BatchItems extends Component {\r\n //全局合批队列记录\r\n static nodes: Array = [];\r\n static queues: Array = [];\r\n queue: Queue = new Queue(); //优先级分层队列\r\n children: Array = []; //记录原节点结构\r\n @property(Node)\r\n culling: Node | null = null;\r\n lateUpdate(dt: number) {\r\n let layout = this.node.getComponent(Layout);\r\n layout && this.node[\"_updateWorldMatrix\"]();\r\n BatchItems.nodes.push(this.node);\r\n BatchItems.queues.push(this.queue);\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { SkillCasting } from \"./SkillCasting\";\r\nimport { Effect, ISkillReport, ISkillReportHit } from \"./SkillEnum\";\r\nimport { BaseRole } from \"../role/Role\";\r\n\r\n/** 技能动画战报 */\r\nexport class BattleReport {\r\n /** 生成一次施放技能战报 */\r\n static casting(sc: SkillCasting, target: BaseRole | Vec3): ISkillReport {\r\n // 生成战报\r\n if (sc) {\r\n var sr: ISkillReport = {\r\n caster: sc.caster,\r\n target: target,\r\n skill: sc.skill,\r\n hits: []\r\n };\r\n sc.srs.push(sr);\r\n }\r\n else {\r\n // 服务器推送复活命令时的战报\r\n var sr: ISkillReport = {\r\n caster: null!,\r\n target: target,\r\n skill: null!,\r\n hits: []\r\n };\r\n }\r\n\r\n return sr;\r\n }\r\n\r\n /** 生成技能产生的受击效果战报 */\r\n static skill(sr: ISkillReport, target: BaseRole | Vec3, effect: Effect,caster ?: BaseRole | Vec3) {\r\n sr.hits.push({ target: target, effect , caster });\r\n }\r\n\r\n /** 生成BUFF产添加或移除战报 */\r\n static buff(hits: ISkillReportHit[], target: BaseRole | Vec3, effect: Effect,caster: BaseRole | Vec3) {\r\n hits.push({ target: target, effect,caster });\r\n }\r\n}","import { _decorator } from 'cc';\nconst { ccclass, property } = _decorator;\n\n@ccclass('BigNumber')\nexport default class BigNumber {\n private static aLetters: any = null;//[\"K\", 3, \"M\", 6, \"B\", 9, \"T\", 12, \"aa\", 15, \"bb\", 18, \"cc\", 21,\"dd\", 24, \"ee\", 27, \"ff\", 30, \"gg\", 33, \"hh\", 36, \"ii\", 39,\"jj\",42,'kk',45,'ll',48,'mm',51,'nn',54,'oo',57,'pp',60,'qq',63,'rr',66,'ss',69,'tt',72,'uu',75,'vv',78,'ww',81,'xx',84,'yy',87,'zz',90,'aaa',93,'bbb',96,'ccc',99,'ddd',102,'eee',105,'fff',108,'ggg',111,'hhh',114,'iii',117,'jjj',120,'kkk',123,'lll',126,'mmm',129,'nnn',132,'ooo',135,'ppp',138,'qqq',141,'rrr',144,'sss',147,'ttt',150,'uuu',153,'vvv',156,'www',159,'xxx',162,'yyy',165,'zzz'];\n private static genLetters() {\n if (!this.aLetters) {\n let tmp2 = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\"];\n let out = [\"K\", 3, \"M\", 6, \"B\", 9, \"T\", 12];\n let index = 0\n for (var i = 15; i < 400; i += 3) {\n ;\n let cn = Math.floor(index / 26) + 2;\n // if (cn < 2) cn = 2;\n let key = \"\";\n for (var j = 0; j < cn; ++j) {\n key += tmp2[(index % 26)];\n }\n out.push(key, i);\n index++;\n }\n this.aLetters = out;\n }\n }\n public static getN(param1: string): Number {\n this.genLetters();\n var _loc_2: number = 0;\n while (_loc_2 < BigNumber.aLetters.length) {\n\n if (BigNumber.aLetters[_loc_2] == param1) {\n return Math.pow(10, BigNumber.aLetters[(_loc_2 + 1)]);\n }\n _loc_2 = _loc_2 + 2;\n }\n return 0;\n }// end function\n\n public static getLargeString(param1: number, param2: string = \"K\", param3: Boolean = true): string {\n this.genLetters();\n if (param1 == 0) return param1 + '';\n // if(param1<999)\n // return param1+'';\n\n var _loc_8: string = null;\n var _loc_11: number = NaN;\n var _loc_4: any = Math.round(param1 / Math.abs(param1));\n param1 = Math.abs(param1);\n var _loc_5: any = param1;\n var _loc_6: number = 0;\n var _loc_7: number = 0;\n var _loc_9: number = 0;\n var _loc_10: number = 0;\n while (_loc_10 < BigNumber.aLetters.length) {\n\n if (BigNumber.aLetters[_loc_10] == param2) {\n _loc_7 = _loc_10;\n break;\n }\n _loc_10 = _loc_10 + 2;\n }\n if (param1 < Math.pow(10, BigNumber.aLetters[(_loc_7 + 1)])) {\n _loc_6 = -1;\n }\n else {\n _loc_11 = Math.pow(10, BigNumber.aLetters[(_loc_7 + 1)]);\n _loc_6 = _loc_7 / 2;\n while (_loc_5 / 1000 >= _loc_11) {\n\n _loc_5 = _loc_5 / 1000;\n _loc_6++;\n }\n while (_loc_5 / 1000 >= 1000) {\n\n _loc_5 = _loc_5 / 1000;\n }\n }\n if (_loc_6 == -1) {\n\n return BigNumber.addSeparators(Math.round((param1 - 0.5) * _loc_4).toString());\n }\n if (_loc_5 / 1000 < 10) {\n _loc_9 = 2;\n }\n else if (_loc_5 / 1000 < 100) {\n _loc_9 = 1;\n }\n _loc_5 = _loc_5 / Math.pow(10, 3 - _loc_9);\n _loc_5 = parseInt(_loc_5);\n _loc_5 = _loc_5 / Math.pow(10, _loc_9);\n if (param3)\n return (_loc_5 * _loc_4).toFixed(0) + \"\" + BigNumber.aLetters[_loc_6 * 2];\n else\n return (_loc_5 * _loc_4).toString() + \"\" + BigNumber.aLetters[_loc_6 * 2];\n }// end function\n\n public static addSeparators(param1: string, param2: string = \",\"): string {\n var _loc_3: any = param1.charAt(0) == \"-\";\n if (_loc_3) {\n param1 = param1.substr(1);\n }\n var _loc_4: string = \"\";\n var _loc_5: string = \"\";\n var _loc_6: number = 0;\n var _loc_7: any = param1.length - 1;\n while (_loc_7 > 0) {\n\n _loc_4 = param1.charAt(_loc_7) + _loc_4;\n _loc_6++;\n if (_loc_6 % 3 == 0) {\n _loc_4 = param2 + _loc_4;\n }\n _loc_7 = _loc_7 - 1;\n }\n _loc_4 = param1.charAt(0) + _loc_4;\n if (_loc_3) {\n _loc_4 = \"-\" + _loc_4;\n }\n return _loc_4;\n }// end function\n\n public static convertToLargeString(param1: number): string {\n\n return BigNumber.getStringOfNumber(param1);\n }// end function\n\n public static getStringOfNumber(param1: number, param2: Boolean = false, param3: Boolean = false, param4: Boolean = false): string {\n var _loc_5: number = 1;\n if (param4) {\n _loc_5 = 10;\n }\n var _loc_6: any = Math.round(param1);\n if (Math.round(param1) >= 1000000 && _loc_6 < 1000000000 && param2) {\n return (Math.round(_loc_6 / 1000 / _loc_5) / (1000 / _loc_5)).toString() + \" M\";\n }\n if (_loc_6 >= 1000000000 && _loc_6 < 1000000000000) {\n return (Math.round(_loc_6 / 1000000 / _loc_5) / (1000 / _loc_5)).toString() + \" B\";\n }\n if (_loc_6 >= 1000000000000 && _loc_6 < 1000000000000000) {\n return (Math.round(_loc_6 / 1000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" T\";\n }\n if (_loc_6 >= 1000000000000000 && _loc_6 < 1000000000000000000) {\n return (Math.round(_loc_6 / 1000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" q\";\n }\n if (_loc_6 >= 1000000000000000000 && _loc_6 < 1000000000000000000000) {\n return (Math.round(_loc_6 / 1000000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" Qq\";\n }\n if (_loc_6 >= 1000000000000000000000 && _loc_6 < 999999999999999980000000) {\n return (Math.round(_loc_6 / 1000000000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" s\";\n }\n if (_loc_6 >= 999999999999999980000000 && _loc_6 < 1000000000000000000000000000) {\n return (Math.round(_loc_6 / 1000000000000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" Ss\";\n }\n if (_loc_6 >= 1000000000000000000000000000 && _loc_6 < 1000000000000000000000000000000) {\n return (Math.round(_loc_6 / 999999999999999980000000 / _loc_5) / (1000 / _loc_5)).toString() + \" O\";\n }\n if (_loc_6 >= 1000000000000000000000000000000 && _loc_6 < 999999999999999950000000000000000) {\n return (Math.round(_loc_6 / 1000000000000000000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" N\";\n }\n if (_loc_6 >= 999999999999999950000000000000000 && _loc_6 < 100000000000000000000000000) {\n return (Math.round(_loc_6 / 1000000000000000000000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" d\";\n }\n if (_loc_6 >= 100000000000000000000000000 && _loc_6 < 99999999999999991000000000000) {\n return (Math.round(_loc_6 / 999999999999999950000000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" U\";\n }\n if (_loc_6 >= 99999999999999991000000000000 && _loc_6 < 100000000000000010000000000000000) {\n return (Math.round(_loc_6 / 100000000000000000000000000 / _loc_5) / (1000 / _loc_5)).toString() + \" Dd\";\n }\n var _loc_7: string = \" \";\n if (param3) {\n _loc_7 = \",\";\n }\n var _loc_8: string = \"\";\n var _loc_9: any = String(Math.round(param1));\n var _loc_10: any = String(Math.round(param1)).length - 1;\n while (_loc_10 >= 0) {\n\n _loc_8 = _loc_9.charAt(_loc_10) + _loc_8;\n if (_loc_8.length == 3 && _loc_10 != 0) {\n _loc_8 = _loc_7 + _loc_8;\n }\n if (_loc_8.length == 7 && _loc_10 != 0) {\n _loc_8 = _loc_7 + _loc_8;\n }\n _loc_10 = _loc_10 - 1;\n }\n return _loc_8;\n }// end function\n\n}","import RoadNode from \"./RoadNode\";\r\n\r\n/**\r\n * 二堆叉结构存储\r\n */\r\nexport default class BinaryTreeNode {\r\n /**\r\n * 当前寻路标记,用于标记节点是否属于当前次寻路运算\r\n */\r\n public seekTag: number = 0;\r\n\r\n /**\r\n * 开启列表根节点\r\n */\r\n public openNode: RoadNode = null;\r\n\r\n /**\r\n * 计数当次寻路的运算代价(用于测试数据)\r\n */\r\n public count: number = 0;\r\n\r\n /**\r\n * 刷新寻路tag标记,用于标记当前是哪次的寻路\r\n */\r\n public refleshTag() {\r\n this.openNode = null;\r\n\r\n this.count = 0;\r\n\r\n this.seekTag++;\r\n\r\n if (this.seekTag > 1000000000) {\r\n this.seekTag = 0;\r\n }\r\n }\r\n\r\n /**\r\n * 二叉堆树是否为空,即没有任何节点加入\r\n * @returns \r\n */\r\n public isTreeNull() {\r\n return this.openNode == null;\r\n }\r\n\r\n /**\r\n * 把节点添加进二叉堆里\r\n * @param roadNode 要添加的节点\r\n * @param head 从哪个节点位置开始添加\r\n * @returns \r\n */\r\n public addTreeNode(roadNode: RoadNode, head: RoadNode = null) {\r\n this.count++; //计数统计运算代价\r\n\r\n if (head == null) {\r\n if (this.openNode == null) //如果开启节点为空,则拿首次加二叉堆的节点作为开启节点\r\n {\r\n this.openNode = roadNode;\r\n ////console.log(this.count,\"add root \",roadNode.f,roadNode.toString());\r\n return;\r\n } else //如果开启节点存在,头节点为null,默认把开启节点用于头节点\r\n {\r\n head = this.openNode;\r\n }\r\n }\r\n\r\n if (roadNode.f >= head.f) {\r\n if (head.right == null) {\r\n head.right = roadNode;\r\n roadNode.treeParent = head;\r\n ////console.log(this.count,\"add right \",roadNode.f,roadNode.toString());\r\n } else {\r\n this.addTreeNode(roadNode, head.right);\r\n }\r\n } else {\r\n if (head.left == null) {\r\n head.left = roadNode;\r\n roadNode.treeParent = head;\r\n ////console.log(this.count,\"add left \",roadNode.f,roadNode.toString());\r\n } else {\r\n this.addTreeNode(roadNode, head.left);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 删除树节点\r\n * @param roadNode 要删除的节点\r\n */\r\n public removeTreeNode(roadNode: RoadNode) {\r\n this.count++; //计数统计运算代价\r\n\r\n if (roadNode.treeParent == null && roadNode.left == null && roadNode.right == null) //节点不在树结构中\r\n {\r\n return;\r\n }\r\n\r\n if (roadNode.treeParent == null) //如果是根节点,优先把左子节点转换成根节点,左子节点不存在,则把右子节点转换成根节点\r\n {\r\n if (roadNode.left) {\r\n this.openNode = roadNode.left;\r\n roadNode.left.treeParent = null;\r\n\r\n if (roadNode.right) {\r\n roadNode.right.treeParent = null;\r\n this.addTreeNode(roadNode.right, this.openNode);\r\n }\r\n } else if (roadNode.right) //如果没有左节点,只有右节点\r\n {\r\n this.openNode = roadNode.right;\r\n roadNode.right.treeParent = null;\r\n }\r\n } else {\r\n\r\n if (roadNode.treeParent.left == roadNode) //如果是左子节点\r\n {\r\n if (roadNode.right) {\r\n roadNode.treeParent.left = roadNode.right;\r\n roadNode.right.treeParent = roadNode.treeParent;\r\n\r\n if (roadNode.left) {\r\n roadNode.left.treeParent = null;\r\n this.addTreeNode(roadNode.left, roadNode.right)\r\n }\r\n } else {\r\n roadNode.treeParent.left = roadNode.left;\r\n if (roadNode.left) {\r\n roadNode.left.treeParent = roadNode.treeParent;\r\n }\r\n }\r\n\r\n\r\n\r\n } else if (roadNode.treeParent.right == roadNode) //如果是右子节点\r\n {\r\n if (roadNode.left) {\r\n roadNode.treeParent.right = roadNode.left;\r\n roadNode.left.treeParent = roadNode.treeParent;\r\n\r\n if (roadNode.right) {\r\n roadNode.right.treeParent = null;\r\n this.addTreeNode(roadNode.right, roadNode.left)\r\n }\r\n } else {\r\n roadNode.treeParent.right = roadNode.right;\r\n if (roadNode.right) {\r\n roadNode.right.treeParent = roadNode.treeParent;\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n roadNode.resetTree();\r\n\r\n }\r\n\r\n /**\r\n * 从二叉堆结构里快速查找除f值最小的路节点\r\n * @param head 搜索的起始节点\r\n * @returns \r\n */\r\n public getMin_F_Node(head: RoadNode = null): RoadNode {\r\n this.count++; //计数统计运算代价\r\n\r\n if (head == null) {\r\n if (this.openNode == null) {\r\n return null;\r\n } else {\r\n head = this.openNode; //如果头节点为null,并且开启节点不为空,则头节点默认使用开启节点\r\n }\r\n }\r\n\r\n if (head.left == null) {\r\n var minNode: RoadNode = head;\r\n\r\n if (head.treeParent == null) {\r\n this.openNode = head.right;\r\n if (this.openNode) {\r\n this.openNode.treeParent = null;\r\n }\r\n } else {\r\n head.treeParent.left = head.right;\r\n if (head.right) {\r\n head.right.treeParent = head.treeParent;\r\n }\r\n }\r\n\r\n return minNode;\r\n } else {\r\n return this.getMin_F_Node(head.left);\r\n }\r\n }\r\n\r\n /**\r\n * 把节点加入开启列表,即打入开启列表标志\r\n * @param node \r\n */\r\n public setRoadNodeInOpenList(node: RoadNode) {\r\n node.openTag = this.seekTag; //给节点打入开放列表的标志\r\n node.closeTag = 0; //关闭列表标志关闭\r\n }\r\n\r\n /**\r\n * 把节点加入关闭列表,即打入关闭列表标志\r\n * @param node \r\n */\r\n public setRoadNodeInCloseList(node: RoadNode) {\r\n node.openTag = 0; //开放列表标志关闭\r\n node.closeTag = this.seekTag; //给节点打入关闭列表的标志\r\n }\r\n\r\n /**\r\n * 节点是否在开启列表\r\n * @param node \r\n * @returns \r\n */\r\n public isInOpenList(node: RoadNode): Boolean {\r\n return node.openTag == this.seekTag;\r\n }\r\n\r\n /**\r\n * 节点是否在关闭列表 \r\n * @param node \r\n * @returns \r\n */\r\n public isInCloseList(node: RoadNode): Boolean {\r\n return node.closeTag == this.seekTag;\r\n }\r\n\r\n public getOpenList(): RoadNode[] {\r\n var openList: RoadNode[] = []\r\n this.seachTree(this.openNode, openList);\r\n return openList;\r\n }\r\n\r\n private seachTree(head: RoadNode, openList: RoadNode[]) {\r\n if (head == null) {\r\n return;\r\n }\r\n\r\n openList.push(head);\r\n\r\n if (head.left) {\r\n this.seachTree(head.left, openList);\r\n }\r\n\r\n if (head.right) {\r\n this.seachTree(head.right, openList);\r\n }\r\n }\r\n}\r\n","import { Component } from \"cc\";\r\nimport { BuildAiTypeEnum, BuildHeroType, BuildPart, BuildView } from \"../map/layer/BuildView\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { Vec3 } from \"cc\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport ConfigManager from \"../_config/ConfigManager\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BuildTopView } from \"../map/layer/BuildTopView\";\r\nimport { BossView } from \"./BossView\";\r\nimport { BaseRole, GebolinMapType } from \"./Role\";\r\nimport { GebolInAiEnum, GebolInAttTypeEnum, GebolinView } from \"./GebolinView\";\r\nimport { SkillIntervalComp } from \"../skill/SkillInterval\";\r\nimport { BossModle } from \"./BossModle\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { SpineGmView } from \"../modules/game/mainui/SpineGmView\";\r\nimport { HeroAiType } from \"../enum/Enum\";\r\nimport { SoundManager } from \"../core/utils/SoundManager\";\r\nimport { SoundPoxy } from \"../modules/game/proxy/SoundPoxy\";\r\n\r\nexport class BossAiComp{\r\n boss:BossView;\r\n private target:BaseRole;\r\n\r\n constructor(boss:BossView){\r\n this.boss = boss;\r\n }\r\n\r\n update(dt){\r\n /**场景BOSS*/\r\n if(!GameModleComp.getInstance().isOpenGame){\r\n return;\r\n }\r\n if(this.boss.gebolinMapType == GebolinMapType.PveBoss){\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n if(this.boss.isDie){\r\n return;\r\n }\r\n this.addFight();\r\n }else if(this.boss.gebolinMapType == GebolinMapType.PveCopy){\r\n if(this.boss.isDie){\r\n return;\r\n }\r\n this.addFuBenFight();\r\n }\r\n\r\n }\r\n /**副本战斗AI*/\r\n private addFuBenFight(){\r\n if(!this.boss){\r\n return;\r\n }\r\n if(!this.boss.isAttackOver){\r\n return;\r\n }\r\n let skill:Skill = this.boss.modle.skills.get((this.boss.modle as BossModle).skillId);\r\n if(!skill || skill.skillInterval){\r\n skill = this.boss.modle.skills.get((this.boss.modle as BossModle).monster.id);\r\n }\r\n if(!skill){\r\n return;\r\n }\r\n if(!skill.skillInterval){\r\n if(this.target && !this.target.isDie){\r\n\r\n }else{\r\n if(skill.SkillModel.table.isNomAttack){\r\n this.target = this.nearestMonster(this.boss)\r\n }else{\r\n this.target = this.randomMonster(this.boss);\r\n }\r\n }\r\n if(this.target){\r\n let sc = skill.SkillModel.casting;\r\n sc.caster = this.boss;\r\n sc.target = this.target;\r\n sc.skill = skill;\r\n if(sc.skill.skillInterval){\r\n if(!sc.skill.skillInterval._skill){\r\n sc.skill.skillInterval._skill = sc.skill;\r\n }\r\n }else{\r\n sc.skill.skillInterval = new SkillIntervalComp();\r\n sc.skill.skillInterval._skill = sc.skill;\r\n if(sc.skill.SkillModel.table.isNomAttack){\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval);\r\n }else{\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval , false);\r\n }\r\n }\r\n let comp = sc.skill.skillInterval;\r\n let cd: number = 1;\r\n comp.duration = sc.skill.SkillModel.table.skillcd * cd;\r\n this.boss.attack(sc , this.target, skill);\r\n }\r\n }\r\n }\r\n /**开始战斗*/\r\n private addFight(){\r\n // if(true){\r\n // return;\r\n // }\r\n if(GameModleComp.getInstance().openSpineGm && !SpineGmView.isOpenBossAi){\r\n return;\r\n }\r\n if(!this.boss){\r\n return;\r\n }\r\n if(!this.boss.isAttackOver){\r\n return;\r\n }\r\n let skill:Skill = this.boss.modle.skills.get((this.boss.modle as BossModle).skillId);\r\n if(!skill || skill.skillInterval){\r\n skill = this.boss.modle.skills.get((this.boss.modle as BossModle).monster.id);\r\n }\r\n if(!skill){\r\n return;\r\n }\r\n if(!skill.skillInterval){\r\n if(this.target && !this.target.isDie){\r\n\r\n }else{\r\n if(skill.SkillModel.table.isNomAttack){\r\n this.target = this.nearestMonster(this.boss)\r\n }else{\r\n this.target = this.randomMonster(this.boss);\r\n }\r\n }\r\n if(this.target){\r\n let sc = skill.SkillModel.casting;\r\n sc.caster = this.boss;\r\n sc.target = this.target;\r\n sc.skill = skill;\r\n if(sc.skill.skillInterval){\r\n if(!sc.skill.skillInterval._skill){\r\n sc.skill.skillInterval._skill = sc.skill;\r\n }\r\n }else{\r\n sc.skill.skillInterval = new SkillIntervalComp();\r\n sc.skill.skillInterval._skill = sc.skill;\r\n if(sc.skill.SkillModel.table.isNomAttack){\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval);\r\n }else{\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval , false);\r\n }\r\n }\r\n let comp = sc.skill.skillInterval;\r\n let cd: number = 1;\r\n comp.duration = sc.skill.SkillModel.table.skillcd * cd;\r\n this.boss.attack(sc , this.target, skill);\r\n \r\n }\r\n }\r\n }\r\n /** 获取距离自定目标最近的其它目标 */\r\n nearestMonster(caster: BaseRole): BaseRole {\r\n var temp = Number.MAX_VALUE;\r\n var current: number; // 当前距离\r\n var t: BaseRole = null; // 找到的目标\r\n let math:number = Math.random()*GameModleComp.getInstance().maxValue;\r\n if(math > 5000){\r\n // 选择最近存活的怪物\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if (p && !p.isDie && p.AiType==GebolInAiEnum.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n current = Vec3.distance(p.node.position, caster.node.position);\r\n if (current < temp) {\r\n temp = current;\r\n t = p;\r\n return t;\r\n }\r\n }\r\n });\r\n }\r\n GameEntry.Inst.mapView.heroMap.forEach(p => {\r\n if (p && !p.isDie && p.heroAiType==HeroAiType.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n current = Vec3.distance(p.node.position, caster.node.position);\r\n if (current < temp) {\r\n temp = current;\r\n t = p;\r\n return t;\r\n }\r\n }\r\n });\r\n GameEntry.Inst.mapView.copyheroMap.forEach(p => {\r\n if (p && !p.isDie && p.heroAiType==HeroAiType.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n current = Vec3.distance(p.node.position, caster.node.position);\r\n if (current < temp) {\r\n temp = current;\r\n t = p;\r\n return t;\r\n }\r\n }\r\n });\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if (p && !p.isDie && p.AiType==GebolInAiEnum.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n current = Vec3.distance(p.node.position, caster.node.position);\r\n if (current < temp) {\r\n temp = current;\r\n t = p;\r\n return t;\r\n }\r\n }\r\n });\r\n return t;\r\n }\r\n randomMonster(caster: BaseRole): BaseRole {\r\n var temp = Number.MAX_VALUE;\r\n var current: number; // 当前距离\r\n var t: BaseRole = null; // 找到的目标\r\n let math:number = Math.random()*GameModleComp.getInstance().maxValue;\r\n if(math > 5000){\r\n // 选择最近存活的怪物\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if (p && !p.isDie && p.AiType==GebolInAiEnum.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n t = p;\r\n return t;\r\n }\r\n });\r\n }\r\n GameEntry.Inst.mapView.heroMap.forEach(p => {\r\n if (p && !p.isDie && p.heroAiType==HeroAiType.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n t = p;\r\n return t;\r\n }\r\n });\r\n GameEntry.Inst.mapView.copyheroMap.forEach(p => {\r\n if (p && !p.isDie && p.heroAiType==HeroAiType.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n t = p;\r\n return t;\r\n }\r\n });\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if (p && !p.isDie && p.AiType==GebolInAiEnum.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n temp = current;\r\n t = p;\r\n return t;\r\n }\r\n });\r\n return t;\r\n }\r\n}","import { ProgressBar } from \"cc\";\r\nimport { Button } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nimport { Pass, PassPoxy } from \"../proxy/PassPoxy\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nimport { MapPoxy } from \"../proxy/MapPoxy\";\r\nimport { Vec3 } from \"cc\";\r\nimport MapRoadUtils from \"../../../map/road/MapRoadUtils\";\r\nimport GameEntry from \"../../GameEntry\";\r\nimport { MapModelComp } from \"../../../map/MapModel\";\r\nimport { Sprite } from \"cc\";\r\nimport { GlobalFunction } from \"../common/GlobalFunction\";\r\nconst { ccclass, property } = _decorator;\r\n\r\n@ccclass(\"BossChangeItemComp\")\r\nexport default class BossChangeItemComp extends Component{\r\n\r\n \r\n @property(Node)\r\n btnGuanKa:Node = null;\r\n @property(ProgressBar)\r\n ProgressBar_bossleft:ProgressBar = null;\r\n @property(ProgressBar)\r\n ProgressBar_bossright:ProgressBar = null;\r\n @property(Label)\r\n Label_guanka:Label = null;\r\n @property(Label)\r\n Label_guankatips:Label = null;\r\n @property(Label)\r\n Label_guankatips1:Label = null;\r\n @property(Label)\r\n Label_guankatips2:Label = null;\r\n @property(Label)\r\n Label_guanka1:Label = null;\r\n\r\n @property(Button)\r\n bossGo:Button = null;\r\n @property(Label)\r\n bossGoLabel:Label = null;\r\n\r\n @property(Sprite)\r\n btnBoss:Sprite = null;\r\n @property(ProgressBar)\r\n bossBar:ProgressBar = null;\r\n @property(Label)\r\n proLabel:Label = null;\r\n @property(Label)\r\n bossTime:Label = null;\r\n\r\n onLoad(){\r\n EventManager.Inst.on(EventType.KILL_BOSS_FAIL_UI , this, this.onKillFail);\r\n EventManager.Inst.on(EventType.KILL_MONSTER_OK_UI , this, this.onKillOver);\r\n EventManager.Inst.on(EventType.TO_KILL_BOSS_UI , this, this.ontOKillbOSS);\r\n EventManager.Inst.on(EventType.GAME_TIME_CHANGE , this, this.onGameTimeChange);\r\n EventManager.Inst.on(EventType.BOSS_HP_CHANGE , this, this.onBossHpChange);\r\n\r\n this.showBossBtn();\r\n }\r\n onButton_guankagoClick(){\r\n let mapId:number = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_bossPoint;\r\n let v3:Vec3 = MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0))\r\n GameEntry.Inst.mapView.nowScene.setViewToPoint(v3.x-300,v3.y)\r\n }\r\n private bossKillTime:number = 0;\r\n private ontOKillbOSS(){\r\n if(this.btnGuanKa){\r\n this.bossKillTime = GameModleComp.getInstance().bossDieTime;\r\n this.btnGuanKa.active = false;\r\n this.btnBoss.node.active = true;\r\n this.bossGo.node.active = false;\r\n this.showBossTime();\r\n }\r\n }\r\n private onGameTimeChange(){\r\n if(this && this.btnBoss && this.btnBoss.node.active){\r\n this.bossKillTime--;\r\n if(this.bossKillTime <= 0){\r\n this.bossKillTime = 0;\r\n }\r\n this.showBossTime();\r\n }\r\n }\r\n private onBossHpChange(arr:Array){\r\n if(this.bossBar){\r\n let now:number = arr[0];\r\n let max:number = arr[1];\r\n let pro:number = now / max;\r\n if(pro >= 1){\r\n pro = 1;\r\n }\r\n if(pro <= 0){\r\n pro = 0;\r\n }\r\n this.bossBar.progress = pro;\r\n this.proLabel.string = Math.floor(now) + \"/\" + Math.floor(max);\r\n }\r\n }\r\n private showBossTime(){\r\n this.bossTime.string = this.bossKillTime+\"\";\r\n }\r\n private onKillOver(){\r\n this.showBossBtn();\r\n }\r\n private onKillFail(){\r\n if(this && this.node){\r\n this.btnGuanKa.active = false;\r\n this.btnBoss.node.active = false;\r\n this.bossGo.node.active = true;\r\n this.showGuanqia();\r\n }\r\n }\r\n private showBossBtn(){\r\n if(this && this.node){\r\n this.btnGuanKa.active = true;\r\n this.bossGo.node.active = false;\r\n this.btnBoss.node.active = false;\r\n \r\n this.showLeftBar();\r\n this.showRightBar();\r\n this.showGuanqia();\r\n }\r\n }\r\n private showGuanqia(){\r\n this.Label_guanka.string = \"关卡\"+GameModleComp.getInstance().selectGuankaId;\r\n this.Label_guanka1.string = \"关卡\"+GameModleComp.getInstance().selectGuankaId;\r\n this.bossGoLabel.string = \"关卡\"+GameModleComp.getInstance().selectGuankaId;\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n this.Label_guankatips.string = GlobalFunction.ConvertNumberWithUnit(pass.gold) + \"/分\"\r\n this.Label_guankatips1.string = GlobalFunction.ConvertNumberWithUnit(pass.gold) + \"/分\"\r\n this.Label_guankatips2.string = GlobalFunction.ConvertNumberWithUnit(pass.gold) + \"/分\"\r\n\r\n }\r\n private showLeftBar(){\r\n if(this.ProgressBar_bossleft){\r\n if(MapModelComp.getInstance().mapMonsterIndex == 0){\r\n this.ProgressBar_bossleft.progress = 0;\r\n }else if(MapModelComp.getInstance().mapMonsterIndex < 1){\r\n this.ProgressBar_bossleft.progress = 0.5;\r\n }else{\r\n this.ProgressBar_bossleft.progress = 1;\r\n }\r\n }\r\n }\r\n private showRightBar(){\r\n if(this.ProgressBar_bossright){\r\n if(MapModelComp.getInstance().mapMonsterIndex < 2){\r\n this.ProgressBar_bossright.progress = 0;\r\n }else if(MapModelComp.getInstance().mapMonsterIndex == 2 ){\r\n this.ProgressBar_bossright.progress = 0.5;\r\n }else{\r\n this.ProgressBar_bossright.progress = 1;\r\n }\r\n }\r\n }\r\n\r\n desTroy(){\r\n EventManager.Inst.off(EventType.KILL_BOSS_FAIL_UI , this, this.onKillFail);\r\n EventManager.Inst.off(EventType.KILL_MONSTER_OK_UI , this, this.onKillOver);\r\n EventManager.Inst.off(EventType.TO_KILL_BOSS_UI , this, this.ontOKillbOSS);\r\n EventManager.Inst.off(EventType.GAME_TIME_CHANGE , this, this.onGameTimeChange);\r\n EventManager.Inst.off(EventType.BOSS_HP_CHANGE , this, this.onBossHpChange);\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n super.destroy();\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { sp } from \"cc\";\r\nimport { GuideManager } from \"../modules/game/guilde/GuideManager\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('BossComeUiViewComp')\r\nexport class BossComeUiViewComp extends Component{\r\n @property(sp.Skeleton)\r\n comSp:sp.Skeleton = null;\r\n\r\n\r\n private _isGuideId: number = 0;\r\n public get isGuideId(): number {\r\n return this._isGuideId;\r\n }\r\n public set isGuideId(value: number) {\r\n this._isGuideId = value;\r\n }\r\n onLoad(): void {\r\n this.comSp.setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case \"a_e_ui_comic\":\r\n this.desTroy();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n desTroy(){\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n if(this.isGuideId){\r\n if(this.isGuideId == 2002){\r\n GuideManager.Instance().closeGuide(2 , this.isGuideId);\r\n }\r\n if(this.isGuideId == 7002){\r\n GuideManager.Instance().closeGuide(7 , this.isGuideId);\r\n }\r\n if(this.isGuideId == 8002){\r\n GuideManager.Instance().closeGuide(8 , this.isGuideId);\r\n }\r\n }\r\n }\r\n }\r\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { GuideManager } from \"../guilde/GuideManager\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nimport { Button } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { RichText } from \"cc\";\r\nimport { BossLaiXi, BossLaixiPoxy } from \"../proxy/BossLaixiPoxy\";\r\nimport { Logger } from \"../../../../core/common/log/Logger\";\r\nimport { s1049 } from \"../../../proto/proto\";\r\nimport { TimePoxy } from \"../proxy/TimePoxy\";\r\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\r\nimport { GlobalFunction } from \"../common/GlobalFunction\";\r\nimport { TaskProxy } from \"../proxy/TaskProxy\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"BossGoUIViewComp\")\r\nexport class BossGoUIViewComp extends Component{\r\n @property(Button)\r\n Button_back:Button = null;\r\n\r\n @property(Node)\r\n guideNode:Node = null;\r\n\r\n\r\n @property(Sprite)\r\n Sprite_bossbg:Sprite = null;\r\n @property(Label)\r\n Label_name:Label = null;\r\n @property(Label)\r\n Label_bosstalk:Label = null;\r\n @property(Label) \r\n Label_time:Label = null;\r\n @property(Node)\r\n Layout_item:Node = null;\r\n @property(Node)\r\n item:Node = null;\r\n\r\n @property(RichText)\r\n Label_dec1:RichText = null;\r\n @property(Node)\r\n Button_jump1:Node = null;\r\n @property(Sprite)\r\n Sprite_done1:Sprite = null;\r\n\r\n \r\n @property(RichText)\r\n Label_dec2:RichText = null;\r\n @property(Node)\r\n Button_jump2:Node = null;\r\n @property(Sprite)\r\n Sprite_done2:Sprite = null;\r\n @property(RichText)\r\n Label_dec3:RichText = null;\r\n @property(Node)\r\n Button_jump3:Node = null;\r\n @property(Sprite)\r\n Sprite_done3:Sprite = null;\r\n\r\n private bosslaixi:BossLaiXi;\r\n onLoad(){\r\n this.showData();\r\n\r\n EventManager.Inst.on(EventType.BOSS_LAI_XI_TIME_CHANGE , this , this.onTimeChaneg);\r\n EventManager.Inst.on(EventType.BOSS_LAI_XI_DATA_CHANGE, this, this.onBossLaiXi);\r\n EventManager.Inst.on(EventType.CLOSE_ALL_UI , this, this.desTroy)\r\n EventManager.Inst.on(EventType.GUIDE_TS_2005 , this , this.on2005);\r\n }\r\n private on2005(){\r\n if(GuideManager.getInstance().isInGuide){\r\n EventManager.Inst.event(EventType.uiOpenEvent_2007 , [2007,this.Button_back.node])\r\n }\r\n }\r\n private onBossLaiXi(){\r\n if(BossLaixiPoxy.Inst.s1049 && BossLaixiPoxy.Inst.s1049.bossId && BossLaixiPoxy.Inst.s1049.state==0){\r\n this.showData()\r\n }else{\r\n this.desTroy();\r\n }\r\n }\r\n private onTimeChaneg(){\r\n if(BossLaixiPoxy.Inst.s1049 && BossLaixiPoxy.Inst.s1049.bossId && BossLaixiPoxy.Inst.s1049.state==0){\r\n this.Label_time.string = TimePoxy.Inst.ShowTime(GameModleComp.getInstance().bossComeTime);\r\n }\r\n }\r\n private showData(){\r\n if(!BossLaixiPoxy.Inst.s1049){\r\n Logger.logView(\"1049数据空置\");\r\n return;\r\n }\r\n let s1049:s1049 = BossLaixiPoxy.Inst.s1049;\r\n this.bosslaixi = BossLaixiPoxy.Inst.getBossLaiXiById(s1049.bossId);\r\n\r\n this.Label_name.string = this.bosslaixi.lan_name;\r\n GlobalFunction.SetSpriteFrame(this.Sprite_bossbg , this.bosslaixi.bg);\r\n\r\n let str1:string = StringUtil.stringFormat(this.bosslaixi.lan_taskpt1 , this.bosslaixi.ay_canshu[0])\r\n let fstr1:string = \"\" + str1 + \"\";\r\n let zstr1:string = \"\";\r\n if(s1049.tasks[0].nowNum >= s1049.tasks[0].maxNum){\r\n this.Button_jump1.active = false;\r\n this.Sprite_done1.node.active = true;\r\n zstr1 = \" \"\r\n }else{\r\n this.Button_jump1.active = true;\r\n this.Sprite_done1.node.active = false;\r\n zstr1 = \" \"\r\n }\r\n let nstr1:string = \"(\"+s1049.tasks[0].nowNum+\"/\"+s1049.tasks[0].maxNum+\") \" + \"\";\r\n this.Label_dec1.string = fstr1 + zstr1 + nstr1;\r\n \r\n\r\n let str2:string = StringUtil.stringFormat(this.bosslaixi.lan_taskpt1 , this.bosslaixi.ay_canshu[1])\r\n let fstr2:string = \"\" + str2 + \"\";\r\n let zstr2:string = \"\";\r\n if(s1049.tasks[1].nowNum >= s1049.tasks[1].maxNum){\r\n this.Button_jump2.active = false;\r\n this.Sprite_done2.node.active = true;\r\n zstr2 = \" \"\r\n }else{\r\n this.Button_jump2.active = true;\r\n this.Sprite_done2.node.active = false;\r\n zstr2 = \" \"\r\n }\r\n let nstr2:string = \"(\"+s1049.tasks[1].nowNum+\"/\"+s1049.tasks[1].maxNum+\") \" + \"\";\r\n this.Label_dec2.string = fstr2 + zstr2 + nstr2;\r\n\r\n let str3:string = StringUtil.stringFormat(this.bosslaixi.lan_taskpt1 , this.bosslaixi.ay_canshu[2])\r\n let fstr3:string = \"\" + str3 + \"\";\r\n let zstr3:string = \"\";\r\n if(s1049.tasks[2].nowNum >= s1049.tasks[2].maxNum){\r\n this.Button_jump3.active = false;\r\n this.Sprite_done3.node.active = true;\r\n zstr3 = \" \"\r\n }else{\r\n this.Button_jump3.active = true;\r\n this.Sprite_done3.node.active = false;\r\n zstr3 = \" \"\r\n }\r\n let nstr3:string = \"(\"+s1049.tasks[2].nowNum+\"/\"+s1049.tasks[2].maxNum+\") \" + \"\";\r\n this.Label_dec3.string = fstr3 + zstr3 + nstr3;\r\n }\r\n onClick(){\r\n if(GuideManager.getInstance().isInGuide){\r\n EventManager.Inst.event(EventType.guideEvent_2007 , 2007);\r\n }\r\n this.desTroy();\r\n }\r\n\r\n onJunmp1Click(){\r\n TaskProxy.Inst.TaskJumpFuncation(this.bosslaixi.jump1);\r\n this.desTroy();\r\n }\r\n onJunmp2Click(){\r\n TaskProxy.Inst.TaskJumpFuncation(this.bosslaixi.jump2);\r\n this.desTroy();\r\n }\r\n onJunmp3Click(){\r\n TaskProxy.Inst.TaskJumpFuncation(this.bosslaixi.jump3);\r\n this.desTroy();\r\n }\r\n\r\n desTroy(){\r\n EventManager.Inst.off(EventType.BOSS_LAI_XI_TIME_CHANGE , this , this.onTimeChaneg);\r\n EventManager.Inst.off(EventType.BOSS_LAI_XI_DATA_CHANGE , this , this.onBossLaiXi);\r\n EventManager.Inst.off(EventType.CLOSE_ALL_UI , this, this.desTroy)\r\n EventManager.Inst.off(EventType.GUIDE_TS_2005 , this , this.on2005);\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n }\r\n }\r\n}","/**\n * BossLaiXi config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { s1049 } from '../../../proto/proto';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { GameModleComp } from '../../../game/GameModle';\n@res_auto_bind()\nexport class BossLaixiPoxy {\n private static _inst: BossLaixiPoxy;\n public static get Inst(): BossLaixiPoxy {\n if (BossLaixiPoxy._inst == null) {\n BossLaixiPoxy._inst = new BossLaixiPoxy();\n }\n return BossLaixiPoxy._inst;\n }\n private _s1049: s1049 = null;\n public get s1049(): s1049 {\n return this._s1049;\n }\n public set s1049(value: s1049) {\n this._s1049 = value;\n }\n\n\n @res_assign(\"BossLaiXi\")\n public BossLaiXiMaps: Map = new Map();\n public InitBossLaiXiConfig() {\n if (this.BossLaiXiMaps.size > 0) {\n this.BossLaiXiMaps.clear();\n }\n for (var key in ConfigManager.GetInstance().getValue(\"BossLaiXi\")) {\n let BossLaiXiitem = ConfigManager.GetInstance().getValue(\"BossLaiXi\")[key];\n if (BossLaiXiitem) {\n for (var keys in BossLaiXiitem) {\n BossLaiXiitem[keys] = GlobalFunction.Inst.ParamDef(keys, BossLaiXiitem[keys]);\n }\n this.BossLaiXiMaps.set(BossLaiXiitem.id, BossLaiXiitem);\n }\n\n }\n }\n public getBossLaiXiById(BossLaiXiID: number) {\n if (BossLaiXiID == undefined) return undefined;\n return this.BossLaiXiMaps.get(BossLaiXiID);\n }\n}\nexport class BossLaiXi {\n id: number;\n lan_name: string;\n kv_rewards: Map;\n rate:number;\n lan_taskpt1:string;\n lan_taskpt2:string;\n lan_taskts2:string;\n ay_canshu:Array;\n jump1:number;\n jump2:number;\n jump3:number;\n push:string;\n bg:string;\n}\n\n/**服务器推送的新手引导数据*/\nexport function do_s1049(s1049: s1049) {\n if(s1049.bossId >= 0){\n if(s1049.tasks == undefined){\n s1049.tasks = [];\n }\n for(let i = 0 ; i < s1049.tasks.length ; i++){\n if(s1049.tasks[i].nowNum == undefined){\n s1049.tasks[i].nowNum = 0;\n }\n }\n GameModleComp.getInstance().bossComeTime = s1049.comeTime;\n BossLaixiPoxy.Inst.s1049 = s1049;\n Logger.logNet(\"BOSS来袭数据推送:\" + s1049.bossId);\n if(BossLaixiPoxy.Inst.s1049.state == undefined){\n BossLaixiPoxy.Inst.s1049.state = 0;\n }\n }else{\n BossLaixiPoxy.Inst.s1049 = null;\n }\n EventManager.Inst.event(EventType.BOSS_LAI_XI_DATA_CHANGE);\n}\n ","import { _decorator } from \"cc\";\r\nimport { Soldiers } from \"../modules/game/proxy/SoldierProxy\";\r\nimport { RoleModleComp } from \"./RoleModle\";\r\nimport { Monster, MonsterPoxy } from \"../modules/game/proxy/MonsterPoxy\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { AttType, RoleTypeEnum } from \"../enum/Enum\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('BossModle')\r\nexport class BossModle extends RoleModleComp{\r\n private _monster: Monster;\r\n public get monster(): Monster {\r\n return this._monster;\r\n }\r\n public set monster(value: Monster) {\r\n this._monster = value;\r\n }\r\n private _skillId: number = 101;\r\n public get skillId(): number {\r\n return this._skillId;\r\n }\r\n public set skillId(value: number) {\r\n this._skillId = value;\r\n }\r\n init(){\r\n super.init();\r\n }\r\n addRoleSkill(skid: number) {\r\n if(skid){\r\n // let skill:Skill = new Skill();\r\n // skill.init();\r\n // skill.SkillModel.id = skid;\r\n // skill.SkillModel.showTable(true , RoleTypeEnum.Monster);\r\n // this.skills.set(skid, skill);\r\n // skill.SkillModel.casting.caster = this.role;\r\n // skill.SkillModel.casting.skill = skill;\r\n // skill.SkillModel.casting.onPassive();\r\n // this.role.skill = skill;\r\n // Logger.logView(\"给BOSS\"+this.role.roleId + \"添加技能\" + skid);\r\n }\r\n for(let i = 0 ; i < this.monster.ay_buff.length ; i++){\r\n skid = Number(this.monster.ay_buff[i]);\r\n let skill:Skill = new Skill();\r\n skill.init();\r\n skill.SkillModel.id = skid;\r\n skill.SkillModel.showTable(false , RoleTypeEnum.Monster);\r\n this.skills.set(skid, skill);\r\n this.skillId = skid;\r\n skill.SkillModel.casting.caster = this.role;\r\n skill.SkillModel.casting.skill = skill;\r\n skill.SkillModel.casting.onPassive();\r\n this.role.skill = skill;\r\n // Logger.logView(\"给BOSS\"+this.role.roleId + \"添加技能\" + skid);\r\n }\r\n }\r\n addAttributes(data:string){\r\n // for(let i = AttType.None ; i < AttType.EndValue ; i++){\r\n // this.attributes.get(i).value = 0;\r\n // }\r\n for(let key in AttType){\r\n this.attributes.get(AttType[key]).value = 0;\r\n }\r\n this.attributes.get(AttType.atkValue).value = Number(this.monster.atk);\r\n this.attributes.get(AttType.defValue).value = Number(this.monster.def);\r\n this.attributes.get(AttType.hpValue).value = Number(this.monster.hp);\r\n this.attributes.get(AttType.baoJiRate).value = Number(this.monster.cs);\r\n this.attributes.get(AttType.baoJiHurtRate).value = Number(this.monster.vi);\r\n \r\n \r\n \r\n\r\n let hp:number = this.attributes.get(AttType.hpValue).value;\r\n let hpAdd:number = this.attributes.get(AttType.hpRate).value;\r\n this.attributes.get(AttType.HpMax).value = hp + Math.floor(hp*(hpAdd/GameModleComp.getInstance().maxValue));\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { AllRoleTypeEnum, AttType, RoleTypeEnum } from \"../enum/Enum\";\r\nimport Utils from \"../core/utils/Utils\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { CharactorDirection } from \"../map/charactor/Charactor\";\r\nimport { sp } from \"cc\";\r\nimport { Color } from \"cc\";\r\nimport { ICharactorClip } from \"../map/charactor/ICharactorClip\";\r\nimport { BaseRole, GebolinMapType } from \"./Role\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { EffectSingleCase, IEffectParams } from \"../skill/EffectSingleCase\";\r\nimport { Vec3 } from \"cc\";\r\nimport { GebolInAttTypeEnum, GebolinView } from \"./GebolinView\";\r\nimport { BossModle } from \"./BossModle\";\r\nimport { MonsterPoxy } from \"../modules/game/proxy/MonsterPoxy\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { BossAiComp } from \"./BossAiComp\";\r\nimport { SkillCasting } from \"../skill/SkillCasting\";\r\nimport { Model, ModelPoxy } from \"../modules/game/proxy/ModelPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { find } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { WordMapPoxy } from \"../modules/game/proxy/WordMapPoxy\";\r\nimport { Pass, PassPoxy } from \"../modules/game/proxy/PassPoxy\";\r\nimport { StringUtil } from \"../core/utils/StringUtil\";\r\nimport { BoxStyle, GlobalFunction } from \"../modules/game/common/GlobalFunction\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { tween } from \"cc\";\r\nimport { GameManager } from \"../modules/GameManager\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { Button } from \"cc\";\r\nimport { MapModelComp } from \"../map/MapModel\";\r\nimport { MainTitle, MainTitlePoxy } from \"../modules/game/proxy/MainTitlePoxy\";\r\nimport { GoldItemComp, MapItem } from \"../item/GoldItemComp\";\r\nimport { Prefab } from \"cc\";\r\nimport { instantiate } from \"cc\";\r\nimport { MapGoldEffViewComp } from \"../item/MapGoldEffViewComp\";\r\nimport WindowManager, { UILayer } from \"../core/manager/WindowManager\";\r\nimport { UITransform } from \"cc\";\r\nimport { send2client } from \"../core/WebSocket/WebSocketMgr\";\r\nimport { Timer } from \"../core/utils/Timer\";\r\nimport { BoxData, p_reward } from \"../modules/game/common/Component\";\r\nimport { do_s1221 } from \"../modules/game/proxy/OffineProxy\";\r\nimport { c1601, p_bat_boss } from '../proto/proto';\r\nimport GameConst from \"../core/common/GameConst\";\r\nimport { GameOverType } from \"../modules/game/proxy/LosePoxy\";\r\nimport { ScrollView } from \"cc\";\r\nimport { Event } from \"cc\";\r\nimport { FunctionProxy } from \"../modules/game/proxy/FunctionProxy\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('BossView')\r\nexport class BossView extends BaseRole implements ICharactorClip{\r\n @property(Node)\r\n scaleNodes : Node = null;\r\n @property(Node)\r\n topNode:Node = null;\r\n @property(Node)\r\n wuqi:Node = null;\r\n @property(Sprite)\r\n wuqiSprite : Sprite = null;\r\n @property(Node)\r\n suofang:Node = null;\r\n @property(ProgressBar)\r\n ProgressBar_bosstime : ProgressBar = null;\r\n @property(Sprite)\r\n bossSprite : Sprite = null;\r\n @property(Button)\r\n killBossBtn:Button = null;\r\n @property(Node)\r\n Layout_item:Node = null;\r\n @property(Prefab)\r\n mapItem:Prefab = null;\r\n @property(Node)\r\n jituiNode:Node = null;\r\n @property(Node)\r\n Bottom:Node = null;\r\n public spine!: sp.Skeleton;\r\n private bossAi:BossAiComp;\r\n\r\n private _p_bat_boss: p_bat_boss = {};\r\n public get p_bat_boss(): p_bat_boss {\r\n return this._p_bat_boss;\r\n }\r\n public set p_bat_boss(value: p_bat_boss) {\r\n this._p_bat_boss = value;\r\n }\r\n onLoad(){\r\n super.onLoad()\r\n }\r\n init(mapType:GebolinMapType = GebolinMapType.PveBoss){\r\n this.gebolinMapType = mapType;\r\n super.init(mapType);\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.addComponent(BossModle);\r\n this.modle = this.getComponent(BossModle);\r\n this.modle.init();\r\n this.modle.role = this;\r\n this.friendType = AllRoleTypeEnum.Enemy;\r\n this.RoleType = RoleTypeEnum.Monster;\r\n this.roleId = Utils.AddId();\r\n this.roleName = this.roleId;\r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n this.topNode.active = true;\r\n this.showGuanqia();\r\n if(this.isBoss){\r\n this.showBossPro();\r\n }\r\n if(GameModleComp.getInstance().isKillBossFail){\r\n this.killBossBtn.node.active = true;\r\n }\r\n this.changeTitle()\r\n }else if(this.gebolinMapType == GebolinMapType.PveCopy){\r\n this.topNode.active = false;\r\n }\r\n }\r\n private changeTitle(){\r\n // let maintitle:MainTitle = MainTitlePoxy.Inst.getTitleById(this.isBoss ? 1 : 2);\r\n // if(maintitle.ay_hp && maintitle.ay_hp.length){\r\n // let pos:Vec3 = this.topNode.position;\r\n // let off:Vec3 = new Vec3(Number(maintitle.ay_hp[0]) , Number(maintitle.ay_hp[1]) , 1);\r\n // this.topNode.position = new Vec3(pos.x + off.x , pos.y + off.y , 1);\r\n // }\r\n // let v3:Vec3 = new Vec3(1 , 1 , 1);\r\n // let ids:number = 0;\r\n // ids = (this.modle as BossModle).monster.id \r\n // let model:Model = ModelPoxy.Inst.getModelById(ids);\r\n // if(model && model.ay_fight && model.ay_fight.length==2){\r\n // v3.x = Number(model.ay_fight[0]);\r\n // v3.y = Number(model.ay_fight[1]);\r\n // }\r\n // let pos:Vec3 = this.topNode.position;\r\n // this.topNode.position = new Vec3(pos.x , pos.y*v3.y , 1);\r\n\r\n // let pos1:Vec3 = this.Bottom.position;\r\n // this.Bottom.position = new Vec3(pos1.x , pos1.y*v3.y , 1);\r\n }\r\n onToKillClick(){\r\n GameEntry.Inst.mapView.onToKillClick();\r\n }\r\n private bossIndex:number = 0;\r\n private showBossPro(){\r\n this.bossSprite.node.active = true;\r\n this.ProgressBar_bosstime.node.active = true;\r\n let interval = 1;\r\n let repeat = 1000; \r\n let delay = 0; \r\n this.schedule(()=>{\r\n if(!GameModleComp.getInstance().isInCopy){\r\n this.bossIndex++;\r\n let time:number = GameModleComp.getInstance().bossDieTime-this.bossIndex;\r\n if(time < 0){\r\n return;\r\n }\r\n let fen:number = Math.floor(time/60);\r\n let miao:number = time%60;\r\n let label:Label = find(\"Label_bosstime\" , this.bossSprite.node).getComponent(Label);\r\n let f = (fen ? fen : \"00\");\r\n let m=miao;\r\n if(m){\r\n if(m < 10){\r\n label.string = f + \" : 0\" + m + \"\"\r\n }else{\r\n label.string = f + \" : \" + m + \"\"\r\n }\r\n }else{\r\n label.string = f + \" : 00\"\r\n }\r\n this.ProgressBar_bosstime.progress = time / GameModleComp.getInstance().bossDieTime;\r\n if(time == 0){\r\n if(!this.isDie){\r\n EventManager.Inst.event(EventType.KILL_BOSS_FAIL);\r\n GameModleComp.getInstance().isKillBossFail = true;\r\n var c1601: c1601 = {\r\n passId:GameModleComp.getInstance().selectGuankaId,\r\n monsterId:(this.modle as BossModle).monster.id,\r\n isKill:0,\r\n heroMy:this.getMyHero(GebolinMapType.PveBoss),\r\n armyMy:this.getMyGebolin(GebolinMapType.PveBoss),\r\n bossTar: [GameEntry.Inst.mapView.nowBoss.p_bat_boss],\r\n startTime: new Date().getDate(),\r\n inArmyNum: GameModleComp.getInstance().nowGebolinNum,\r\n newArmyNum: GameModleComp.getInstance().newGebolinNum,\r\n outArmyNUm: GameModleComp.getInstance().overGebolinNum,\r\n deadArmyNum: GameModleComp.getInstance().dieGebolinNum,\r\n };\r\n send2client(\"c1601\",c1601);\r\n GameModleComp.getInstance().heroFight = [];\r\n GameModleComp.getInstance().dieGebolin = [];\r\n GameModleComp.getInstance().newGebolinNum = 0;\r\n GameModleComp.getInstance().nowGebolinNum = 0;\r\n GameModleComp.getInstance().overGebolinNum = 0;\r\n GameModleComp.getInstance().dieGebolinNum = 0;\r\n GameEntry.Inst.mapView.gebolinMap.forEach((key,value)=>{\r\n key.p_bat_army = {};\r\n })\r\n if(!GlobalFunction.IsExistOtherLayer()){\r\n WindowManager.Instance().open(GameConst.winPath.LoseUI, GameOverType.bossfaile, true);\r\n }\r\n }\r\n }\r\n }\r\n },interval, repeat, delay);\r\n }\r\n private showGuanqia(){\r\n let psdata = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let wordMapdata = WordMapPoxy.Inst.getWordMapById(psdata.wordMapID);\r\n this.Label_guaka.string = wordMapdata.lan_classify + \" \"+ wordMapdata.typeId + \"-\" +psdata.typeId;\r\n // this.Label_guaka.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20065), wordMapdata.lan_classify, wordMapdata.typeId, psdata.typeId);\r\n }\r\n setMonsterId(value:number){\r\n if(!value){\r\n Logger.logView(\"添加怪物出错\");\r\n return;\r\n }\r\n (this.modle as BossModle).monster = MonsterPoxy.Inst.getMonsterById(value);\r\n this.showRole((this.modle as BossModle).monster.modle , ()=>{\r\n setTimeout(() => {\r\n this.bossAi = new BossAiComp(this);\r\n }, 200);\r\n })\r\n this.showScale();\r\n this.modle.addRoleSkill(value);\r\n this.modle.addAttributes(\"\");\r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n this.showReward();\r\n find(\"Label_boss\" , this.hpPro.node).getComponent(Label).string = Math.floor(this.modle.attributes.get(AttType.HpMax).value) + \"\";\r\n }\r\n this.p_bat_boss.heroUID = (this.modle as BossModle).monster.id + \"\";\r\n GameEntry.Inst.mapView.gebolinMap.forEach((gebolin,key)=>{\r\n if(this.gebolinMapType ==gebolin.gebolinMapType){\r\n GameModleComp.getInstance().nowGebolinNum++;\r\n }\r\n })\r\n }\r\n private showReward(){\r\n if(this.isBoss){\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let rewardArr:Array = [];\r\n for (const [key, value] of Array.from(pass.kv_pass.entries())) {\r\n let reward = {\r\n id:Number(key),\r\n num:Number(value)\r\n };\r\n rewardArr.push(reward);\r\n }\r\n for(let i = 0 ; i < rewardArr.length ; i++){\r\n let item:GoldItemComp = instantiate(this.mapItem).getComponent(GoldItemComp);\r\n item.setData(rewardArr[i]);\r\n this.Layout_item.addChild(item.node);\r\n }\r\n }else{\r\n let item:MapItem = new MapItem();\r\n item.id = 1001;\r\n item.num = (this.modle as BossModle).monster.gold;\r\n this.rewardArr.push(item);\r\n }\r\n for(let i = 0 ; i < this.rewardArr.length ; i++){\r\n let item:GoldItemComp = instantiate(this.mapItem).getComponent(GoldItemComp);\r\n item.setData(this.rewardArr[i]);\r\n this.Layout_item.addChild(item.node);\r\n }\r\n }\r\n private showScale(){\r\n let scale:number = Number((this.modle as BossModle).monster.scale);\r\n this.suofang.scale = new Vec3(scale , scale ,1);\r\n }\r\n showRole(str:string , callFun:Function){\r\n let path: string = \"spineRes/characters/\"+str+\"/\" + str;\r\n let sktd = ResHelper.get(path, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n callFun();\r\n }else {\r\n Logger.logView(\"未能从bundle中获取到资源:\"+path)\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n callFun();\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n setDirection(value: CharactorDirection): void {\r\n if (value > 4) {\r\n this.skeleton.getComponent(sp.Skeleton)!.node.setScale(-1, 1, 1);\r\n }\r\n else {\r\n this.skeleton.getComponent(sp.Skeleton)!.node.setScale(-1, 1, 1);\r\n }\r\n \r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n let v3:Vec3 = new Vec3(1 , 1 , 1);\r\n let ids:number = 0;\r\n ids = (this.modle as BossModle).monster.id \r\n let model:Model = ModelPoxy.Inst.getModelById(ids);\r\n if(model && model.ay_fight && model.ay_fight.length==2){\r\n v3.x = Number(model.ay_fight[0]);\r\n v3.y = Number(model.ay_fight[1]);\r\n }\r\n this.scaleNodes!.setScale(v3)\r\n\r\n let pos:Vec3 = this.topNode.position;\r\n this.topNode.position = new Vec3(pos.x , pos.y*v3.y , 1);\r\n\r\n let pos1:Vec3 = this.Bottom.position;\r\n this.Bottom.position = new Vec3(pos1.x , pos1.y*v3.y , 1);\r\n }\r\n }\r\n setAlpha(value: number): void {\r\n var color: Color = this.skeleton.getComponent(sp.Skeleton).color;\r\n color.a = 255 * (value / 1);\r\n this.skeleton.getComponent(sp.Skeleton).color = color;\r\n }\r\n async showHit(skill:Skill){\r\n if(this.isDie){\r\n return;\r\n }\r\n if(this && this.node){\r\n this.goblin_Hit();\r\n let v3:Vec3 = this.node.position;\r\n let newPoint:Vec3 = new Vec3(1,1,0);\r\n newPoint.x = Math.random()*100 > 50 ? v3.x - Math.random()*100 : v3.x + Math.random()*100;\r\n newPoint.y = v3.y + Math.random()*100;\r\n let data:IEffectParams = {\r\n pos:newPoint,\r\n isPlayFinishedRelease:true\r\n }\r\n await EffectSingleCase.instance.loadAndShow(skill.SkillModel.ballisticHitRes, GameEntry.Inst.mapView.nowScene.EffectLayer,data);\r\n }\r\n }\r\n /**\r\n * 攻击目标动作\r\n * @param target 攻击\r\n */\r\n attack(sc:SkillCasting ,target: BaseRole | Vec3, skill: Skill) {\r\n if(this.isDie){\r\n return;\r\n }\r\n this.isAttackOver = false;\r\n let tempX = target instanceof BaseRole ? this.node.position.x - target.node.position.x : this.node.position.x - target.x;\r\n let tempY = target instanceof BaseRole ? this.node.position.y - target.node.position.y : this.node.position.y - target.y;\r\n if(tempX > 0){\r\n this.skeleton.scale = new Vec3(1 , 1 ,1)\r\n }else{\r\n this.skeleton.scale = new Vec3(-1 , 1 ,1)\r\n }\r\n this.goblin_attack(sc , target , skill);\r\n }\r\n showJituiEff(){\r\n this.jituiNode.getComponent(sp.Skeleton).setAnimation(1,\"e_c_buff\",false);\r\n this.jituiNode.active = true;\r\n }\r\n goblin_dead(){\r\n if(this.isBoss){\r\n GameModleComp.getInstance().isKillBossFail = false;\r\n }\r\n super.goblin_dead();\r\n }\r\n dead(){\r\n if(this.isDie){\r\n return;\r\n }\r\n this.goblin_dead();\r\n if(this.isBoss){\r\n if(!FunctionProxy.Inst.IsFuntionIsOpen() && !GlobalFunction.IsExistOtherLayer()){\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let rewardArr:Array = [];\r\n for (const [key, value] of Array.from(pass.kv_pass.entries())) {\r\n let reward = {\r\n id:Number(key),\r\n num:Number(value)\r\n };\r\n rewardArr.push(reward);\r\n }\r\n var data = new BoxData\r\n {\r\n data.rewards = rewardArr;\r\n };\r\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle10);\r\n }\r\n }\r\n }\r\n private killNum:number = 0;\r\n changeHp(value){\r\n if(this.isDie){\r\n return;\r\n }\r\n this.modle.attributes.setArr(AttType.hpValue , value);\r\n let max:number=this.modle.attributes.get(AttType.HpMax).value;\r\n let now:number=this.modle.attributes.get(AttType.hpValue).value;\r\n if(now >= max){\r\n now = max;\r\n }\r\n let pro:number = now / max;\r\n if(pro >= 1){\r\n pro = 1;\r\n }\r\n if(pro <= 0){\r\n pro = 0;\r\n }\r\n this.hpPro.progress = pro;\r\n if(pro == 0){\r\n this.dead();\r\n }\r\n find(\"Label_boss\" , this.hpPro.node).getComponent(Label).string = Math.floor(now) + \"\";\r\n let arr:Array = [now , max];\r\n if(this.isBoss){\r\n EventManager.Inst.event(EventType.BOSS_HP_CHANGE,arr)\r\n }\r\n if(this.gebolinMapType == GebolinMapType.PveCopy){\r\n EventManager.Inst.event(EventType.COPY_BOSS_HP_CHANGE,arr)\r\n this.killNum += value*-1;\r\n if(this.killNum >= max/10){\r\n this.killNum=0;\r\n this.showCopyReward();\r\n }\r\n }\r\n }\r\n private showCopyReward(){\r\n let num:number = Math.ceil(Math.random()*5);\r\n if(num > 20){\r\n num = 20;\r\n }\r\n for(let i = 0 ; i < num ; i++){\r\n let eff:MapGoldEffViewComp = instantiate(this.mapGoldEff).getComponent(MapGoldEffViewComp);\r\n eff.init(GameModleComp.getInstance().transPveData.fubenId);\r\n let _x:number = Math.random()*100 - 50;\r\n let _y:number = Math.random()*20-10;\r\n let layer = WindowManager.Instance().getLayer(UILayer.地图特效);\r\n /**角色对象的局部坐标*/\r\n let posV3:Vec3 = this.node.position;\r\n /**角色对象的map摄像机下本地坐标转世界坐标 */\r\n let wordPoint:Vec3 = GameEntry.Inst.mapView.nowScene.heroLayer.getComponent(UITransform).convertToWorldSpaceAR(posV3);\r\n /**世界坐标转屏幕坐标*/\r\n let screenPoint:Vec3 = GameEntry.Inst.mapView.nowScene.mapCamera.worldToScreen(wordPoint);\r\n /**世界坐标转屏幕坐标*/\r\n let uiWordPoint:Vec3 = GameEntry.Inst.mainCamera.screenToWorld(screenPoint);\r\n /**屏幕坐标转局部坐标*/\r\n let addPoint:Vec3 = layer.getComponent(UITransform).convertToNodeSpaceAR(uiWordPoint);\r\n /***偏移量*/\r\n let effPos:Vec3 = new Vec3(addPoint.x + _x ,addPoint.y + _y , 1);\r\n eff.node.position = effPos;\r\n layer.addChild(eff.node);\r\n let targetPoint:Vec3 = MapModelComp.getInstance().copyPosInUi;\r\n eff.playAni();\r\n setTimeout(() => {\r\n EventManager.Inst.event(EventType.COPY_MAP_REWARD_CHANGE);\r\n tween(eff.node).to(1.5,{position : targetPoint , scale:new Vec3(0.4,0.4,1)}).call(()=>{\r\n eff.reset();\r\n }).start();\r\n }, 400);\r\n }\r\n }\r\n update(dt){\r\n super.update(dt);\r\n if(this.bossAi){\r\n this.bossAi.update(dt);\r\n }\r\n if(this.skillIn1){\r\n this.skillIn1.update(dt);\r\n }\r\n if(this.skillIn2){\r\n this.skillIn2.update(dt);\r\n }\r\n }\r\n desTory(){\r\n if(this && this.node){\r\n this.p_bat_boss = {};\r\n this.unscheduleAllCallbacks();\r\n super.desTory();\r\n }\r\n }\r\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Component, Node } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { EventType } from \"../../../core/manager/EventManager\";\nimport { BoxData, p_reward } from \"../common/Component\";\nimport { LAYOUT } from \"../../../../../extensions/plugin-import-2x/creator/components/Layout\";\nimport { Layout } from \"../../../../../extensions/i18n/@types/editor/layout\";\nimport { instantiate } from \"cc\";\nimport { Label } from \"cc\";\nimport { SpriteFrame } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { sp } from \"cc\";\nimport { Vec3 } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass\nexport default class Box10UI extends BasePanel {\n timeDayCallback: any;\n boxdata: BoxData;\n rewardData: p_reward[] =[];\n @property(Node) Layout_item: Node | null = null;//content\n @property(Node) item: Node | null = null;\n prefabitem: Node | null = null;\n\n @property(Node) ScrollView_item: Node | null = null;\n\n @property(Node) Layout_item1: Node | null = null;//content\n @property(Node) item1: Node | null = null;\n Label_timemun : Node | null = null;\n itemCount: number = 6;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_Mask\") {\n this.close(true)\n }\n }\n\n onLoad() {\n\n }\n\n onShow(data: any): void {\n if (!data) return;\n this.boxdata = data;\n if(this.boxdata.rewards==undefined)return;\n if(this.boxdata.rewards.length==0)return; \n for (let index = 0; index < this.boxdata.rewards.length; index++) {\n const element = this.boxdata.rewards[index];\n if(this.rewardData.length==0){\n this.rewardData.push(element);\n }else{\n let data = this.rewardData.find(item=>item.id==element.id);\n if(data){\n for(let i=0;i{\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name){\n case \"e_ui_box3uI_start\":\n Sprite_itemtx.active=false;\n break;\n }\n });\n }\n }\n }\n } else {\n this.prefabitem = this.item1;\n this.Layout_item1.removeAllChildren();\n\n for (let i = 0; i < count; ++i) {\n let itemNode = instantiate(this.prefabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item1;\n let reward = this.rewardData[i];\n let Button_item1 = itemNode.getChildByName(\"Button_item1\");\n let Sprite_itemkuang = Button_item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let Sprite_item = Button_item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n let Label_item = Button_item1.getChildByName(\"Label_item\").getComponent(Label);\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n if (itemdata) {\n let kuangstring = ItemProxy.Inst.GetItemKuangByColor(itemdata.color);\n let iconstring = itemdata.icon;\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, kuangstring);\n GlobalFunction.SetSpriteFrame(Sprite_item, iconstring);\n Label_item.string =GlobalFunction.ConvertNumberWithUnit(reward.num);\n\n \n let Sprite_itemtx = Button_item1.getChildByName(\"Sprite_itemtx1\");\n let e_ui_box3uI_start = Sprite_itemtx.getChildByName(\"e_ui_box3uI_start\");\n let Sprite_itemtxsk = e_ui_box3uI_start.getComponent(sp.Skeleton);\n Sprite_itemtxsk.setAnimation(0, \"e_ui_box3uI_start\", false);\n Sprite_itemtxsk.setCompleteListener((trackEntry)=>{\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name){\n case \"e_ui_box3uI_start\":\n Sprite_itemtx.active=false;\n break;\n }\n });\n }\n\n }\n }\n\n\n }\n\n\n let different = 3;\n let timelabel = this.Label_timemun.getComponent(Label);\n if (different > 1) {\n timelabel.string = different+\"\";\n this.timeDayCallback = function (dt) {\n if (different > 1) {\n different--;\n timelabel.string = different+\"\";\n \n } else {\n this.unschedule(this.timeDayCallback);\n this.close(true);\n }\n }\n this.schedule(this.timeDayCallback, 1.0);\n }\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator,Node} from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Item, ItemData, ItemProxy } from \"../proxy/ItemProxy\";\nimport { Label } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { Logger } from \"../../../../core/common/log/Logger\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { HeroEquipProxy } from \"../proxy/HeroEquipProxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { Button } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass(\"Box1UI\")\nexport default class Box1UI extends BasePanel {\n \n itemdataID : number;\n itemSeverData:Item;\n timecount :number;\n yongyoucoun :number;\n @property(Node) Label_num: Node | null = null;\n @property(Node) Label_time: Node | null = null;\n \n\n @property(Node)Sprite_itemkuang: Node | null = null;//content\n @property(Node)Sprite_item: Node | null = null;\n @property(Node)Label_itemname: Node | null = null;\n\n @property(Button)Button_onejia: Button | null = null;\n @property(Button)Button_tenjia: Button | null = null;\n\n @property(Button)Button_onejian: Button | null = null;\n @property(Button)Button_tenjian: Button | null = null;\n\n count: number =1;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\"){\n this.close(true)\n }else if(name == \"Button_item\"){\n this.onBtnClickedOnejian();\n }else if(name == \"Button_onejian\"){\n this.onBtnClickedOnejian();\n }else if(name == \"Button_onejia\"){\n this.onBtnClickedOnejia();\n }else if(name == \"Button_tenjian\"){\n this.onBtnClickedTenjian();\n }else if(name == \"Button_tenjia\"){\n this.onBtnClickedTenjia();\n }else if(name == \"Button_get\"){\n HeroProxy.Inst.SendC1202(this.itemSeverData.itemUID+\"\",this.count,\"0\");\n this.close(true)\n }\n }\n onBtnClickedItem(){\n\n }\n onBtnClickedOnejian(){\n\n let downonespr = this.Button_onejian.getComponent(Sprite);\n if(downonespr.grayscale)return;\n\n if(this.count<=1)return;\n this.count--;\n let labelnum = this.Label_num.getComponent(Label);\n labelnum.string = this.count.toString();\n this.setTimeLabel();\n\n downonespr.grayscale = this.count<=1;\n let downtenspr = this.Button_tenjian.getComponent(Sprite);\n downtenspr.grayscale = this.count<=1;\n let linshicount = this.timecount>=this.yongyoucoun?this.yongyoucoun:this.timecount;\n let addonespr = this.Button_onejia.getComponent(Sprite);\n addonespr.grayscale = this.count>=linshicount;\n let addtenspr = this.Button_tenjia.getComponent(Sprite);\n addtenspr.grayscale = this.count+10>=linshicount;\n\n\n\n }\n onBtnClickedOnejia(){\n\n let addonespr = this.Button_onejia.getComponent(Sprite);\n let linshicount = this.timecount>=this.yongyoucoun?this.yongyoucoun:this.timecount;\n if(addonespr.grayscale)return;\n\n // if(this.count>=this.itemSeverData.num)return;\n this.count++;\n if(this.count>linshicount){\n this.count = linshicount;\n }\n let labelnum = this.Label_num.getComponent(Label);\n labelnum.string = this.count.toString();\n this.setTimeLabel();\n\n\n let downonespr = this.Button_onejian.getComponent(Sprite);\n downonespr.grayscale = this.count<=1;\n let downtenspr = this.Button_tenjian.getComponent(Sprite);\n downtenspr.grayscale = this.count<=1;\n \n addonespr.grayscale = this.count>=linshicount;\n let addtenspr = this.Button_tenjia.getComponent(Sprite);\n addtenspr.grayscale = this.count+10>=linshicount;\n }\n onBtnClickedTenjia(){\n let addtenspr = this.Button_tenjia.getComponent(Sprite);\n\n let linshicount = this.timecount>=this.yongyoucoun?this.yongyoucoun:this.timecount;\n if(addtenspr.grayscale)return;\n // if(this.count>=this.itemSeverData.num)return;\n this.count +=10;\n if(this.count>linshicount){\n this.count = linshicount;\n }\n let labelnum = this.Label_num.getComponent(Label);\n labelnum.string = this.count.toString();\n this.setTimeLabel();\n\n\n let downonespr = this.Button_onejian.getComponent(Sprite);\n downonespr.grayscale = this.count<=1;\n let downtenspr = this.Button_tenjian.getComponent(Sprite);\n downtenspr.grayscale = this.count<=1;\n\n let addonespr = this.Button_onejia.getComponent(Sprite);\n addonespr.grayscale = this.count>=linshicount;\n addtenspr.grayscale = this.count+10>=linshicount;\n\n }\n onBtnClickedTenjian(){\n\n\n let downtenspr = this.Button_tenjian.getComponent(Sprite);\n if(downtenspr.grayscale)return;\n\n if(this.count<=1)return;\n this.count -=10;\n if(this.count<0){\n this.count=1;\n }\n let labelnum = this.Label_num.getComponent(Label);\n labelnum.string = this.count.toString();\n this.setTimeLabel();\n\n downtenspr.grayscale = this.count<=1;\n let downonespr = this.Button_onejian.getComponent(Sprite);\n downonespr.grayscale = this.count<=1;\n let linshicount = this.timecount>=this.yongyoucoun?this.yongyoucoun:this.timecount;\n let addonespr = this.Button_onejia.getComponent(Sprite);\n addonespr.grayscale = this.count>linshicount;\n let addtenspr = this.Button_tenjia.getComponent(Sprite);\n addtenspr.grayscale = this.count+10>linshicount;\n if(downtenspr.grayscale)return;\n\n }\n onBtnClickedGet(){\n \n }\n onShow(dataid: any): void {\n if(!dataid || dataid==0)return;\n this.itemdataID = dataid;\n\n this.itemSeverData = ItemProxy.Inst.getServerItem(this.itemdataID);\n let itemdata = ItemProxy.Inst.GetItemDataByID(this.itemdataID);\n if(!itemdata==null)return; \n let labelnum = this.Label_num.getComponent(Label);\n let finishtime =HeroEquipProxy.Inst.HeroEquipServerInfo.finishTime;\n let currentTime = GameModleComp.getInstance().serverTime;\n let different =finishtime - currentTime; // 时间差(秒)\n if(different<0)return;\n\n this.timecount = Math.ceil(different/300);\n this.yongyoucoun = ItemProxy.Inst.getServerItem(2003).num;\n \n this.count = this.timecount>=this.yongyoucoun?this.yongyoucoun:this.timecount;\n labelnum.string = this.count.toString();\n\n let addonespr = this.Button_onejia.getComponent(Sprite);\n addonespr.grayscale = true;\n let addtenspr = this.Button_tenjia.getComponent(Sprite);\n addtenspr.grayscale = true;\n\n let downonespr = this.Button_onejian.getComponent(Sprite);\n downonespr.grayscale = this.count<=1;\n let downtenspr = this.Button_tenjian.getComponent(Sprite);\n downtenspr.grayscale = this.count<=1;\n\n\n let Sprite_itemkuang = this.Sprite_itemkuang.getComponent(Sprite);\n let Sprite_item = this.Sprite_item.getComponent(Sprite);\n let Label_itemname = this.Label_itemname.getComponent(Label);\n\n let kuangstring =ItemProxy.Inst.GetItemKuangByColor(itemdata.color);//.replace(\".png\",\"\");\n let iconstring = itemdata.icon;\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang,kuangstring);\n GlobalFunction.SetSpriteFrame(Sprite_item,iconstring);\n Label_itemname.string = itemdata.lan_name;\n\n this.Label_time.getComponent(Label).string =TimePoxy.Inst.ShowTimeLabel( (this.count *300));\n }\n\n public setTimeLabel(){\n this.Label_time.getComponent(Label).string = TimePoxy.Inst.ShowTimeLabel((this.count *300));\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { ProgressBar } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { p_ci_tiao, p_hero_equip } from \"../../../proto/proto\";\nimport { HeroEquipBuff, HeroEquipProxy } from \"../proxy/HeroEquipProxy\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { RichText } from \"cc\";\nimport { v3 } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport { Vec2 } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass\nexport default class Box2UI extends BasePanel {\n\n\n //获取服务器数据\n lvLv: number;// 决定装备等级的等级\n expLv: number;// lvLv对应的经验\n lvColor: number;// 决定品质的等级\n expColor: number;// 品质等级的点击次数\n finishTime: number;// 如果打造台升级中,升级完成时间,0表示不在升级种\n eqList: p_hero_equip[];// 装备列表\n ciTiaoList?: HeroEquipBuff[] = [];\n\n @property(Node) Label_lv: Node = null;\n @property(Node) ProgressBar_exp: Node = null;\n @property(Node) Label_att: Node = null;\n @property(Node) Label_def: Node = null;\n @property(Node) Label_hp: Node = null;\n @property(Node) Layout_dec: Node = null;\n dec: Node = null;\n prefabdec: Node = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n this.lvLv = HeroEquipProxy.Inst.HeroEquipServerInfo.lvLv;\n this.expLv = HeroEquipProxy.Inst.HeroEquipServerInfo.expLv;\n this.eqList = HeroEquipProxy.Inst.HeroEquipServerInfo.eqList;\n let upLevelExp = HeroEquipProxy.Inst.GetHeroEquipExpByLv(this.lvLv).exp;\n\n let attCount = 0;\n let defCount = 0;\n let hpCount = 0;\n if (this.eqList != undefined) {\n this.eqList = this.eqList.filter(item=>item.pos!==10);\n for (let i = 0; i < this.eqList.length; i++) {\n let data = this.eqList[i];\n if (data.atk != undefined) {\n attCount += data.atk;\n }\n if (data.def != undefined) {\n defCount += data.def;\n }\n if (data.hp != undefined) {\n hpCount += data.hp;\n }\n }\n }\n HeroProxy\n let Labellv = this.Label_lv.getComponent(Label);\n Labellv.string = GlobalFunction.ShowLV(this.lvLv);\n\n let ProgressBar_exp = this.ProgressBar_exp.getComponent(ProgressBar);\n ProgressBar_exp.progress =GlobalFunction.ConvertUndefinedToNumber(this.expLv) / upLevelExp;\n let ecpp = this.ProgressBar_exp.getChildByName(\"Label_exp\").getComponent(Label);\n ecpp.string = GlobalFunction.ConvertUndefinedToNumber(this.expLv) +\"/\"+upLevelExp;\n let Label_att = this.Label_att.getComponent(Label);\n Label_att.string = attCount + '';\n\n let Label_def = this.Label_def.getComponent(Label);\n Label_def.string = defCount + \"\";\n\n let Label_hp = this.Label_hp.getComponent(Label);\n Label_hp.string = hpCount + \"\";\n\n this.prefabdec = this.dec;\n this.Layout_dec.removeAllChildren();\n this.ciTiaoList.length=0\n if (this.eqList != undefined) {\n for (let i = 0; i < this.eqList.length; i++) {\n let data = this.eqList[i];\n if (data.ciTiaoList != undefined) {\n for (let t = 0; t < data.ciTiaoList.length; t++) {\n let citiao = data.ciTiaoList[t];\n let heroEquipBuff = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiao.id);\n // if(heroEquipBuff.effect==1){\n if(this.ciTiaoList.length==0){\n heroEquipBuff.value=citiao.v;\n this.ciTiaoList.push(heroEquipBuff)\n \n \n }else{\n let finddata = this.ciTiaoList.find(item=>item.effect==item.effect&&item.type==heroEquipBuff.type);\n if(finddata){\n heroEquipBuff.value=finddata.value+citiao.v;\n this.ciTiaoList = this.ciTiaoList.filter(item=>item.effect!==heroEquipBuff.effect ||item.type!==heroEquipBuff.type);\n this.ciTiaoList.push(heroEquipBuff);\n }else{\n \n heroEquipBuff.value=citiao.v;\n this.ciTiaoList.push(heroEquipBuff)\n }\n \n }\n // }\n }\n }\n }\n if (this.ciTiaoList.length == 0) return;\n this.ciTiaoList.sort((a,b)=>a.type-b.type);\n this.ciTiaoList.sort((a,b)=>a.effect-b.effect);\n for (let i=0;iitem.id==element.id);\n if(data){\n for(let i=0;i{\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name){\n case \"e_ui_box3uI_start\":\n Sprite_itemtx.active=false;\n break;\n }\n });\n }\n }\n }\n } else {\n this.prefabitem = this.item1;\n this.Layout_item1.removeAllChildren();\n\n for (let i = 0; i < count; ++i) {\n let itemNode = instantiate(this.prefabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item1;\n let reward = this.rewardData[i];\n let Button_item1 = itemNode.getChildByName(\"Button_item1\");\n let Sprite_itemkuang = Button_item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let Sprite_item = Button_item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n let Label_item = Button_item1.getChildByName(\"Label_item\").getComponent(Label);\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n if (itemdata) {\n let kuangstring = ItemProxy.Inst.GetItemKuangByColor(itemdata.color);\n let iconstring = itemdata.icon;\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, kuangstring);\n GlobalFunction.SetSpriteFrame(Sprite_item, iconstring);\n Label_item.string =GlobalFunction.ConvertNumberWithUnit(reward.num);\n\n \n let Sprite_itemtx = Button_item1.getChildByName(\"Sprite_itemtx1\");\n let e_ui_box3uI_start = Sprite_itemtx.getChildByName(\"e_ui_box3uI_start\");\n let Sprite_itemtxsk = e_ui_box3uI_start.getComponent(sp.Skeleton);\n Sprite_itemtxsk.setAnimation(0, \"e_ui_box3uI_start\", false);\n Sprite_itemtxsk.setCompleteListener((trackEntry)=>{\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name){\n case \"e_ui_box3uI_start\":\n Sprite_itemtx.active=false;\n break;\n }\n });\n }\n\n }\n }\n }\n\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Toggle } from \"cc\";\nimport { EventTouch } from \"cc\";\nimport { EventHandler } from \"cc\";\nimport { Label } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { RichText } from \"cc\";\nimport { Button } from \"cc\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { CallbacksInvoker } from \"../../../../../@types/packages/scene/@types/cce/utils/callbacks-invoker\";\nconst { ccclass, property } = _decorator;\n\n@ccclass\nexport default class Box4UI extends BasePanel {\n\n boxData: BoxData;\n ischeck: boolean;\n @property(Node) Label_1: Node = null;\n @property(Button) Button_sure: Button = null;\n @property(Button) Button_get: Button = null;\n @property(Button) Button_not: Button = null;\n @property(Toggle) Toggle_choose: Toggle = null;\n path: string = dataUser.Instance().unitUID;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.OnClickButtonClose();\n } else if (name == \"Button_sure\") {\n // this.OnClickButtonSure();\n } else if (name == \"Button_get\") {\n this.OnClickButtonGet();\n } else if (name == \"Button_not\") {\n this.OnClickButtonNot();\n }else if(name ==\"Toggle_choose\"){\n\n this.ischeck = !this.Toggle_choose.isChecked;\n // this.Toggle_choose.isChecked=this.Toggle_choose.isChecked;\n }\n }\n onLoad() {\n //this.toggle.node.on('toggle', this.callback, this);//無參數\n // const checkEventHandler = new EventHandler();\n // checkEventHandler.target = this.node; //这个 node 节点是你的事件处理代码组件所属的节点\n // checkEventHandler.component = this.node.name;//这个是脚本类名\n // checkEventHandler.handler = 'checkToggleEvent';\n // checkEventHandler.customEventData = 'foobar';//foobar等於參數\n // this.Toggle_choose.checkEvents.push(checkEventHandler);\n\n // let labeldec = this.Label_1.getComponent(RichText);\n // labeldec.string = this.boxData.content.replace(\"\\\\n\", \"\\n\");\n }\n\n\n // callback(toggle: ToggleComponent){\n // // 回调的参数是 toggle 组件,注意这种方式注册的事件,无法传递 customEventData\n // } \n public checkToggleEvent(toggle: Toggle, customData: string) {\n // 获取toggle的选中状态\n this.data.NotAvailable = toggle.isChecked\n // 在这里添加你的逻辑代码\n GlobalFunction.SaveBoxRecorded(toggle.isChecked, this.boxData.key + this.path);\n\n }\n\n public OnClickButtonGet() {\n this.close(true);\n GlobalFunction.SaveBoxRecorded(this.ischeck, this.boxData.key + this.path);\n this.boxData.actions[0]&& this.boxData.actions[0]();\n }\n public OnClickButtonNot() {\n // GlobalFunction.SaveBoxRecorded(false, this.boxData.key + this.path);\n this.close(true);\n }\n public OnClickButtonClose() {\n // GlobalFunction.SaveBoxRecorded(false, this.boxData.key + this.path);\n this.close(true);\n }\n onShow(data: any): void {\n if(data==null)return;\n\n this.boxData = data;\n this.path =this.node.name+dataUser.Instance().unitUID; \n if(GlobalFunction.IsGetBlooBoxRecorded(data.key+this.path)){\n this.boxData.actions[0]&& this.boxData.actions[0]();\n this.close(true);\n return;\n }\n let labeldec = this.Label_1.getComponent(RichText);\n labeldec.string = this.boxData.content;//.replace(\"\\\\n\", \"\\n\");\n //判断是否点击不弹出该box\n // let BlooBoxRecorded = GlobalFunction.BlooBoxRecorded( this.boxData.key+this.path);\n // if(BlooBoxRecorded){\n // this.boxData.actions[0];\n // return;\n // }\n this.Button_sure.node.active = this.boxData.buttonNames.length == 1;\n this.Button_get.node.active = this.boxData.buttonNames.length > 1;\n this.Button_not.node.active = this.boxData.buttonNames.length > 1;\n\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator,Node} from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('Box5UI')\nexport default class Box5UI extends BasePanel {\n\n boxData : BoxData;\n @property(Node) Label_dec: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\"){\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n this.boxData = data;\n let labeldec = this.Label_dec.getComponent(Label);\n labeldec.string = this.boxData.content;\n this.scheduleOnce(function() {\n this.close(true);\n }, 1.5);\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator,Node} from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('Box6UI')\nexport default class Box6UI extends BasePanel {\n\n boxData : BoxData;\n @property(Node) Label_title: Node = null;\n @property(Node) Label_1: Node = null;\n @property(Node) Label_2: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\"){\n this.close(true)\n }else if(name == \"Button_sure\"){\n this.close(true)\n if(this.data.actions){\n if(this.data.actions[0]){\n this.data.actions[0]();\n }\n }\n }\n }\n onShow(data: any): void {\n this.boxData = data;\n if(this.boxData.title){\n let labeltitle = this.Label_title.getComponent(Label);\n labeltitle.string =this.boxData.title;\n }\n this.Label_1.active = this.boxData.showLabelType==1;\n this.Label_2.active = this.boxData.showLabelType==2;\n let labeldec1 = this.Label_1.getComponent(RichText);\n labeldec1.string = this.boxData.content;\n let labeldec2 = this.Label_2.getComponent(RichText);\n labeldec2.string = this.boxData.content;\n\n //延遲3秒鐘關閉\n // this.scheduleOnce(function() {\n // // 这里的 this 指向 component\n // this.close(true);\n // }, 3);\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator,Node} from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('Box7UI')\nexport default class Box7UI extends BasePanel {\n\n boxData : BoxData;\n @property(Node) Label_title: Node = null;\n @property(Node) Label_1: Node = null;\n @property(Node) Label_2: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\"){\n this.close(true)\n }else if(name == \"Button_sure\"){\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n this.boxData = data;\n let labeltitle = this.Label_title.getComponent(Label);\n labeltitle.string =this.boxData.title;\n this.Label_1.active = this.boxData.showLabelType==1;\n this.Label_2.active = this.boxData.showLabelType==2;\n let labeldec1 = this.Label_1.getComponent(RichText);\n labeldec1.string = this.boxData.content;\n let labeldec2 = this.Label_2.getComponent(RichText);\n labeldec2.string = this.boxData.content;//.replace(\"\\\\n\", \"\\n\");;\n\n //延遲3秒鐘關閉\n // this.scheduleOnce(function() {\n // // 这里的 this 指向 component\n // this.close(true);\n // }, 3);\n }\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { ProgressBar } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { p_buff, p_ci_tiao, p_hero, p_hero_equip } from \"../../../proto/proto\";\nimport { HeroEquipBuff, HeroEquipProxy } from \"../proxy/HeroEquipProxy\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { Hero, HeroProxy } from \"../proxy/HeroProxy\";\nimport { Sprite } from \"cc\";\nimport { HeroExpProxy } from \"../proxy/HeroExpProxy\";\nimport { BuffAttType } from \"../proxy/CampPoxy\";\nimport { ScrollView } from \"cc\";\nimport { HeroAttributeProxy } from \"../proxy/HeroAttributeProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass\nexport default class Box8UI extends BasePanel {\n\n\n //获取服务器数据\n heroserverdata:p_hero;\n herodata :Hero;\n heroid: number;// 英雄id\n Boxaata :BoxData;\n p_buffs :Map=new Map();\n \n @property(Node) ScrollView_dec: Node = null;\n @property(Node) not: Node = null;\n @property(Node) Label_lv: Node = null;\n @property(Node) ProgressBar_exp: Node = null;\n @property(Node) Label_exp: Node = null;\n\n @property(Node) Label_att: Node = null;\n @property(Node) Label_def: Node = null;\n @property(Node) Label_hp: Node = null;\n @property(Node) Layout_dec: Node = null;\n @property(Node) dec: Node = null;\n prefabdec: Node = null;\n\n @property(Node) Layout_dec1: Node = null;\n @property(Node) dec1: Node = null;\n prefabdec1: Node = null;\n\n @property(Node) Sprite_herokuang: Node = null;\n @property(Node) Sprite_hero: Node = null;\n @property(Node) Sprite_heropinzhi: Node = null;\n @property(Node) Sprite_herotype: Node = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n }\n onShow(data: any): void {\n this.Boxaata=data;\n this.heroid =this.Boxaata.heroid;\n this.herodata = HeroProxy.Inst.GetHeroDataByID(this.heroid);\n if(!this.herodata)return;\n this.heroserverdata = HeroProxy.Inst.GetSeverHeroById(this.heroid);\n this.p_buffs.clear();\n if(this.heroserverdata){\n this.ScrollView_dec.active=true;\n this.SetBuffMaps();\n this.ShowHeroBuffList();\n }else{\n this.not.active=true;\n this.ProgressBar_exp.active=false;\n this.SetNotBuffMaps();\n this.ShowNotHeroDec();\n }\n\n }\n SetBuffMaps(){\n if(this.heroserverdata.buffAttr.baoJiRate!=undefined){\n this.p_buffs.set(BuffAttType.baojilv,this.heroserverdata.buffAttr.baoJiRate);\n }\n if(this.heroserverdata.buffAttr.baoJiHurtRate!=undefined){\n this.p_buffs.set(BuffAttType.baojishanghai,this.heroserverdata.buffAttr.baoJiHurtRate);\n }\n if(this.heroserverdata.buffAttr.deBaoJiRate!=undefined){\n this.p_buffs.set(BuffAttType.kangbao,this.heroserverdata.buffAttr.deBaoJiRate);\n }\n if(this.heroserverdata.buffAttr.atkRate!=undefined){\n this.p_buffs.set(BuffAttType.gongjijiacheng,this.heroserverdata.buffAttr.atkRate);\n }\n if(this.heroserverdata.buffAttr.defRate!=undefined){\n this.p_buffs.set(BuffAttType.fangyujiacheng,this.heroserverdata.buffAttr.defRate);\n }\n if(this.heroserverdata.buffAttr.hpRate!=undefined){\n this.p_buffs.set(BuffAttType.xueliangjiacheng,this.heroserverdata.buffAttr.hpRate);\n }\n if(this.heroserverdata.buffAttr.hurtRate!=undefined){\n this.p_buffs.set(BuffAttType.shanghaijiacheng,this.heroserverdata.buffAttr.hurtRate);\n }\n if(this.heroserverdata.buffAttr.deHurtRate!=undefined){\n this.p_buffs.set(BuffAttType.shanghaijianmian,this.heroserverdata.buffAttr.deHurtRate);\n }\n if(this.heroserverdata.buffAttr.deShanRate!=undefined){\n this.p_buffs.set(BuffAttType.shanbi,this.heroserverdata.buffAttr.deShanRate);\n }\n if(this.heroserverdata.buffAttr.mingRate!=undefined){\n this.p_buffs.set(BuffAttType.mingzhonglv,this.heroserverdata.buffAttr.mingRate);\n }\n if(this.heroserverdata.buffAttr.skillHurtRate!=undefined){\n this.p_buffs.set(BuffAttType.jinengjiacheng,this.heroserverdata.buffAttr.skillHurtRate);\n }\n if(this.heroserverdata.buffAttr.zhiRate!=undefined){\n this.p_buffs.set(BuffAttType.zhiliaohudun,this.heroserverdata.buffAttr.zhiRate);\n }\n if(this.heroserverdata.buffAttr.deZhiRate!=undefined){\n this.p_buffs.set(BuffAttType.jiangzhiliao,this.heroserverdata.buffAttr.deZhiRate);\n }\n }\n\n ShowHeroBuffList(){\n //英雄信息\n let currentHeroUpExp = HeroExpProxy.Inst.GetHeroExpByColor(this.heroserverdata.lv,this.herodata.color)\n this.Label_exp.getComponent(Label).string =GlobalFunction.ConvertUndefinedToNumber(this.heroserverdata.exp) +\"/\"+currentHeroUpExp;\n this.ProgressBar_exp.getComponent(ProgressBar).progress = GlobalFunction.ConvertUndefinedToNumber(this.heroserverdata.exp) / currentHeroUpExp;\n // this.Label_heroname.getComponent(Label).string = herodata.lan_nameId;\n this.Label_lv.getComponent(Label).string = GlobalFunction.ShowLV(this.heroserverdata.lv);\n let Sprite_pinzhikuang = this.Sprite_herokuang.getComponent(Sprite);\n let Sprite_heros = this.Sprite_hero.getComponent(Sprite);\n let Sprite_pinzhi = this.Sprite_heropinzhi.getComponent(Sprite);\n let Sprite_herotype = this.Sprite_herotype.getComponent(Sprite);\n let heropzdb = HeroProxy.Inst.GetHeroPzdbByColor(this.herodata.color);\n let heroTypeIcon = HeroProxy.Inst.GetHeroTypeIcon(this.herodata.type);\n GlobalFunction.SetSpriteFrame(Sprite_herotype,heroTypeIcon);\n GlobalFunction.SetSpriteFrame(Sprite_pinzhikuang, heropzdb);\n GlobalFunction.SetSpriteFrame(Sprite_heros, this.herodata.heroIcon);\n let heropz = HeroProxy.Inst.GetHeroDjByColor(this.herodata.color);\n GlobalFunction.SetSpriteFrame(Sprite_pinzhi, heropz);\n\n let Label_att = this.Label_att.getComponent(Label);\n let Label_hp = this.Label_hp.getComponent(Label);\n let Label_def = this.Label_def.getComponent(Label);\n\n Label_att.string =GlobalFunction.ConvertUndefinedToNumber(this.heroserverdata.atk).toString();\n Label_hp.string = GlobalFunction.ConvertUndefinedToNumber(this.heroserverdata.hp).toString();\n Label_def.string =GlobalFunction.ConvertUndefinedToNumber(this.heroserverdata.def).toString();\n this.prefabdec = this.dec;\n this.Layout_dec.removeAllChildren();\n if (this.p_buffs != undefined) {\n if (this.p_buffs.size== 0) return;\n // this.p_buffs.sort((a,b)=>a.key-b.type);\n // this.p_buffs.sort((a,b)=>a.effect-b.effect);\n for (const [key, value] of Array.from(this.p_buffs.entries())) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdec);\n if (itemNode) {\n itemNode.parent = this.Layout_dec;\n\n let labeldec = itemNode.getChildByName(\"Label_dec\").getComponent(Label);\n if (labeldec) \n {\n\n labeldec.string = GlobalFunction.GotBuffDecByFuffType(key, 1);\n }\n let Labeldecnum =itemNode.getChildByName(\"Label_decnum\").getComponent(Label);\n if (Labeldecnum) {\n Labeldecnum.string =GlobalFunction.ConvertExtremelyNumber(value);\n }\n }\n }\n }\n }\n SetNotBuffMaps(){\n\n let heroAttributedata = HeroAttributeProxy.Inst.GetHeroAttributeDataByID(this.heroid);\n if(!heroAttributedata)return;\n if(heroAttributedata.atk!=0){\n this.p_buffs.set(BuffAttType.gongjijiacheng,heroAttributedata.atk);\n }\n if(heroAttributedata.def!=0){\n this.p_buffs.set(BuffAttType.fangyujiacheng,heroAttributedata.def);\n }\n if(heroAttributedata.hp!=0){\n this.p_buffs.set(BuffAttType.xueliangjiacheng,heroAttributedata.hp);\n }\n if(heroAttributedata.shjia!=0){\n this.p_buffs.set(BuffAttType.shanghaijiacheng,heroAttributedata.shjia);\n }\n\n if(heroAttributedata.shjian!=0){\n this.p_buffs.set(BuffAttType.shanghaijianmian,heroAttributedata.shjian);\n }\n\n if(heroAttributedata.skill!=0){\n this.p_buffs.set(BuffAttType.jinengjiacheng,heroAttributedata.skill);\n }\n if(heroAttributedata.hdun!=0){\n this.p_buffs.set(BuffAttType.zhiliaohudun,heroAttributedata.hdun);\n }\n if(heroAttributedata.zliao!=0){\n this.p_buffs.set(BuffAttType.jiangzhiliao,heroAttributedata.zliao);\n }\n if(heroAttributedata.cs!=0){\n this.p_buffs.set(BuffAttType.baojilv,heroAttributedata.cs);\n }\n }\n ShowNotHeroDec(){\n this.Label_lv.getComponent(Label).string =\"--\";// GlobalFunction.ShowLV(1);\n let Sprite_pinzhikuang = this.Sprite_herokuang.getComponent(Sprite);\n let Sprite_heros = this.Sprite_hero.getComponent(Sprite);\n let Sprite_pinzhi = this.Sprite_heropinzhi.getComponent(Sprite);\n let Sprite_herotype = this.Sprite_herotype.getComponent(Sprite);\n let heropzdb = HeroProxy.Inst.GetHeroPzdbByColor(this.herodata.color);\n let heroTypeIcon = HeroProxy.Inst.GetHeroTypeIcon(this.herodata.type);\n GlobalFunction.SetSpriteFrame(Sprite_herotype,heroTypeIcon);\n GlobalFunction.SetSpriteFrame(Sprite_pinzhikuang, heropzdb);\n GlobalFunction.SetSpriteFrame(Sprite_heros, this.herodata.heroIcon);\n let heropz = HeroProxy.Inst.GetHeroDjByColor(this.herodata.color);\n GlobalFunction.SetSpriteFrame(Sprite_pinzhi, heropz);\n \n let Label_att = this.Label_att.getComponent(Label);\n let Label_hp = this.Label_hp.getComponent(Label);\n let Label_def = this.Label_def.getComponent(Label);\n \n Label_att.string =GlobalFunction.ConvertUndefinedToNumber(this.herodata.atk).toString();\n Label_hp.string = GlobalFunction.ConvertUndefinedToNumber(this.herodata.hp).toString();\n Label_def.string =GlobalFunction.ConvertUndefinedToNumber(this.herodata.def).toString();\n\n this.prefabdec1 = this.dec1;\n this.Layout_dec1.removeAllChildren();\n if (this.p_buffs != undefined) {\n if (this.p_buffs.size== 0) return;\n // this.p_buffs.sort((a,b)=>a.key-b.type);\n // this.p_buffs.sort((a,b)=>a.effect-b.effect);\n for (const [key, value] of Array.from(this.p_buffs.entries())) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdec1);\n if (itemNode) {\n itemNode.parent = this.Layout_dec1;\n \n let labeldec = itemNode.getChildByName(\"Label_dec1\").getComponent(Label);\n if (labeldec) \n {\n \n labeldec.string = GlobalFunction.GotBuffDecByFuffType(key, 1);\n }\n let Labeldecnum =itemNode.getChildByName(\"Label_decnum1\").getComponent(Label);\n if (Labeldecnum) {\n Labeldecnum.string =GlobalFunction.ConvertExtremelyNumber(value);\n }\n }\n }\n }\n\n\n }\n\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator,Node} from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('Box9UI')\nexport default class Box9UI extends BasePanel {\n\n boxData : BoxData;\n // @property(Node) Label_title: Node = null;\n @property(Node) Label_1: Node = null;\n @property(Node) Label_2: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\"){\n this.close(true)\n }else if(name == \"Button_sure\"){\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n this.boxData = data;\n // let labeltitle = this.Label_title.getComponent(Label);\n // labeltitle.string =this.boxData.title;\n this.Label_1.active = this.boxData.showLabelType==1;\n this.Label_2.active = this.boxData.showLabelType==2;\n let labeldec1 = this.Label_1.getComponent(RichText);\n labeldec1.string = this.boxData.content;\n let labeldec2 = this.Label_2.getComponent(RichText);\n labeldec2.string = this.boxData.content.replace(\"\\\\n\", \"\\n\");;\n\n //延遲3秒鐘關閉\n // this.scheduleOnce(function() {\n // // 这里的 this 指向 component\n // this.close(true);\n // }, 3);\n }\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { SkillEType } from \"../enum/Enum\";\r\nimport { SkillEffect } from \"../modules/game/proxy/SkillEffectProxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { BaseRole } from \"../role/Role\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('BuffItem')\r\nexport class BuffItem extends Component{\r\n private _target: BaseRole = null;\r\n public get target(): BaseRole {\r\n return this._target;\r\n }\r\n public set target(value: BaseRole) {\r\n this._target = value;\r\n }\r\n\r\n private _createTime: number = 0;\r\n public get createTime(): number {\r\n return this._createTime;\r\n }\r\n public set createTime(value: number) {\r\n this._createTime = value;\r\n }\r\n\r\n private _time: number = 0;\r\n public get time(): number {\r\n return this._time;\r\n }\r\n public set time(value: number) {\r\n this._time = value;\r\n }\r\n\r\n private _type: SkillEType;\r\n public get type(): SkillEType {\r\n return this._type;\r\n }\r\n public set type(value: SkillEType) {\r\n this._type = value;\r\n }\r\n\r\n private _value: number = 0;\r\n public get value(): number {\r\n return this._value;\r\n }\r\n public set value(value: number) {\r\n this._value = value;\r\n }\r\n \r\n\r\n constructor(target:BaseRole , temp:SkillEffect){\r\n super();\r\n this.target = target;\r\n this.time = Number(temp.round);\r\n this.value = temp.value;\r\n this.type = temp.eType;\r\n this.createTime = new Date().getTime();\r\n }\r\n\r\n}","import { sp } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { BuffItem } from \"./BuffItem\";\r\nimport { SkillEType } from \"../enum/Enum\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('BuffItemViewComp')\r\nexport class BuffItemViewComp extends Component{\r\n\r\n @property(sp.Skeleton)\r\n buffSpine:sp.Skeleton = null;\r\n\r\n private _buff: BuffItem;\r\n public get buff(): BuffItem {\r\n return this._buff;\r\n }\r\n public set buff(value: BuffItem) {\r\n this._buff = value;\r\n }\r\n\r\n onLoad(){\r\n\r\n }\r\n\r\n init(buff:BuffItem){\r\n this.buff = buff;\r\n let buffStr:string = \"\";\r\n if(this.buff.type == SkillEType.XuanYun){\r\n buffStr = \"e_c_buff_xuanyun\";\r\n }else if(this.buff.type == SkillEType.BingDong){\r\n buffStr = \"e_c_buff_bingdong\";\r\n }else if(this.buff.type == SkillEType.BaoShangJia){\r\n buffStr = \"e_c_buff_baoshang\";\r\n }else if(this.buff.type == SkillEType.BaoJiJia){\r\n buffStr = \"e_c_buff_baojilv\";\r\n }else if(this.buff.type == SkillEType.GongSuJia){\r\n buffStr = \"e_c_buff_jiansu\";\r\n }else if(this.buff.type == SkillEType.GongSuJian){\r\n buffStr = \"e_c_buff_jiansu\";\r\n }\r\n let path: string = \"spineRes/effect/\"+buffStr+\"/\" + buffStr;\r\n let sktd = ResHelper.get(path, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.buffSpine;\r\n ms.skeletonData = sktd;\r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.buffSpine;\r\n ms.skeletonData = sp;\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n\r\n desTory(){\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n this.destroy();\r\n }\r\n\r\n}","/**\n * Buff config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { AttType } from '../../../enum/Enum';\n@res_auto_bind()\nexport class BuffPoxy {\n private static _inst: BuffPoxy;\n public static get Inst(): BuffPoxy {\n if (BuffPoxy._inst == null) {\n BuffPoxy._inst = new BuffPoxy();\n }\n return BuffPoxy._inst;\n }\n @res_assign(\"Buff\")\n public BuffMaps: Map = new Map();\n public InitBuffConfig() {\n if (this.BuffMaps.size > 0) {\n this.BuffMaps.clear();\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Buff\")) {\n let buffitem = ConfigManager.GetInstance().getValue(\"Buff\")[key];\n if (buffitem) {\n for (var keys in buffitem) {\n buffitem[keys] = GlobalFunction.Inst.ParamDef(keys, buffitem[keys]);\n }\n this.BuffMaps.set(buffitem.buff_id, buffitem);\n }\n\n }\n }\n public getBuffById(buffid: number) {\n if (buffid == undefined) return undefined;\n return this.BuffMaps.get(buffid);\n }\n\n public ShowBuffDec(buffid: number) {\n\n let buff = this.getBuffById(buffid);\n if (!buff) return undefined;\n let buffdec: string = buff.lan_name;\n if (buff.reduction == 0) {\n buffdec += \"+\";\n } else {\n buffdec += \"-\";\n }\n\n if (buff.percent == 0) {\n buffdec += GlobalFunction.ConvertExtremelyNumber(buff.value);\n } else {\n buffdec += buff.value;\n }\n\n return buffdec;\n }\n}\nexport class Buff {\n /** buff的id */\n buff_id: number;\n /** buff名称 */\n lan_name: string;\n /** 图标*/\n icon: string;\n /** 加成类型 */\n buff_type: AttType;\n /** buff增加的类型 0:百分比 1:数值*/\n percent: number;\n /** 数值 */\n value: number;\n /** 加或减 0+ 1- */\n reduction: number;\n}","/**\n * Build config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class BuildPoxy {\n private static _inst: BuildPoxy;\n public static get Inst(): BuildPoxy {\n if (BuildPoxy._inst == null) {\n BuildPoxy._inst = new BuildPoxy();\n }\n return BuildPoxy._inst;\n }\n @res_assign(\"Build\")\n public BuildList: Build[]; \n public InitBuildConfig(){\n if(!this.BuildList){\n this.BuildList =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"Building\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"Building\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.BuildList.push(achieveitem);\n }\n\n }\n }\n public GetBuildById(buildId:number){\n if (!this.BuildList) {\n this.InitBuildConfig();\n }\n return this.BuildList.find(element => element.buildId == buildId);\n }\n}\n\nexport class Build {\n /** 建筑ID */\n buildId: number;\n /** 建筑名称 */\n lan_build: string;\n /** 建筑类型 0:村庄 1 武器 2 铠甲 3 帽子*/\n addParts: BuildType;\n /** 解锁类型 0 默认 1地图 2金币 */\n lockType: number;\n /** 解锁数量 */\n lockNum: number;\n /** 资源名字 */\n resource: string;\n}\n\nexport enum BuildType { //建築類型\n cunzhuang = 0, //村庄\n wuqi = 1, //武器\n kaijia = 2, //铠甲\n maozi = 3, //帽子\n guaji = 4,//挂机\n shiyanshi =5,//实验室\n kejiguan =6//科技馆\n}","import { _decorator } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Logger } from \"../../../core/common/log/Logger\";\r\nimport ResHelper from \"../../core/manager/ResHelper\";\r\nimport { Build, BuildPoxy } from \"../../modules/game/proxy/BuildPoxy\";\r\nimport { sp } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport { BuildHeroType, BuildPart } from \"./BuildView\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { tween } from \"cc\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n\r\n@ccclass('BuildTopView')\r\nexport class BuildTopView extends Component{\r\n @property(Node)\r\n skeleton :Node = null;\r\n \r\n @property(ProgressBar)\r\n ProgressBar_time : ProgressBar = null;\r\n\r\n private _buildId: number = 0;\r\n public get buildId(): number {\r\n return this._buildId;\r\n }\r\n public set buildId(value: number) {\r\n this._buildId = value;\r\n }\r\n private _buildCfg: Build;\r\n public get buildCfg(): Build {\r\n return this._buildCfg;\r\n }\r\n public set buildCfg(value: Build) {\r\n this._buildCfg = value;\r\n }\r\n private _buildPart: BuildPart;\r\n public get buildPart(): BuildPart {\r\n return this._buildPart;\r\n }\r\n public set buildPart(value: BuildPart) {\r\n this._buildPart = value;\r\n }\r\n\r\n public spine!: sp.Skeleton;\r\n private _posV3: Vec3;\r\n public get posV3(): Vec3 {\r\n return this._posV3;\r\n }\r\n public set posV3(value: Vec3) {\r\n this._posV3 = value;\r\n }\r\n onLoad(){\r\n }\r\n \r\n init(buildId:number){\r\n this.buildId = buildId;\r\n this.buildCfg = BuildPoxy.Inst.GetBuildById(this.buildId);\r\n this.buildPart = Number(this.buildCfg.addParts);\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.showAllBuild();\r\n // this.changepos();\r\n }\r\n \r\n private changepos(){\r\n let pos:Vec3 = this.skeleton.position;\r\n switch(this.buildPart){\r\n case BuildPart.WuQi:\r\n this.skeleton.position = new Vec3(pos.x + 25 , pos.y - 0);\r\n break;\r\n case BuildPart.KaiJia:\r\n this.skeleton.position = new Vec3(pos.x + 30 , pos.y - 20);\r\n break;\r\n case BuildPart.MaoZi:\r\n this.skeleton.position = new Vec3(pos.x + 30 , pos.y - 30);\r\n break;\r\n }\r\n }\r\n setPos(v3:Vec3){\r\n this.posV3 = v3;\r\n }\r\n private showAllBuild(){\r\n if(this.buildCfg.addParts == Number(BuildPart.CunZhuang)){\r\n }else{\r\n this.showBuild();\r\n }\r\n }\r\n private showBuild(){\r\n this.showSp();\r\n }\r\n showPro(cdTime:number){\r\n this.ProgressBar_time.node.active = true;\r\n tween(this.ProgressBar_time).to(cdTime , {progress : 1}).call(()=>{\r\n if(this.ProgressBar_time){\r\n this.ProgressBar_time.progress = 0; \r\n this.ProgressBar_time.node.active = false;\r\n }\r\n }).start()\r\n }\r\n\r\n private showSp(){\r\n if(!this.buildCfg.resource){\r\n return;\r\n }\r\n if(this.buildPart == BuildPart.KaiJia || this.buildPart == BuildPart.MaoZi || this.buildPart == BuildPart.WuQi){\r\n let path: string = \"spineRes/scene/\"+this.buildCfg.resource + \"2\" +\"/\" + this.buildCfg.resource + \"2\";\r\n let sktd = ResHelper.get(path, sp.SkeletonData , \"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n setTimeout(() => {\r\n this.changeSkin(this.buildCfg.resource + this.getNameById())\r\n this.showWait();\r\n }, 1000);\r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n setTimeout(() => {\r\n this.changeSkin(this.buildCfg.resource + this.getNameById())\r\n this.showWait();\r\n }, 1000);\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n }\r\n \r\n changeSkin(nameStr:string = \"c_s_goblin_archer\"){\r\n if(!this.buildCfg.resource){\r\n return;\r\n }\r\n this.skeleton.getComponent(sp.Skeleton).setSkin(nameStr);\r\n }\r\n\r\n getNameById():string{\r\n if(!this.buildCfg.resource){\r\n return;\r\n }\r\n if(this.buildId >= BuildHeroType.ZhanShiWuqi && this.buildId <= BuildHeroType.ZhanShiMaoZi){\r\n return \"_warrior\"\r\n }\r\n if(this.buildId >= BuildHeroType.FaShiWuQi && this.buildId <= BuildHeroType.FaShiMaoZi){\r\n return \"_wizard\"\r\n }\r\n if(this.buildId >= BuildHeroType.CiKeWuQi && this.buildId <= BuildHeroType.CiKeMaoZi){\r\n return \"_rogue\"\r\n }\r\n if(this.buildId >= BuildHeroType.PaoShouWuQi && this.buildId <= BuildHeroType.PaoShouMaoZi){\r\n return \"_archer\"\r\n }\r\n }\r\n\r\n onClick(){\r\n Logger.logView(\"top点击建筑\" + this.buildId);\r\n }\r\n showWait(){\r\n if(this.buildPart == BuildPart.KaiJia || this.buildPart == BuildPart.MaoZi || this.buildPart == BuildPart.WuQi){\r\n if(!this.buildCfg.resource){\r\n return;\r\n }\r\n this.spine.setAnimation(0, \"s_factory_wait\", true);\r\n }\r\n }\r\n showRun(cdTime){\r\n if(this.buildPart == BuildPart.KaiJia || this.buildPart == BuildPart.MaoZi || this.buildPart == BuildPart.WuQi){\r\n if(!this.buildCfg.resource){\r\n return;\r\n }\r\n this.showPro(cdTime)\r\n this.spine.setAnimation(0, \"s_factory_run\", false);\r\n }\r\n }\r\n update(){\r\n }\r\n\r\n desTroy(){\r\n super.destroy();\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Logger } from \"../../../core/common/log/Logger\";\r\nimport ResHelper from \"../../core/manager/ResHelper\";\r\nimport { Build, BuildPoxy, BuildType } from \"../../modules/game/proxy/BuildPoxy\";\r\nimport { Label } from \"cc\";\r\nimport { sp } from \"cc\";\r\nimport { Prefab } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport { CunzhuangView } from \"./CunzhuangView\";\r\nimport { instantiate } from \"cc\";\r\nimport { GebolInAiEnum, GebolInAttTypeEnum, GebolInTypeEnum, GebolinView } from \"../../role/GebolinView\";\r\nimport { CDQuanView } from \"./CDQuanView\";\r\nimport GameEntry from \"../../modules/GameEntry\";\r\nimport { GebolinModle } from \"../../role/GebolinModle\";\r\nimport WindowManager from \"../../core/manager/WindowManager\";\r\nimport GameConst from \"../../core/common/GameConst\";\r\nimport Utils from \"../../core/utils/Utils\";\r\nimport { CampPoxy, VillageAttrType } from \"../../modules/game/proxy/CampPoxy\";\r\nimport { p_build } from \"../../proto/proto\";\r\nimport { VillagePoxy } from \"../../modules/game/proxy/VillagePoxy\";\r\nimport { find } from \"cc\";\r\nimport { GlobalFunction } from \"../../modules/game/common/GlobalFunction\";\r\nimport { GameModleComp } from \"../../game/GameModle\";\r\nimport { dataUser } from \"../../modules/gameData/dataUser\";\r\nimport { Color } from \"cc\";\r\nimport { PassPoxy } from \"../../modules/game/proxy/PassPoxy\";\r\nimport { Timer } from \"../../core/utils/Timer\";\r\nimport { time } from \"console\";\r\nimport { macro } from \"cc\";\r\nimport { Input } from \"cc\";\r\nimport { Button } from \"cc\";\r\nimport { EventManager, EventType } from \"../../core/manager/EventManager\";\r\nimport { OffineProxy } from \"../../modules/game/proxy/OffineProxy\";\r\nimport { GuideManager } from \"../../modules/game/guilde/GuideManager\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n\r\n@ccclass('BuildView')\r\nexport class BuildView extends Component{\r\n @property(Prefab)\r\n CDitem:Prefab = null;\r\n @property(Node)\r\n skeleton :Node = null;\r\n @property(Label)\r\n nameLabel : Label = null;\r\n @property(Node)\r\n cunzhuangNode : Node = null;\r\n @property(Node)\r\n cunzhuangTimeNode : Node = null;\r\n @property(Prefab)\r\n cunzhuang:Prefab = null;\r\n @property(Node)\r\n lockGroup : Node = null;\r\n @property(Node)\r\n not : Node = null;\r\n @property(Node)\r\n yes : Node = null;\r\n @property(Node)\r\n lockglodGroup : Node = null;\r\n @property(Button)\r\n clickBtn : Button = null;\r\n @property(Node)\r\n geRewardNode:Node = null;\r\n @property(sp.Skeleton)\r\n rewardSpine:sp.Skeleton = null;;\r\n \r\n private starTime:number = 0;\r\n\r\n cdQuan : CDQuanView = null;\r\n\r\n private _cdTime: number = 3;\r\n public get cdTime(): number {\r\n return this._cdTime;\r\n }\r\n public set cdTime(value: number) {\r\n this._cdTime = value;\r\n }\r\n\r\n private _waitGebolin: Array = [];\r\n public get waitGebolin(): Array {\r\n return this._waitGebolin;\r\n }\r\n public addGebolinToWait(gebolin:GebolinView){\r\n this.waitGebolin.push(gebolin);\r\n this.waitNum++;\r\n }\r\n public getGebolinIndex(gebolin:GebolinView):number{\r\n return this.waitGebolin.indexOf(gebolin);\r\n }\r\n public removeGetBolin(){\r\n this.waitGebolin.splice(0,1);\r\n this.waitNum--;\r\n }\r\n\r\n private _waitNum: number = 0;\r\n public get waitNum(): number {\r\n return this._waitNum;\r\n }\r\n public set waitNum(value: number) {\r\n this._waitNum = value;\r\n }\r\n\r\n private _buildId: number = 0;\r\n public get buildId(): number {\r\n return this._buildId;\r\n }\r\n public set buildId(value: number) {\r\n this._buildId = value;\r\n }\r\n private _buildCfg: Build;\r\n public get buildCfg(): Build {\r\n return this._buildCfg;\r\n }\r\n public set buildCfg(value: Build) {\r\n this._buildCfg = value;\r\n }\r\n\r\n private _buildPart: BuildPart;\r\n public get buildPart(): BuildPart {\r\n return this._buildPart;\r\n }\r\n public set buildPart(value: BuildPart) {\r\n this._buildPart = value;\r\n }\r\n\r\n private _isOpen: boolean = false;\r\n public get isOpen(): boolean {\r\n return this._isOpen;\r\n }\r\n public set isOpen(value: boolean) {\r\n this._isOpen = value;\r\n }\r\n\r\n private _buildAiType: BuildAiTypeEnum = BuildAiTypeEnum.Wait;\r\n public get buildAiType(): BuildAiTypeEnum {\r\n return this._buildAiType;\r\n }\r\n public set buildAiType(value: BuildAiTypeEnum) {\r\n this._buildAiType = value;\r\n }\r\n\r\n public spine!: sp.Skeleton;\r\n\r\n private cunzhuangPoint:Array = [];\r\n private cunzhuangArr:Array = [];\r\n private cunzhuangTimeArr:Array = [];\r\n private _posV3: Vec3;\r\n public get posV3(): Vec3 {\r\n return this._posV3;\r\n }\r\n public set posV3(value: Vec3) {\r\n this._posV3 = value;\r\n }\r\n\r\n private canZhuangPei:boolean = false;\r\n\r\n\r\n private _debugId: string = \"\";\r\n public get debugId(): string {\r\n return this._debugId;\r\n }\r\n public set debugId(value: string) {\r\n this._debugId = value;\r\n }\r\n private touchTime:number;\r\n private nowGebolin:GebolinView = null;\r\n onLoad(){\r\n this.addEvent();\r\n }\r\n addEvent(){\r\n EventManager.Inst.on(EventType.ON_CAN_GET_REWAR_BUILD ,this, this.onCanGetReward);\r\n EventManager.Inst.on(EventType.ON_GET_REWAR_BUILD_END ,this, this.onGetEndReward);\r\n }\r\n private showReward(){\r\n if(OffineProxy.Inst.rewardList.length){\r\n this.onCanGetReward(1016);\r\n }\r\n }\r\n\r\n onCanGetReward(event:number){\r\n if(event == this.buildId){\r\n if(this.geRewardNode){\r\n this.geRewardNode.active = true;\r\n }\r\n }\r\n }\r\n onGetEndReward(event:number){\r\n if(event == this.buildId){\r\n if(this.geRewardNode){\r\n this.geRewardNode.active = false;\r\n }\r\n }\r\n }\r\n \r\n init(buildId:number , isOpen:boolean = false){\r\n this.buildId = Number(buildId);\r\n this.isOpen = isOpen;\r\n this.debugId = Utils.AddBuildId();\r\n Logger.logView(\"pass:\" + GameModleComp.getInstance().selectGuankaId , \"--->buildId:\"+this.buildId)\r\n this.buildCfg = BuildPoxy.Inst.GetBuildById(this.buildId);\r\n this.buildPart = Number(this.buildCfg.addParts);\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n\r\n\r\n this.cdQuan = instantiate(this.CDitem).getComponent(CDQuanView);\r\n let v3:Vec3 = this.node.position;\r\n this.cdQuan.node.position = new Vec3(v3.x + 28 , v3.y + 133 , v3.z);\r\n GameEntry.Inst.mapView.nowScene.cdLayer.addChild(this.cdQuan.node);\r\n this.cdQuan.init(this.onCd,this);\r\n this.cdQuan.cdTime = 0;\r\n\r\n \r\n this.showAllBuild();\r\n Logger.logView(\"已建造建筑\" + this.debugId);\r\n\r\n\r\n this.clickBtn.node.on(Node.EventType.TOUCH_START,this.onTouchStar,this);\r\n this.clickBtn.node.on(Node.EventType.TOUCH_END,this.onTouchEnd,this);\r\n\r\n this.skeleton.getComponent(sp.Skeleton).setEventListener((track , event:sp.spine.Event)=>{\r\n // Logger.logView(\"event name ==>\" + event.data.name);\r\n if(event.data.name == \"event_goblin_attack\"){\r\n let gebolin:GebolinView = this.nowGebolin;\r\n if(gebolin){\r\n if(gebolin.gebolinType){\r\n if(gebolin.allZhuangPei){\r\n gebolin.changeSkin(GebolInAiEnum.MaoZi);\r\n }else{\r\n gebolin.changeSkin(GebolInAiEnum.KaiJia);\r\n }\r\n }else{\r\n gebolin.gebolinType = this.getRoleTypeByBuild(gebolin);\r\n gebolin.gebolinAttType = this.getRoleAttTypeByBuild(gebolin.gebolinType);\r\n gebolin.changeSkin(GebolInAiEnum.WuQi);\r\n }\r\n gebolin.equipNum++;\r\n }\r\n }\r\n })\r\n if(this.buildId == 1016){\r\n this.showReward();\r\n }\r\n }\r\n private onTouchStar(){\r\n this.touchTime = new Date().getTime();\r\n Logger.logView(\"点击建筑TouchStar:\" + this.buildId);\r\n }\r\n private onTouchEnd(){\r\n Logger.logView(\"点击建筑onTouchEnd:\" + this.buildId);\r\n let nowTime:number = new Date().getTime();\r\n Logger.logView(\"差值:\"+(nowTime - this.touchTime))\r\n if(nowTime - this.touchTime <= 200){\r\n if(this.isOpen){\r\n Logger.logView(\"点击建筑\" + this.debugId);\r\n let builddata = BuildPoxy.Inst.GetBuildById(Number(this.buildId));\r\n if(builddata){\r\n if(builddata.addParts<4){\r\n WindowManager.Instance().open(GameConst.winPath.ManageUI, Number(this.buildId), true);\r\n if(GuideManager.getInstance().isInGuide){\r\n if(this.buildId == 1001){\r\n //新手引导log\r\n GuideManager.getInstance().waitSmallId = 1007;\r\n EventManager.Inst.event(EventType.guideEvent_1006 , 1006);\r\n }\r\n if(this.buildId == 1004){\r\n //新手引导log\r\n if(GuideManager.getInstance().nowGuideId == 10005){\r\n GuideManager.getInstance().waitSmallId = 10006;\r\n EventManager.Inst.event(EventType.guideEvent_10005 , 10005);\r\n }else{\r\n GuideManager.getInstance().waitSmallId = 1011;\r\n EventManager.Inst.event(EventType.guideEvent_1010 , 1010);\r\n }\r\n }\r\n if(this.buildId == 1007){\r\n //新手引导log\r\n GuideManager.getInstance().waitSmallId = 3003;\r\n EventManager.Inst.event(EventType.guideEvent_3002 , 3002);\r\n }\r\n }\r\n }else {\r\n if(builddata.addParts==BuildType.guaji){\r\n WindowManager.Instance().open(GameConst.winPath.OfflineUI, true);\r\n }\r\n }\r\n }\r\n }else{\r\n if(this.buildPart == Number(BuildPart.CunZhuang)){\r\n CampPoxy.Inst.SendC1301(this.buildId);\r\n }\r\n }\r\n }\r\n }\r\n setPos(v3:Vec3){\r\n this.posV3 = v3;\r\n }\r\n private showAllBuild(){\r\n this.nameLabel.string = this.buildCfg.lan_build;\r\n if(this.buildCfg.addParts == Number(BuildPart.CunZhuang)){\r\n this.cdQuan.node.active = false;\r\n this.showCunZhuang();\r\n }else{\r\n this.cdTime = 3.5;\r\n this.showBuild();\r\n }\r\n }\r\n private showCunZhuang(){\r\n if(this.isOpen){\r\n let build:p_build = CampPoxy.Inst.buildMaps.get(Number(this.buildId))\r\n if(build){\r\n let haveNum:number = 9;\r\n this.cunzhuangPoint = [\r\n new Vec3(-13.5,80,0) , new Vec3(128.5,80,0) ,new Vec3(276.5,80,0) , \r\n new Vec3(-111.5 , 0 ,0) , new Vec3(22.5,0,0) ,new Vec3(160 , 0,0) , \r\n new Vec3(-208.5,-92,0) , new Vec3(-54.5,-92,0) ,new Vec3(83,-92,0) , \r\n ]\r\n for(let i = 0 ; i < this.cunzhuangArr.length ; i++){\r\n this.cunzhuangArr[i].desTroy();\r\n }\r\n for(let i = 0 ; i < this.cunzhuangTimeArr.length ; i++){\r\n this.cunzhuangTimeArr[i].desTroy();\r\n }\r\n this.cunzhuangNode.removeAllChildren();\r\n this.cunzhuangTimeNode.removeAllChildren();\r\n\r\n let interval = 0.3;\r\n let repeat = haveNum-1; \r\n let delay = 0; \r\n this.createIndex = 0;\r\n this.schedule(this.onScheduleEvent, interval, repeat, delay);\r\n }\r\n }else{\r\n this.showLock();\r\n }\r\n }\r\n private createIndex:number = 0;\r\n private onScheduleEvent (){\r\n let cdItem:CDQuanView = instantiate(this.CDitem).getComponent(CDQuanView);\r\n let pos:Vec3 = this.cunzhuangPoint[this.createIndex];\r\n let v3:Vec3 = this.node.position;\r\n cdItem.node.position = new Vec3(v3.x + pos.x , v3.y + pos.y + 172.5 , pos.z);\r\n cdItem.node.active = false;\r\n GameEntry.Inst.mapView.nowScene.cdLayer.addChild(cdItem.node);\r\n let build:p_build = CampPoxy.Inst.buildMaps.get(Number(this.buildId))\r\n let cun:CunzhuangView = instantiate(this.cunzhuang).getComponent(CunzhuangView);\r\n cun.node.position = this.cunzhuangPoint[this.createIndex];\r\n let time:number = VillagePoxy.Inst.GetVillageTimeById(this.buildId , build.lv2);\r\n cun.cdQuan = cdItem;\r\n cun.init(this.posV3 , time , this.buildId , this.createIndex==0 , this);\r\n cun.isOpen = this.createIndex < build.lv1;\r\n this.cunzhuangNode.addChild(cun.node);\r\n this.cunzhuangArr.push(cun);\r\n this.createIndex++;\r\n }\r\n changeCunzhuang(){\r\n let buildData:p_build = CampPoxy.Inst.buildMaps.get(Number(this.buildId))\r\n for(let i = 0 ; i < this.cunzhuangArr.length ; i++){\r\n this.cunzhuangArr[i].cdTime = VillagePoxy.Inst.GetVillageTimeById(this.buildId , buildData.lv2);\r\n }\r\n\r\n let openIndex:number = this.getAllOpen();\r\n if(openIndex < buildData.lv1){\r\n let cunzhuang:CunzhuangView = this.cunzhuangArr[openIndex];\r\n cunzhuang.isOpen = true;\r\n }\r\n }\r\n private getAllOpen():number{\r\n let index:number = 0\r\n for(let i = 0 ; i < this.cunzhuangArr.length ; i++){\r\n if(this.cunzhuangArr[i].isOpen){\r\n index++;\r\n }\r\n }\r\n return index;\r\n }\r\n private showBuild(){\r\n if(this.isOpen){\r\n this.showSp();\r\n }else{\r\n this.showLock();\r\n }\r\n }\r\n private showLock(){\r\n switch(this.buildCfg.lockType){\r\n case 1:\r\n this.lockGroup.active = true;\r\n this.yes.active = true;\r\n this.not.active = false;\r\n this.lockglodGroup.active = false;\r\n find(\"Label_name\",this.yes).getComponent(Label).string = this.buildCfg.lan_build;\r\n find(\"Label_maps\",this.yes).getComponent(Label).string = PassPoxy.Inst.GetUnLockLevelDec(this.buildId) + \"\";\r\n break;\r\n\r\n case 2:\r\n this.lockglodGroup.active = true;\r\n this.lockGroup.active = false;\r\n let need:number = BuildPoxy.Inst.GetBuildById(this.buildId).lockNum;\r\n let have :number = dataUser.Instance().gold;\r\n let numLabel:Label = find(\"Label_money\",this.lockglodGroup).getComponent(Label);\r\n let color:Color = need > have ? new Color(255,63,63,255) : new Color(76,255,110,255)\r\n numLabel.color = color;\r\n numLabel.string = need + \"\";\r\n break;\r\n\r\n case 3:\r\n this.lockGroup.active = true;\r\n this.not.active = true;\r\n this.yes.active = false;\r\n this.lockglodGroup.active = false;\r\n break;\r\n }\r\n }\r\n\r\n private showSp(){\r\n Logger.logView(\"this.buildCfg=\"+this.buildCfg.buildId)\r\n let path: string = \"spineRes/scene/\"+this.buildCfg.resource+\"/\" + this.buildCfg.resource;\r\n let sktd = ResHelper.get(path, sp.SkeletonData , \"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n setTimeout(() => {\r\n this.changeSkin(this.buildCfg.resource + this.getNameById())\r\n this.showWait();\r\n }, 1000);\r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n setTimeout(() => {\r\n this.changeSkin(this.buildCfg.resource + this.getNameById())\r\n this.showWait();\r\n }, 1000);\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n \r\n changeSkin(nameStr:string = \"c_s_goblin_archer\"){\r\n this.skeleton.getComponent(sp.Skeleton).setSkin(nameStr);\r\n }\r\n\r\n getNameById():string{\r\n if(this.buildId >= BuildHeroType.ZhanShiWuqi && this.buildId <= BuildHeroType.ZhanShiMaoZi){\r\n return \"_warrior\"\r\n }\r\n if(this.buildId >= BuildHeroType.FaShiWuQi && this.buildId <= BuildHeroType.FaShiMaoZi){\r\n return \"_wizard\"\r\n }\r\n if(this.buildId >= BuildHeroType.CiKeWuQi && this.buildId <= BuildHeroType.CiKeMaoZi){\r\n return \"_rogue\"\r\n }\r\n if(this.buildId >= BuildHeroType.PaoShouWuQi && this.buildId <= BuildHeroType.PaoShouMaoZi){\r\n return \"_archer\"\r\n }\r\n }\r\n\r\n onClick(){\r\n // if(this.isOpen){\r\n // Logger.logView(\"点击建筑\" + this.debugId);\r\n // WindowManager.Instance().open(GameConst.winPath.ManageUI, Number(this.buildId), true);\r\n // console.log(\"buildMap:\" + GameEntry.Inst.mapView.buildMap);\r\n // }else{\r\n // if(this.buildPart == Number(BuildPart.CunZhuang)){\r\n // CampPoxy.Inst.SendC1301(this.buildId);\r\n // }\r\n // }\r\n }\r\n showWait(){\r\n // if(this.spine && this.spine.findAnimation(\"s_factory_wait\")){\r\n // this.spine.setAnimation(0 , \"s_factory_wait\" , true);\r\n // }\r\n // if(this.buildPart == BuildPart.KaiJia || this.buildPart == BuildPart.MaoZi || this.buildPart == BuildPart.WuQi){\r\n if(GameEntry.Inst.mapView.buildMap.get(this.buildId + 10000)){\r\n GameEntry.Inst.mapView.buildMap.get(this.buildId + 10000).showWait();\r\n }else{\r\n if(this.spine && this.spine.findAnimation(\"s_factory_wait\")){\r\n this.spine.setAnimation(0 , \"s_factory_wait\" , true);\r\n }\r\n }\r\n // }\r\n }\r\n showRun(){\r\n if(this.buildPart == BuildPart.KaiJia || this.buildPart == BuildPart.MaoZi || this.buildPart == BuildPart.WuQi){\r\n this.spine.setAnimation(0, \"s_factory_run\", false);\r\n GameEntry.Inst.mapView.buildMap.get(this.buildId + 10000).showRun(this.cdTime);\r\n }\r\n }\r\n private showAddwuqi(){\r\n let gebolin:GebolinView = this.waitGebolin[0];\r\n if(gebolin){\r\n let modle:GebolinModle = gebolin.modle as GebolinModle;\r\n this.canZhuangPei = false;\r\n this.showRun();\r\n this.removeGetBolin();\r\n this.upToWait();\r\n this.nowGebolin = gebolin;\r\n this.skeleton.getComponent(sp.Skeleton).setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case \"s_factory_run\":\r\n this.showWait();\r\n this.cdQuan.showAction();\r\n this.starTime = new Date().getTime();\r\n if(gebolin.equipNum==1){\r\n this.buildAiType = BuildAiTypeEnum.Wait;\r\n gebolin.AiType = GebolInAiEnum.KaiJia;\r\n // gebolin.changeSkin(GebolInAiEnum.WuQi);\r\n }else{\r\n if(gebolin.allZhuangPei){\r\n this.buildAiType = BuildAiTypeEnum.Wait;\r\n gebolin.AiType = GebolInAiEnum.LiveJianzhu;\r\n // gebolin.changeSkin(GebolInAiEnum.MaoZi);\r\n }else{\r\n this.buildAiType = BuildAiTypeEnum.Wait;\r\n gebolin.AiType = GebolInAiEnum.MaoZi;\r\n gebolin.allZhuangPei = true;\r\n // gebolin.changeSkin(GebolInAiEnum.KaiJia);\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n private upToWait(){\r\n for(let i = 0 ; i < this.waitGebolin.length ; i++){\r\n if(this.waitGebolin[i].AiType == GebolInAiEnum.WaitUp){\r\n this.waitGebolin[i].AiType = GebolInAiEnum.Wait\r\n }\r\n }\r\n }\r\n getRoleTypeByBuild(gebolin:GebolinView):GebolInTypeEnum{\r\n switch(Number(this.buildId)){\r\n case BuildHeroType.ZhanShiWuqi:\r\n case BuildHeroType.ZhanShiKaiJia:\r\n case BuildHeroType.ZhanShiMaoZi:\r\n gebolin.soldiersID = 101;\r\n return GebolInTypeEnum.ZhanShi;\r\n\r\n case BuildHeroType.FaShiWuQi:\r\n case BuildHeroType.FaShiKaiJia:\r\n case BuildHeroType.FaShiMaoZi:\r\n gebolin.soldiersID = 201;\r\n return GebolInTypeEnum.FaShi;\r\n\r\n case BuildHeroType.CiKeWuQi:\r\n case BuildHeroType.CiKeKaiJia:\r\n case BuildHeroType.CiKeMaoZi:\r\n gebolin.soldiersID = 301;\r\n return GebolInTypeEnum.ChiKe;\r\n\r\n case BuildHeroType.PaoShouWuQi:\r\n case BuildHeroType.PaoShouKaiJia:\r\n case BuildHeroType.PaoShouMaoZi:\r\n gebolin.soldiersID = 401;\r\n return GebolInTypeEnum.PaoShou;\r\n }\r\n }\r\n getRoleAttTypeByBuild(gebolinType:GebolInTypeEnum):GebolInAttTypeEnum{\r\n switch(gebolinType){\r\n case GebolInTypeEnum.ZhanShi:\r\n case GebolInTypeEnum.ChiKe:\r\n return GebolInAttTypeEnum.JinZhan;\r\n\r\n case GebolInTypeEnum.FaShi:\r\n case GebolInTypeEnum.PaoShou:\r\n return GebolInAttTypeEnum.YuanCheng;\r\n }\r\n }\r\n\r\n update(){\r\n if(!GameModleComp.getInstance().isOpenGame){\r\n return;\r\n }\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n if(this.buildAiType == BuildAiTypeEnum.ZhuangPei){\r\n return;\r\n }\r\n if(this.waitGebolin.length == 0){\r\n return;\r\n }\r\n if(this.waitGebolin[0].AiType != GebolInAiEnum.WaitZhuangpei){\r\n if(this.waitGebolin[0].AiType == GebolInAiEnum.WaitUp){\r\n this.upToWait();\r\n }\r\n return;\r\n }\r\n if(this.canZhuangPei){\r\n this.buildAiType = BuildAiTypeEnum.ZhuangPei;\r\n this.showAddwuqi();\r\n }\r\n // let time:number = new Date().getTime();\r\n // if(time - this.starTime>= this.cdTime*1000){\r\n // this.buildAiType = BuildAiTypeEnum.ZhuangPei;\r\n // this.showAddwuqi();\r\n // }\r\n }\r\n private onCd(){\r\n this.canZhuangPei = true;\r\n }\r\n\r\n desTroy(){\r\n EventManager.Inst.off(EventType.ON_CAN_GET_REWAR_BUILD ,this, this.onCanGetReward);\r\n EventManager.Inst.off(EventType.ON_GET_REWAR_BUILD_END ,this, this.onGetEndReward);\r\n if(this.cunzhuangArr){\r\n for(let i = 0 ; i < this.cunzhuangArr.length ; i++){\r\n this.cunzhuangArr[i].desTroy();\r\n }\r\n }\r\n if(this.cunzhuangTimeArr){\r\n for(let i = 0 ; i < this.cunzhuangTimeArr.length ; i++){\r\n this.cunzhuangTimeArr[i].desTroy();\r\n }\r\n }\r\n this.cunzhuangTimeArr = [];\r\n this.cunzhuangArr = [];\r\n if(this && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n super.destroy();\r\n }\r\n}\r\nexport enum BuildPart{\r\n CunZhuang,\r\n WuQi,\r\n KaiJia,\r\n MaoZi\r\n}\r\nexport enum BuildHeroType{\r\n Village1 =1001,\r\n Village2 =1002,\r\n Village3 =1003,\r\n ZhanShiWuqi = 1004,\r\n ZhanShiKaiJia = 1005,\r\n ZhanShiMaoZi = 1006,\r\n FaShiWuQi = 1007,\r\n FaShiKaiJia = 1008,\r\n FaShiMaoZi = 1009,\r\n CiKeWuQi = 1010,\r\n CiKeKaiJia = 1011,\r\n CiKeMaoZi = 1012,\r\n PaoShouWuQi = 1013,\r\n PaoShouKaiJia = 1014,\r\n PaoShouMaoZi = 1015,\r\n}\r\nexport enum BuildAiTypeEnum{\r\n Wait,\r\n ZhuangPei,\r\n}","import { Vec3 } from \"cc\";\r\nimport { CollisionType, GameCollision2D } from \"./GameCollision2D\";\r\nimport { Skill } from \"./Skill\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { MOVETYPE, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { Collider2D } from \"cc\";\r\nimport { IPhysics2DContact } from \"cc\";\r\nimport { EffectSingleCase } from \"./EffectSingleCase\";\r\nimport { EffectDamage } from \"./SkillInterface\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolInAiEnum, GebolinView } from \"../role/GebolinView\";\r\nimport { RoleAttack } from \"./RoleAttack\";\r\nimport { BulletView } from \"./BulletView\";\r\nimport { BulletTriggerEvent } from \"./BulletTriggerEvent\";\r\nimport { Vec2 } from \"cc\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { Operate } from \"./Operate\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { HeroAiType } from \"../enum/Enum\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\n\r\n/** 飞弹类特效抽象类 */\r\nexport abstract class BulletFangView extends BulletView {\r\n onLoad() {\r\n super.onLoad();\r\n }\r\n initBullet() {\r\n super.initBullet();\r\n }\r\n /** 发射 */\r\n launch(ndangle: number = 0) {\r\n super.launch(ndangle)\r\n }\r\n /** 飞弹移动动画 */\r\n update(dt: number) {\r\n if (this.target == null) {\r\n this.removeSelf();\r\n return;\r\n }\r\n let tv = this.target;\r\n if (tv && tv.node) {\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n let tp = new Vec3(tv.node.position.x, tv.node.position.y + 50, tv.node.position.z);\r\n this.targetPos = tp;\r\n }\r\n this.dir();\r\n let dis:number = 0;\r\n if (this.moveType == MOVETYPE.ANGER && this.bulletType != 1) {\r\n //旋转角度转化为弧度\r\n let angle = (90 - this.node.angle) * 2 / 360 * Math.PI;\r\n //计算基于Y轴的方向向量\r\n let dir = new Vec3(Math.sin(angle), Math.cos(angle), 0);\r\n //方向向量进行单位化\r\n dir.normalize();\r\n //根据方向向量移动位置\r\n let v3_dis = new Vec3(dt * dir.x * this.speed, dt * dir.y * this.speed, dt * dir.z * this.speed);\r\n this.node.setPosition(this.node.position.add(v3_dis));\r\n } else {\r\n dis = this.speed * dt;\r\n let _x:number = this.pos_end.x * dis;\r\n let _y:number = this.pos_end.y * dis;\r\n let v3:Vec3 = this.node.position;\r\n v3.x += _x;\r\n v3.y += _y;\r\n this.node.setPosition(v3);\r\n }\r\n dis = Vec3.distance(this.node.position, this.targetPos);\r\n //触发碰撞\r\n if (dis <= 5) {\r\n let comp:BulletTriggerEvent = this.node.getComponent(BulletTriggerEvent);\r\n if(comp.isAttack){\r\n if(comp.isAttTime){\r\n comp.isAttTime = false;\r\n this.showAllHit();\r\n }\r\n }else{\r\n comp.showAttack();\r\n }\r\n if(comp.canRemove){\r\n this.removeSelf();\r\n }\r\n }\r\n } else {\r\n this.removeSelf();\r\n }\r\n \r\n }\r\n private showAllHit(){\r\n var rectPos = new Vec2(this.targetPos.x, this.targetPos.y);\r\n let fanwei:Vec2 = this.skill.SkillModel.table.fanwei;\r\n var rectSize = new Vec2(fanwei.x*40, fanwei.y*40);\r\n let shengxiaoArr:Array = this.skill.SkillModel.table.shengxiao;\r\n let map:Map = null;\r\n for(let i = 0 ; i < shengxiaoArr.length ; i++){\r\n map = null;\r\n if(shengxiaoArr[i] == 1){\r\n map = GameEntry.Inst.mapView.gebolinMap;\r\n }\r\n if(shengxiaoArr[i] == 2){\r\n if(GameModleComp.getInstance().isInCopy){\r\n map = GameEntry.Inst.mapView.copyheroMap;\r\n }else{\r\n map = GameEntry.Inst.mapView.heroMap;\r\n }\r\n }\r\n if(shengxiaoArr[i] == 3){\r\n if(GameModleComp.getInstance().isInCopy){\r\n if(GameEntry.Inst.mapView.nowFubenBoss && GameEntry.Inst.mapView.nowFubenBoss.node){\r\n let nodePos = GameEntry.Inst.mapView.nowFubenBoss.node.position;\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(GameEntry.Inst.mapView.nowFubenBoss);\r\n }\r\n }\r\n }else{\r\n let nodePos = GameEntry.Inst.mapView.nowBoss.node.position;\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(GameEntry.Inst.mapView.nowBoss);\r\n }\r\n }\r\n }\r\n if(map){\r\n map.forEach((role: BaseRole, key: string|number) => {\r\n let nodePos = role.node.position;\r\n if(role instanceof GebolinView){\r\n if(role.AiType == GebolInAiEnum.Fight){\r\n if(Operate.inFriendType(this.caster,role , this.skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(role);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n this.onCollisionFun(role);\r\n }\r\n }\r\n }\r\n }\r\n if(role instanceof HeroView){\r\n if(role.heroAiType == HeroAiType.Fight){\r\n if(Operate.inFriendType(this.caster,role , this.skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(role);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n this.onCollisionFun(role);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n /** 计算子弹飞行方向 */\r\n protected dir(ndangle: number = 0) {\r\n if (this.targetPos == null) return;\r\n // 目标点\r\n let p: Vec3;\r\n let rg: Vec3;\r\n p = new Vec3(this.targetPos.x, this.targetPos.y, this.targetPos.z);\r\n let { x, y, z } = p.subtract(this.node.position).normalize();\r\n this.pos_end = new Vec3(x, y, z);\r\n if (this.rotate == '1') {\r\n if(this.pos_start.x >= this.targetPos.x){\r\n this.node.scale = new Vec3(1,1,1)\r\n }else{\r\n this.node.scale = new Vec3(-1,1,1)\r\n }\r\n this.moveType = MOVETYPE.ANGER;\r\n } else {\r\n this.moveType = MOVETYPE.LINE;\r\n }\r\n // if (this.rotate == '1') {\r\n // let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPos);\r\n // this.node.angle = (angel + ndangle)*-1;\r\n // this.moveType = MOVETYPE.ANGER;\r\n // } else {\r\n // this.moveType = MOVETYPE.LINE;\r\n // }\r\n }\r\n onCollisionEnter(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {\r\n // super.onCollisionEnter(selfCollider , otherCollider,contact)\r\n }\r\n onFollowFun(target: BaseRole) {\r\n // super.onFollowFun(target)\r\n }\r\n onCollisionFun(target: BaseRole): boolean {\r\n if(this.caster.gebolinMapType != target.gebolinMapType){\r\n return;\r\n }\r\n if(target instanceof BossView){\r\n let cb = false;\r\n if (this.caster != target) {\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n }\r\n (target as BossView).showHit(this.skill);\r\n return cb;\r\n }else if(target instanceof GebolinView){\r\n if(this.skill.SkillModel.casting.caster instanceof BossView){\r\n let cb = false;\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n target.showHit(this.skill);\r\n return cb;\r\n }\r\n }\r\n }\r\n calcDamage(target: BaseRole): EffectDamage {\r\n let fixedge = 0;\r\n // 计算基准目标\r\n fixedge = 1;\r\n let param: SkillCfgRecord = {\r\n skilllier: 1,\r\n /**技能固伤*/\r\n fixedge: fixedge,\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n var effect = RoleAttack.normal(this.caster, target, this.skill, param,1);\r\n return effect;\r\n }\r\n /** 移除自己 */\r\n protected removeSelf() {\r\n super.removeSelf();\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { BulletView } from \"./BulletView\";\r\nimport { tween } from \"cc\";\r\nimport { easing } from \"cc\";\r\nimport { TweenUtils } from \"./TweenUtils\";\r\nimport { misc } from \"cc\";\r\nimport { Vec2 } from \"cc\";\r\nimport { macro } from \"cc\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { MOVETYPE } from \"./SkillEnum\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { BossView } from \"../role/BossView\";\r\n\r\n/** 跟踪飞弹,必中目标 */\r\nexport class BulletPaoView extends BulletView {\r\n /**左边或者右边*/\r\n private isLeft:boolean = true;\r\n /**当前运动轨迹 1: 上行 2:平移 3:下行*/\r\n private nowType:number = 1;\r\n /**所有途经点*/\r\n private targetPointArr:Array = [];\r\n onLoad(): void {\r\n //不继承, 关闭碰撞\r\n this.bulletType = 1;\r\n super.onLoad();\r\n }\r\n initBullet() {\r\n this.bulletType = 1;\r\n this.isLeft = false;\r\n this.nowType = 1;\r\n this.targetPointArr = [];\r\n super.initBullet()\r\n }\r\n /** 发射 */\r\n launch(ndangle: number = 0) {\r\n // 特效起始位置\r\n let roleview = this.caster;\r\n let targetview = this.target;\r\n let offsetpos = 0;\r\n if(roleview instanceof GebolinView){\r\n let p:Vec3 = roleview.wuqiSprite.node.position;\r\n let w:Vec3 = roleview.wuqi.position;\r\n this.pos_start.set(new Vec3(roleview.node.position.x - p.x - w.x, roleview.node.position.y - offsetpos + p.y + w.y, roleview.node.position.z));\r\n }else if(roleview instanceof HeroView){\r\n let p:Vec3 = roleview.wuqiSprite.node.position;\r\n let w:Vec3 = roleview.wuqi.position;\r\n this.pos_start.set(new Vec3(roleview.node.position.x - p.x - w.x, roleview.node.position.y - offsetpos + p.y + w.y, roleview.node.position.z));\r\n }else if(roleview instanceof BossView){\r\n let p:Vec3 = roleview.wuqiSprite.node.position;\r\n let w:Vec3 = roleview.wuqi.position;\r\n this.pos_start.set(new Vec3(roleview.node.position.x - p.x - w.x, roleview.node.position.y - offsetpos + p.y + w.y, roleview.node.position.z));\r\n }else{\r\n this.pos_start.set(new Vec3(roleview.node.position.x, roleview.node.position.y + offsetpos, roleview.node.position.z));\r\n }\r\n\r\n this.node.position = this.pos_start;\r\n this.dir(ndangle);\r\n }\r\n private showAction(){\r\n let angel:number = this.getAngel();\r\n this.node.angle = angel;\r\n tween(this.node).to(0.3,{position:this.targetPointArr[this.nowType-1]}).call(()=>{\r\n this.pos_start = this.targetPointArr[this.nowType-1];\r\n this.nowType++;\r\n tween(this.node).to(0.2,{position:this.targetPointArr[this.nowType-1] , angle:this.getAngel()}).call(()=>{\r\n this.pos_start = this.targetPointArr[this.nowType-1];\r\n this.nowType++;\r\n tween(this.node).to(0.2,{position:this.targetPointArr[this.nowType-1] , angle:this.getAngel()}).call(()=>{\r\n this.pos_start = this.targetPointArr[this.nowType-1];\r\n this.nowType++;\r\n tween(this.node).to(0.1,{position:this.targetPointArr[this.nowType-1] , angle:this.getAngel()}).call(()=>{\r\n this.pos_start = this.targetPointArr[this.nowType-1];\r\n this.nowType++;\r\n tween(this.node).to(0.1,{position:this.targetPointArr[this.nowType-1] , angle:this.getAngel()}).call(()=>{\r\n this.onCollisionFun(this.target);\r\n this.removeSelf();\r\n }).start()\r\n }).start()\r\n }).start()\r\n }).start()\r\n }).start()\r\n }\r\n private getAngel():number{\r\n let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPointArr[this.nowType-1]);\r\n let newAngel:number = 0;\r\n if(this.pos_start.x > this.targetPointArr[this.nowType-1].x){\r\n this.node.scale = new Vec3(1,1,1)\r\n if(this.pos_start.y >= this.targetPointArr[this.nowType-1].y){\r\n newAngel = 180 - angel*-1;\r\n }else{\r\n newAngel = angel - 180;\r\n }\r\n }else{\r\n this.node.scale = new Vec3(-1,1,1)\r\n if(this.pos_start.y >= this.targetPointArr[this.nowType-1].y){\r\n // newAngel = (180 - angel*-1)*-1;\r\n newAngel = angel*-1\r\n }else{\r\n // newAngel = (angel - 180)*-1;\r\n newAngel = angel;\r\n }\r\n }\r\n return newAngel;\r\n }\r\n update(dt: number) {\r\n if (this.target == null) {\r\n this.removeSelf();\r\n return;\r\n }\r\n }\r\n \r\n /** 计算子弹飞行方向 */\r\n protected dir(ndangle: number = 0) {\r\n if (this.targetPos == null) return;\r\n if(this.targetPointArr.length == 0){\r\n this.getPointArr();\r\n }\r\n }\r\n private getPointArr(){\r\n if(this.node.position.x > this.targetPos.x){\r\n this.isLeft = true;\r\n }else{\r\n this.isLeft = false;\r\n }\r\n let chaX:number=0;\r\n let chaY:number=0;\r\n if(this.isLeft){\r\n chaX = this.targetPos.x - this.node.position.x;\r\n }else{\r\n chaX = this.node.position.x - this.targetPos.x \r\n }\r\n chaY = this.targetPos.y - this.node.position.y + 160;\r\n let pxArr:Array = [2,5,7,8.5,10]\r\n let pyArr:Array = [8,10,9.5,9,8.5]\r\n let v3:Vec3;\r\n for(let i = 0 ; i < pyArr.length ; i++){\r\n v3 = new Vec3();\r\n if(this.isLeft){\r\n v3.x = this.node.position.x + chaX/10*pxArr[i]\r\n }else{\r\n v3.x = this.node.position.x - chaX/10*pxArr[i]\r\n }\r\n v3.y = this.node.position.y + chaY/10*pyArr[i];\r\n v3.z = this.targetPos.z;\r\n this.targetPointArr[i] = v3;\r\n }\r\n this.showAction();\r\n }\r\n}","import { sp } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Skill } from \"./Skill\";\r\nimport { _decorator } from \"cc\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('BulletTriggerEvent')\r\nexport class BulletTriggerEvent extends Component{\r\n \r\n public spine!: sp.Skeleton;\r\n\r\n public isAttTime:Boolean = false;\r\n\r\n public skill:Skill;\r\n\r\n public isAttack:boolean = false;\r\n\r\n public canRemove:boolean = false;\r\n\r\n private eventName:string = \"\";\r\n onstart(){\r\n\r\n }\r\n onLoad(){\r\n \r\n }\r\n init(skill:Skill){\r\n this.isAttTime = false;\r\n this.isAttack = false;\r\n this.canRemove = false;\r\n this.skill = skill;\r\n this.spine = this.node.getComponent(sp.Skeleton)!;\r\n this.node.getComponent(sp.Skeleton).setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n // case this.skill.SkillModel.table.frameEvent:\r\n // break;\r\n case \"e_c_h_skill_wait\":\r\n break;\r\n case \"e_c_h_skill_release\":\r\n this.eventName = name; \r\n this.isAttTime = true;\r\n setTimeout(() => {\r\n this.canRemove = true;\r\n }, 500);\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n showAttack(){\r\n this.isAttack = true;\r\n this.spine.setAnimation(0,\"e_c_h_skill_release\",false);\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { CollisionType, GameCollision2D } from \"./GameCollision2D\";\r\nimport { Skill } from \"./Skill\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { MOVETYPE, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { Collider2D } from \"cc\";\r\nimport { IPhysics2DContact } from \"cc\";\r\nimport { EffectSingleCase } from \"./EffectSingleCase\";\r\nimport { EffectDamage } from \"./SkillInterface\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { RoleAttack } from \"./RoleAttack\";\r\nimport { Hero } from \"../modules/game/proxy/HeroProxy\";\r\nimport { HeroView } from \"../role/HeroView\";\r\n\r\n/** 飞弹类特效抽象类 */\r\nexport abstract class BulletView extends GameCollision2D {\r\n /** 施放者对象 */\r\n caster: BaseRole = null!;\r\n /** 受击目标对象 */\r\n target: BaseRole = null!;\r\n /** 受击目标点 */\r\n targetPos: Vec3 = null!;\r\n /** 当前技能对象 */\r\n skill: Skill = null!;\r\n /** 移动速度 */\r\n speed: number = 100;\r\n\r\n distance: number = 0;\r\n\r\n rotate: string = '';\r\n /** 受到攻击事件 */\r\n onHit: Function = null!;\r\n /** 穿透个数 */\r\n penetrate: number = 0;\r\n bulletType: number = 1; //0弹道, 1 跟踪不碰撞\r\n /** 移动方向 */\r\n protected velocity: Vec3 = Vec3Util.forward;\r\n /** 起点位置 */\r\n protected pos_start: Vec3 = new Vec3();\r\n /** 目标位置 */\r\n protected pos_end: Vec3 = new Vec3();\r\n /** 移动增量 */\r\n protected trans: Vec3 = new Vec3();\r\n protected isBack:boolean = false;\r\n protected beginTarget:Vec3 = new Vec3(0,0,0);\r\n public moveType: number = MOVETYPE.LINE;\r\n public toRemoveYuan:boolean = false;\r\n canCollision:boolean = true;\r\n isPao:boolean = false;\r\n onLoad() {\r\n this.type = CollisionType.Ballistic;\r\n super.onLoad();\r\n }\r\n initBullet() {\r\n this.beginTarget = new Vec3(0,0,0)\r\n this.bulletType = 1;\r\n this.type = CollisionType.Ballistic;\r\n }\r\n /** 发射 */\r\n launch(ndangle: number = 0) {\r\n // 特效起始位置\r\n let roleview = this.caster;\r\n let targetview = this.target;\r\n let offsetpos = 0;\r\n if(roleview instanceof GebolinView){\r\n let p:Vec3 = roleview.wuqiSprite.node.position;\r\n let w:Vec3 = roleview.wuqi.position;\r\n if(roleview.node.position.x > targetview.node.position.x){\r\n this.pos_start.set(new Vec3(roleview.node.position.x - p.x - w.x, roleview.node.position.y - offsetpos + p.y + w.y, roleview.node.position.z));\r\n }else{\r\n this.pos_start.set(new Vec3(roleview.node.position.x + p.x + w.x, roleview.node.position.y - offsetpos + p.y + w.y, roleview.node.position.z));\r\n }\r\n }else if(roleview instanceof HeroView){\r\n let p:Vec3 = roleview.wuqiSprite.node.position;\r\n let w:Vec3 = roleview.wuqi.position;\r\n this.pos_start.set(new Vec3(roleview.node.position.x - p.x - w.x/2, roleview.node.position.y - offsetpos + p.y + w.y/2, roleview.node.position.z));\r\n }else if(roleview instanceof BossView){\r\n let p:Vec3 = roleview.wuqiSprite.node.position;\r\n let w:Vec3 = roleview.wuqi.position;\r\n this.pos_start.set(new Vec3(roleview.node.position.x - p.x - w.x, roleview.node.position.y - offsetpos + p.y + w.y, roleview.node.position.z));\r\n }else{\r\n this.pos_start.set(new Vec3(roleview.node.position.x, roleview.node.position.y + offsetpos, roleview.node.position.z));\r\n }\r\n\r\n this.node.position = this.pos_start;\r\n this.dir(ndangle);\r\n }\r\n /** 飞弹移动动画 */\r\n update(dt: number) {\r\n let dis:number = 0;\r\n if (this.moveType == MOVETYPE.ANGER && this.bulletType != 1) {\r\n //旋转角度转化为弧度\r\n let angle = (90 - this.node.angle) * 2 / 360 * Math.PI;\r\n //计算基于Y轴的方向向量\r\n let dir = new Vec3(Math.sin(angle), Math.cos(angle), 0);\r\n //方向向量进行单位化\r\n dir.normalize();\r\n //根据方向向量移动位置\r\n let v3_dis = new Vec3(dt * dir.x * this.speed, dt * dir.y * this.speed, dt * dir.z * this.speed);\r\n this.node.setPosition(this.node.position.add(v3_dis));\r\n } else {\r\n dis = this.speed * dt;\r\n let _x:number = this.pos_end.x * dis;\r\n let _y:number = this.pos_end.y * dis;\r\n let v3:Vec3 = this.node.position;\r\n v3.x += _x;\r\n v3.y += _y;\r\n this.node.setPosition(v3);\r\n }\r\n if (this.bulletType == 1) {\r\n dis = Vec3.distance(this.node.position, this.targetPos);\r\n //触发碰撞\r\n if (dis <= 20) {\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n this.onCollisionFun(this.target);\r\n this.removeSelf();\r\n }else{\r\n\r\n }\r\n }\r\n }\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n if (Vec3.distance(this.node.position, this.pos_start) >= this.distance) {\r\n // 删除\r\n this.removeSelf();\r\n }\r\n }\r\n }\r\n /** 计算子弹飞行方向 */\r\n protected dir(ndangle: number = 0) {\r\n if (this.targetPos == null) return;\r\n // 目标点\r\n let p: Vec3;\r\n let rg: Vec3;\r\n p = new Vec3(this.targetPos.x, this.targetPos.y, this.targetPos.z);\r\n let { x, y, z } = p.subtract(this.node.position).normalize();\r\n this.pos_end = new Vec3(x, y, z);\r\n if (this.rotate == '1') {\r\n let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPos);\r\n if(this.pos_start.y >= this.targetPos.y){\r\n this.node.angle = 180 - (angel + ndangle)*-1;\r\n }else{\r\n this.node.angle = (angel + ndangle) - 180;\r\n }\r\n this.moveType = MOVETYPE.ANGER;\r\n // let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPos);\r\n // this.node.angle = (angel + ndangle)*-1;\r\n // let tempX = this.pos_start.x - this.targetPos.x;\r\n // let tempy = this.pos_start.y - this.targetPos.y;\r\n // if(tempy > -30){\r\n // if(tempX > 0){\r\n // this.node.scale = new Vec3(-1 , 1 ,1)\r\n // }else{\r\n // this.node.scale = new Vec3(-1 , 1 ,1)\r\n // }\r\n // }else if(tempy < 200){\r\n // this.node.scale = new Vec3(1 , 1 ,1)\r\n // }\r\n // this.moveType = MOVETYPE.ANGER;\r\n } else {\r\n this.moveType = MOVETYPE.LINE;\r\n }\r\n }\r\n onCollisionEnter(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {\r\n // var rv = otherCollider.node.getComponent(BaseRole);\r\n // if (rv) {\r\n // this.onCollisionFun(rv);\r\n // }\r\n }\r\n onFollowFun(target: BaseRole) {\r\n target.onHit && target.onHit();\r\n }\r\n onCollisionFun(target: BaseRole): boolean {\r\n if(this.caster.gebolinMapType != target.gebolinMapType){\r\n return;\r\n }\r\n if(this.canCollision){\r\n this.canCollision = false;\r\n if(target instanceof BossView){\r\n let cb = false;\r\n if (this.caster != target) {\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n }\r\n (target as BossView).showHit(this.skill);\r\n return cb;\r\n }else if(target instanceof GebolinView){\r\n if(this.skill.SkillModel.casting.caster instanceof BossView){\r\n let cb = false;\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n target.showHit(this.skill);\r\n return cb;\r\n }\r\n }\r\n }\r\n }\r\n \r\n calcDamage(target: BaseRole): EffectDamage {\r\n let fixedge = 0;\r\n // 计算基准目标\r\n fixedge = 1;\r\n let param: SkillCfgRecord = {\r\n skilllier: 1,\r\n /**技能固伤*/\r\n fixedge: fixedge,\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n\r\n var effect = RoleAttack.normal(this.caster, target, this.skill, param);\r\n return effect;\r\n }\r\n /** 移除自己 */\r\n protected removeSelf() {\r\n EffectSingleCase.instance.put(this.node);\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { BulletView } from \"./BulletView\";\r\n\r\n/** 跟踪飞弹,必中目标 */\r\nexport class BulletViewFollow extends BulletView {\r\n onLoad(): void {\r\n //不继承, 关闭碰撞\r\n this.bulletType = 1;\r\n super.onLoad();\r\n }\r\n\r\n initBullet() {\r\n this.bulletType = 1;\r\n super.initBullet()\r\n }\r\n\r\n update(dt: number) {\r\n if (this.target == null) {\r\n this.removeSelf();\r\n return;\r\n }\r\n let tv = this.target;\r\n if (tv && tv.node) {\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n let tp = new Vec3(tv.node.position.x, tv.node.position.y + 50, tv.node.position.z);\r\n this.targetPos = tp;\r\n }\r\n this.dir();\r\n super.update(dt);\r\n } else {\r\n this.removeSelf();\r\n }\r\n }\r\n}","\r\nimport { _decorator } from \"cc\";\r\nimport { BulletView } from \"./BulletView\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n\r\n/** \r\n * 直线飞行特效\r\n */\r\n@ccclass('BulletViewsTraightLine')\r\nexport class BulletViewsTraightLine extends BulletView {\r\n update(dt: number) {\r\n super.update(dt);\r\n }\r\n}","import { sp } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Skill } from \"./Skill\";\r\nimport { _decorator } from \"cc\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('BulletXuLiTriggerEvent')\r\nexport class BulletXuLiTriggerEvent extends Component{\r\n \r\n public spine!: sp.Skeleton;\r\n public skill:Skill;\r\n\r\n public xuliOver:boolean = false;\r\n onstart(){\r\n\r\n }\r\n onLoad(){\r\n \r\n }\r\n init(skill:Skill){\r\n this.skill = skill;\r\n this.xuliOver = false;\r\n this.spine = this.node.getComponent(sp.Skeleton)!;\r\n this.spine.setAnimation(0 , \"e_c_h_skill_wait\" , true)\r\n this.node.getComponent(sp.Skeleton).setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case this.skill.SkillModel.table.frameEvent:\r\n break;\r\n case \"e_c_h_skill_wait\":\r\n this.showAttack();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n showAttack(){\r\n this.spine.setAnimation(0 , \"e_c_h_skill_release\" , true)\r\n this.xuliOver = true;\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { CollisionType, GameCollision2D } from \"./GameCollision2D\";\r\nimport { Skill } from \"./Skill\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { MOVETYPE, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { Collider2D } from \"cc\";\r\nimport { IPhysics2DContact } from \"cc\";\r\nimport { EffectSingleCase } from \"./EffectSingleCase\";\r\nimport { EffectDamage } from \"./SkillInterface\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { RoleAttack } from \"./RoleAttack\";\r\nimport { BulletView } from \"./BulletView\";\r\nimport { BulletXuLiTriggerEvent } from \"./BulletXuLiTriggerEvent\";\r\nimport { Operate } from \"./Operate\";\r\n\r\n/** 飞弹类特效抽象类 */\r\nexport abstract class BulletXuliView extends BulletView {\r\n onLoad() {\r\n super.onLoad();\r\n }\r\n initBullet() {\r\n super.initBullet();\r\n }\r\n /** 发射 */\r\n launch(ndangle: number = 0) {\r\n super.launch(ndangle)\r\n }\r\n /** 飞弹移动动画 */\r\n update(dt: number) {\r\n let comp:BulletXuLiTriggerEvent = this.node.getComponent(BulletXuLiTriggerEvent);\r\n if(!comp.xuliOver){\r\n return;\r\n }\r\n if (this.target == null) {\r\n this.removeSelf();\r\n return;\r\n }\r\n let tv = this.target;\r\n if (tv && tv.node) {\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n let tp = new Vec3(tv.node.position.x, tv.node.position.y + 50, tv.node.position.z);\r\n this.targetPos = tp;\r\n }\r\n this.dir();\r\n let dis:number = 0;\r\n if (this.moveType == MOVETYPE.ANGER && this.bulletType != 1) {\r\n //旋转角度转化为弧度\r\n let angle = (90 - this.node.angle) * 2 / 360 * Math.PI;\r\n //计算基于Y轴的方向向量\r\n let dir = new Vec3(Math.sin(angle), Math.cos(angle), 0);\r\n //方向向量进行单位化\r\n dir.normalize();\r\n //根据方向向量移动位置\r\n let v3_dis = new Vec3(dt * dir.x * this.speed, dt * dir.y * this.speed, dt * dir.z * this.speed);\r\n this.node.setPosition(this.node.position.add(v3_dis));\r\n } else {\r\n dis = this.speed * dt;\r\n let _x:number = this.pos_end.x * dis;\r\n let _y:number = this.pos_end.y * dis;\r\n let v3:Vec3 = this.node.position;\r\n v3.x += _x;\r\n v3.y += _y;\r\n this.node.setPosition(v3);\r\n }\r\n if (Vec3.distance(this.node.position, this.pos_start) >= this.distance) {\r\n // 删除\r\n this.removeSelf();\r\n }\r\n } else {\r\n this.removeSelf();\r\n }\r\n \r\n }\r\n /** 计算子弹飞行方向 */\r\n protected dir(ndangle: number = 0) {\r\n if (this.targetPos == null) return;\r\n // 目标点\r\n let p: Vec3;\r\n let rg: Vec3;\r\n p = new Vec3(this.targetPos.x, this.targetPos.y, this.targetPos.z);\r\n let { x, y, z } = p.subtract(this.node.position).normalize();\r\n this.pos_end = new Vec3(x, y, z);\r\n if (this.rotate == '1') {\r\n let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPos);\r\n if(this.pos_start.y >= this.targetPos.y){\r\n this.node.angle = 180 - (angel + ndangle)*-1;\r\n }else{\r\n this.node.angle = (angel + ndangle) - 180;\r\n }\r\n this.moveType = MOVETYPE.ANGER;\r\n } else {\r\n this.moveType = MOVETYPE.LINE;\r\n }\r\n }\r\n onCollisionEnter(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {\r\n super.onCollisionEnter(selfCollider , otherCollider,contact)\r\n }\r\n onFollowFun(target: BaseRole) {\r\n super.onFollowFun(target)\r\n }\r\n onCollisionFun(target: BaseRole): boolean {\r\n if(this.caster.gebolinMapType != target.gebolinMapType){\r\n return;\r\n }\r\n let cb = false;\r\n if(target instanceof BaseRole){\r\n if(Operate.inFriendType(this.caster , target , this.skill) && this.inOpenType(target , this.skill)){\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n target.showHit(this.skill);\r\n return cb;\r\n }\r\n }\r\n }\r\n private inOpenType(role: BaseRole , skill:Skill):boolean{\r\n return skill.SkillModel.table.shengxiao.indexOf(role.RoleType) >= 0;\r\n }\r\n calcDamage(target: BaseRole): EffectDamage {\r\n let fixedge = 0;\r\n // 计算基准目标\r\n fixedge = 1;\r\n let param: SkillCfgRecord = {\r\n skilllier: 1,\r\n /**技能固伤*/\r\n fixedge: fixedge,\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n\r\n var effect = RoleAttack.normal(this.caster, target, this.skill, param,1);\r\n return effect;\r\n }\r\n /** 移除自己 */\r\n protected removeSelf() {\r\n super.removeSelf();\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { CollisionType, GameCollision2D } from \"./GameCollision2D\";\r\nimport { Skill } from \"./Skill\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { MOVETYPE, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { Collider2D } from \"cc\";\r\nimport { IPhysics2DContact } from \"cc\";\r\nimport { EffectSingleCase } from \"./EffectSingleCase\";\r\nimport { EffectDamage } from \"./SkillInterface\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolInAiEnum, GebolinView } from \"../role/GebolinView\";\r\nimport { RoleAttack } from \"./RoleAttack\";\r\nimport { BulletView } from \"./BulletView\";\r\nimport { BulletTriggerEvent } from \"./BulletTriggerEvent\";\r\nimport { Vec2 } from \"cc\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { Operate } from \"./Operate\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { HeroAiType } from \"../enum/Enum\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\n\r\n/** 飞弹类特效抽象类 */\r\nexport abstract class BulletYuanView extends BulletView {\r\n onLoad() {\r\n super.onLoad();\r\n }\r\n initBullet() {\r\n super.initBullet();\r\n }\r\n /** 发射 */\r\n launch(ndangle: number = 0) {\r\n super.launch(ndangle)\r\n }\r\n /** 飞弹移动动画 */\r\n update(dt: number) {\r\n if (this.target == null) {\r\n this.removeSelf();\r\n return;\r\n }\r\n let tv = this.target;\r\n if (tv && tv.node) {\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n let tp = new Vec3(tv.node.position.x, tv.node.position.y + 50, tv.node.position.z);\r\n this.targetPos = tp;\r\n }\r\n this.dir();\r\n let dis:number = 0;\r\n // if (this.moveType == MOVETYPE.ANGER && this.bulletType != 1) {\r\n // //旋转角度转化为弧度\r\n // let angle = (90 - this.node.angle) * 2 / 360 * Math.PI;\r\n // //计算基于Y轴的方向向量\r\n // let dir = new Vec3(Math.sin(angle), Math.cos(angle), 0);\r\n // //方向向量进行单位化\r\n // dir.normalize();\r\n // //根据方向向量移动位置\r\n // let v3_dis = new Vec3(dt * dir.x * this.speed, dt * dir.y * this.speed, dt * dir.z * this.speed);\r\n // this.node.setPosition(this.node.position.add(v3_dis));\r\n // } else {\r\n // dis = this.speed * dt;\r\n // let _x:number = this.pos_end.x * dis;\r\n // let _y:number = this.pos_end.y * dis;\r\n // let v3:Vec3 = this.node.position;\r\n // v3.x += _x;\r\n // v3.y += _y;\r\n // this.node.setPosition(v3);\r\n // }\r\n this.node.position = this.targetPos;\r\n dis = Vec3.distance(this.node.position, this.targetPos);\r\n //触发碰撞\r\n if (dis <= 5) {\r\n if(this.skill.SkillModel.table.frameEvent.length > 2){\r\n let comp:BulletTriggerEvent = this.node.getComponent(BulletTriggerEvent);\r\n if(comp.isAttack){\r\n if(comp.isAttTime){\r\n comp.isAttTime = false;\r\n this.showAllHit();\r\n }\r\n }else{\r\n comp.showAttack();\r\n }\r\n if(comp.canRemove){\r\n this.removeSelf();\r\n }\r\n }else{\r\n if(!this.toRemoveYuan){\r\n this.toRemoveYuan = true;\r\n setTimeout(() => {\r\n this.showAllHit();\r\n this.removeSelf();\r\n }, 1000);\r\n }\r\n }\r\n }\r\n } else {\r\n this.removeSelf();\r\n }\r\n \r\n }\r\n private showAllHit(){\r\n var rectPos = new Vec2(this.targetPos.x, this.targetPos.y);\r\n let fanwei:Vec2 = this.skill.SkillModel.table.fanwei;\r\n var rectSize = new Vec2(fanwei.x*40, fanwei.y*40);\r\n let shengxiaoArr:Array = this.skill.SkillModel.table.shengxiao;\r\n let map:Map = null;\r\n for(let i = 0 ; i < shengxiaoArr.length ; i++){\r\n map = null;\r\n if(shengxiaoArr[i] == 1){\r\n map = GameEntry.Inst.mapView.gebolinMap;\r\n }\r\n if(shengxiaoArr[i] == 2){\r\n if(GameModleComp.getInstance().isInCopy){\r\n map = GameEntry.Inst.mapView.copyheroMap;\r\n }else{\r\n map = GameEntry.Inst.mapView.heroMap;\r\n }\r\n }\r\n if(shengxiaoArr[i] == 3){\r\n if(GameModleComp.getInstance().isInCopy){\r\n if(GameEntry.Inst.mapView.nowFubenBoss && GameEntry.Inst.mapView.nowFubenBoss.node){\r\n let nodePos = GameEntry.Inst.mapView.nowFubenBoss.node.position;\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(GameEntry.Inst.mapView.nowFubenBoss);\r\n }\r\n }\r\n }else{\r\n if(GameEntry.Inst.mapView.nowBoss.node){\r\n let nodePos = GameEntry.Inst.mapView.nowBoss.node.position;\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(GameEntry.Inst.mapView.nowBoss);\r\n }\r\n }\r\n }\r\n }\r\n if(map){\r\n map.forEach((role: BaseRole, key: string|number) => {\r\n if(role.node){\r\n let nodePos = role.node.position;\r\n if(role instanceof GebolinView){\r\n if(role.AiType == GebolInAiEnum.Fight){\r\n if(Operate.inFriendType(this.caster,role , this.skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(role);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n this.onCollisionFun(role);\r\n }\r\n }\r\n }\r\n }\r\n if(role instanceof HeroView){\r\n if(role.heroAiType == HeroAiType.Fight){\r\n if(Operate.inFriendType(this.caster,role , this.skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n this.onCollisionFun(role);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n this.onCollisionFun(role);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n /** 计算子弹飞行方向 */\r\n protected dir(ndangle: number = 0) {\r\n if (this.targetPos == null) return;\r\n // 目标点\r\n let p: Vec3;\r\n let rg: Vec3;\r\n p = new Vec3(this.targetPos.x, this.targetPos.y, this.targetPos.z);\r\n let { x, y, z } = p.subtract(this.node.position).normalize();\r\n this.pos_end = new Vec3(x, y, z);\r\n // if (this.rotate == '1') {\r\n // let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPos);\r\n // if(this.pos_start.y >= this.targetPos.y){\r\n // this.node.angle = 180 - (angel + ndangle)*-1;\r\n // }else{\r\n // this.node.angle = (angel + ndangle) - 180;\r\n // }\r\n // this.moveType = MOVETYPE.ANGER;\r\n // } else {\r\n // this.moveType = MOVETYPE.LINE;\r\n // }\r\n }\r\n onCollisionEnter(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {\r\n // super.onCollisionEnter(selfCollider , otherCollider,contact)\r\n }\r\n onFollowFun(target: BaseRole) {\r\n // super.onFollowFun(target)\r\n }\r\n onCollisionFun(target: BaseRole): boolean {\r\n if(this.caster.gebolinMapType != target.gebolinMapType){\r\n return;\r\n }\r\n if(target instanceof BossView){\r\n let cb = false;\r\n if (this.caster != target) {\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n }\r\n (target as BossView).showHit(this.skill);\r\n return cb;\r\n }else if(target instanceof GebolinView){\r\n if(this.skill.SkillModel.casting.caster instanceof BossView){\r\n let cb = false;\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n target.showHit(this.skill);\r\n return cb;\r\n }\r\n }\r\n }\r\n \r\n calcDamage(target: BaseRole): EffectDamage {\r\n let fixedge = 0;\r\n // 计算基准目标\r\n fixedge = 1;\r\n let param: SkillCfgRecord = {\r\n skilllier: 1,\r\n /**技能固伤*/\r\n fixedge: fixedge,\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n\r\n var effect = RoleAttack.normal(this.caster, target, this.skill, param,1);\r\n return effect;\r\n }\r\n /** 移除自己 */\r\n protected removeSelf() {\r\n super.removeSelf();\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { CollisionType, GameCollision2D } from \"./GameCollision2D\";\r\nimport { Skill } from \"./Skill\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { MOVETYPE, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { Collider2D } from \"cc\";\r\nimport { IPhysics2DContact } from \"cc\";\r\nimport { EffectSingleCase } from \"./EffectSingleCase\";\r\nimport { EffectDamage } from \"./SkillInterface\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { RoleAttack } from \"./RoleAttack\";\r\nimport { BulletView } from \"./BulletView\";\r\nimport { Operate } from \"./Operate\";\r\n\r\n/** 飞弹类特效抽象类 */\r\nexport abstract class BulletZhiHuiView extends BulletView {\r\n onLoad() {\r\n super.onLoad();\r\n }\r\n initBullet() {\r\n super.initBullet();\r\n }\r\n /** 发射 */\r\n launch(ndangle: number = 0) {\r\n super.launch(ndangle)\r\n }\r\n /** 飞弹移动动画 */\r\n update(dt: number) {\r\n if (this.target == null) {\r\n this.removeSelf();\r\n return;\r\n }\r\n let tv = this.target;\r\n if (tv && tv.node) {\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n let tp = new Vec3(tv.node.position.x, tv.node.position.y + 50, tv.node.position.z);\r\n this.targetPos = tp;\r\n }\r\n this.dir();\r\n let dis:number = 0;\r\n if (this.moveType == MOVETYPE.ANGER && this.bulletType != 1) {\r\n //旋转角度转化为弧度\r\n let angle = (90 - this.node.angle) * 2 / 360 * Math.PI;\r\n //计算基于Y轴的方向向量\r\n let dir = new Vec3(Math.sin(angle), Math.cos(angle), 0);\r\n //方向向量进行单位化\r\n dir.normalize();\r\n //根据方向向量移动位置\r\n let v3_dis = new Vec3(dt * dir.x * this.speed, dt * dir.y * this.speed, dt * dir.z * this.speed);\r\n this.node.setPosition(this.node.position.add(v3_dis));\r\n } else {\r\n dis = this.speed * dt;\r\n let _x:number = this.pos_end.x * dis;\r\n let _y:number = this.pos_end.y * dis;\r\n let v3:Vec3 = this.node.position;\r\n v3.x += _x;\r\n v3.y += _y;\r\n this.node.setPosition(v3);\r\n }\r\n if (Vec3.distance(this.node.position, this.pos_start) >= this.distance) {\r\n // 删除\r\n this.pos_end = this.pos_start;\r\n\r\n this.targetPos.x = this.pos_start.x;\r\n this.targetPos.y = this.pos_start.y;\r\n\r\n if(!this.isBack){\r\n this.canCollision = true;\r\n }\r\n this.isBack = true;\r\n // this.removeSelf();\r\n }\r\n if(this.isBack){\r\n if(Vec3.distance(this.node.position, this.pos_start) <= 10){\r\n this.removeSelf();\r\n }\r\n }\r\n } else {\r\n this.removeSelf();\r\n }\r\n \r\n }\r\n /** 计算子弹飞行方向 */\r\n protected dir(ndangle: number = 0) {\r\n if (this.targetPos == null) return;\r\n if(this.beginTarget.x == 0 && this.beginTarget.y == 0){\r\n this.beginTarget.x = this.targetPos.x;\r\n this.beginTarget.y = this.targetPos.y;\r\n }\r\n // 目标点\r\n let p: Vec3;\r\n let rg: Vec3;\r\n p = new Vec3(this.targetPos.x, this.targetPos.y, this.targetPos.z);\r\n let { x, y, z } = p.subtract(this.node.position).normalize();\r\n this.pos_end = new Vec3(x, y, z);\r\n if (this.rotate == '1') {\r\n if(this.isBack){\r\n let angel: number = Vec3Util.lootAt(this.beginTarget, this.targetPos);\r\n if(this.beginTarget.y < this.targetPos.y){\r\n // this.node.angle = 180 - (angel + ndangle)*-1;\r\n this.node.angle = 180 - (angel + ndangle);\r\n }else{\r\n // this.node.angle = (angel + ndangle) - 180;\r\n this.node.angle = (angel + ndangle) - 180;\r\n }\r\n if(this.beginTarget.x < this.targetPos.x){\r\n this.node.scale = new Vec3(1 , 1 , 1);\r\n }else{\r\n this.node.scale = new Vec3(1 , 1 , 1);\r\n }\r\n this.moveType = MOVETYPE.ANGER;\r\n }else{\r\n let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPos);\r\n if(this.pos_start.y >= this.targetPos.y){\r\n this.node.angle = 180 - (angel + ndangle);\r\n }else{\r\n this.node.angle = (angel + ndangle) - 180;\r\n }\r\n if(this.pos_start.x >= this.targetPos.x){\r\n this.node.scale = new Vec3(1 , 1 , 1);\r\n }else{\r\n this.node.scale = new Vec3(1 , 1 , 1);\r\n }\r\n this.moveType = MOVETYPE.ANGER;\r\n }\r\n } else {\r\n this.moveType = MOVETYPE.LINE;\r\n }\r\n }\r\n onCollisionEnter(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {\r\n // super.onCollisionEnter(selfCollider , otherCollider,contact)\r\n \r\n var rv = otherCollider.node.getComponent(BaseRole);\r\n if (rv) {\r\n this.onCollisionFun(rv);\r\n }\r\n }\r\n onFollowFun(target: BaseRole) {\r\n super.onFollowFun(target)\r\n }\r\n onCollisionFun(target: BaseRole): boolean {\r\n if(this.caster.gebolinMapType != target.gebolinMapType){\r\n return;\r\n }\r\n let cb = false;\r\n if(target instanceof BaseRole){\r\n if(Operate.inFriendType(this.caster , target , this.skill) && this.inOpenType(target , this.skill)){\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n target.showHit(this.skill);\r\n return cb;\r\n }\r\n }\r\n }\r\n private inOpenType(role: BaseRole , skill:Skill):boolean{\r\n return skill.SkillModel.table.shengxiao.indexOf(role.RoleType) >= 0;\r\n \r\n }\r\n \r\n calcDamage(target: BaseRole): EffectDamage {\r\n let fixedge = 0;\r\n // 计算基准目标\r\n fixedge = 1;\r\n let param: SkillCfgRecord = {\r\n skilllier: 1,\r\n /**技能固伤*/\r\n fixedge: fixedge,\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n var effect = RoleAttack.normal(this.caster, target, this.skill, param,1);\r\n return effect;\r\n }\r\n /** 移除自己 */\r\n protected removeSelf() {\r\n this.beginTarget = new Vec3();\r\n this.isBack = false;\r\n super.removeSelf();\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { CollisionType, GameCollision2D } from \"./GameCollision2D\";\r\nimport { Skill } from \"./Skill\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { MOVETYPE, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { Collider2D } from \"cc\";\r\nimport { IPhysics2DContact } from \"cc\";\r\nimport { EffectSingleCase } from \"./EffectSingleCase\";\r\nimport { EffectDamage } from \"./SkillInterface\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { RoleAttack } from \"./RoleAttack\";\r\nimport { BulletView } from \"./BulletView\";\r\nimport { Operate } from \"./Operate\";\r\n\r\n/** 飞弹类特效抽象类 */\r\nexport abstract class BulletZhiView extends BulletView {\r\n onLoad() {\r\n super.onLoad();\r\n }\r\n initBullet() {\r\n super.initBullet();\r\n }\r\n /** 发射 */\r\n launch(ndangle: number = 0) {\r\n super.launch(ndangle)\r\n }\r\n /** 飞弹移动动画 */\r\n update(dt: number) {\r\n if (this.target == null) {\r\n this.removeSelf();\r\n return;\r\n }\r\n let tv = this.target;\r\n if (tv && tv.node) {\r\n if(this.skill.SkillModel.table.isNomAttack){\r\n let tp = new Vec3(tv.node.position.x, tv.node.position.y + 50, tv.node.position.z);\r\n this.targetPos = tp;\r\n }\r\n this.dir();\r\n let dis:number = 0;\r\n if (this.moveType == MOVETYPE.ANGER && this.bulletType != 1) {\r\n //旋转角度转化为弧度\r\n let angle = (90 - this.node.angle) * 2 / 360 * Math.PI;\r\n //计算基于Y轴的方向向量\r\n let dir = new Vec3(Math.sin(angle), Math.cos(angle), 0);\r\n //方向向量进行单位化\r\n dir.normalize();\r\n //根据方向向量移动位置\r\n let v3_dis = new Vec3(dt * dir.x * this.speed, dt * dir.y * this.speed, dt * dir.z * this.speed);\r\n this.node.setPosition(this.node.position.add(v3_dis));\r\n } else {\r\n dis = this.speed * dt;\r\n let _x:number = this.pos_end.x * dis;\r\n let _y:number = this.pos_end.y * dis;\r\n let v3:Vec3 = this.node.position;\r\n v3.x += _x;\r\n v3.y += _y;\r\n this.node.setPosition(v3);\r\n }\r\n if (Vec3.distance(this.node.position, this.pos_start) >= this.distance) {\r\n // 删除\r\n \r\n this.removeSelf();\r\n }\r\n } else {\r\n this.removeSelf();\r\n }\r\n \r\n }\r\n /** 计算子弹飞行方向 */\r\n protected dir(ndangle: number = 0) {\r\n if (this.targetPos == null) return;\r\n // 目标点\r\n let p: Vec3;\r\n let rg: Vec3;\r\n p = new Vec3(this.targetPos.x, this.targetPos.y, this.targetPos.z);\r\n let { x, y, z } = p.subtract(this.node.position).normalize();\r\n this.pos_end = new Vec3(x, y, z);\r\n if (this.rotate == '1') {\r\n let angel: number = Vec3Util.lootAt(this.pos_start, this.targetPos);\r\n if(this.pos_start.y >= this.targetPos.y){\r\n this.node.angle = 180 - (angel + ndangle)*-1;\r\n }else{\r\n this.node.angle = (angel + ndangle) - 180;\r\n }\r\n this.moveType = MOVETYPE.ANGER;\r\n } else {\r\n this.moveType = MOVETYPE.LINE;\r\n }\r\n }\r\n onCollisionEnter(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {\r\n // super.onCollisionEnter(selfCollider , otherCollider,contact)\r\n var rv = otherCollider.node.getComponent(BaseRole);\r\n if (rv) {\r\n this.onCollisionFun(rv);\r\n }\r\n }\r\n onFollowFun(target: BaseRole) {\r\n super.onFollowFun(target)\r\n }\r\n onCollisionFun(target: BaseRole): boolean {\r\n if(this.caster.gebolinMapType != target.gebolinMapType){\r\n return;\r\n }\r\n let cb = false;\r\n if(target instanceof BaseRole){\r\n if(Operate.inFriendType(this.caster , target , this.skill) && this.inOpenType(target , this.skill)){\r\n if (target.isDie || this.skill == null || this.skill.SkillModel == null) return;\r\n var attack = this.calcDamage(target);\r\n this.skill.SkillModel.animator.onRoleHit({ target: target, effect: attack, caster: this.caster }, this.caster);\r\n target.showHit(this.skill);\r\n return cb;\r\n }\r\n }\r\n }\r\n private inOpenType(role: BaseRole , skill:Skill):boolean{\r\n return skill.SkillModel.table.shengxiao.indexOf(role.RoleType) >= 0;\r\n \r\n }\r\n \r\n calcDamage(target: BaseRole): EffectDamage {\r\n let fixedge = 0;\r\n // 计算基准目标\r\n fixedge = 1;\r\n let param: SkillCfgRecord = {\r\n skilllier: 1,\r\n /**技能固伤*/\r\n fixedge: fixedge,\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n\r\n var effect = RoleAttack.normal(this.caster, target, this.skill, param,1);\r\n return effect;\r\n }\r\n /** 移除自己 */\r\n protected removeSelf() {\r\n super.removeSelf();\r\n }\r\n}","import { _decorator, Node, Tween, tween } from 'cc';\nconst { ccclass, property } = _decorator;\n\nimport Component from \"../../core/component/Component\";\nimport BusyLoadingManager, { BUSY_TYPE } from \"../../core/manager/BusyLoadingManager\";\nimport { UIOpacity } from 'cc';\n\n@ccclass('BusyLoading')\nexport default class BusyLoading extends Component {\n node_net: Node | null = null;\n node_res: Node | null = null;\n setType(t: BUSY_TYPE) {\n this.node_net = this.node.getChildByName(\"node_net\")\n this.node_res = this.node.getChildByName(\"node_res\")\n if (t == BUSY_TYPE.SHORT) {\n this.node_net.getComponent(UIOpacity).opacity = 0;\n this.node_res.getComponent(UIOpacity).opacity = 0;\n Tween.stopAllByTarget(this.node_net);\n this.node_net.getComponent(UIOpacity).opacity =255;\n tween(this.node_net).delay(2).to(0.1, {}).delay(15).call(() => {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT);\n }).start()\n }\n else {\n this.node_net.getComponent(UIOpacity).opacity = 0;\n this.node_res.getComponent(UIOpacity).opacity = 255;\n }\n }\n\n net_loading: Node | null = null;\n update() {\n if (this.net_loading) this.net_loading.angle += 5;\n }\n}","import { _decorator, Node, Prefab, instantiate, Label, isValid, warn, UIOpacity } from 'cc';\nimport Utils from \"../utils/Utils\";\nimport WindowManager, { UILayer } from \"./WindowManager\";\nimport { UITransform } from 'cc';\nimport BusyLoading from '../../modules/common/BusyLoading';\nimport { Logger } from '../../../core/common/log/Logger';\nexport enum BUSY_TYPE {\n SHORT,//短时间\n LONG//长时间\n}\nexport var BusyNetBegin = () => {\n BusyLoadingManager.ins.addBusy(BUSY_TYPE.SHORT);\n}\nexport var BusyNetDone = () => {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT);\n}\nexport var BusyResourcetBegin = () => {\n BusyLoadingManager.ins.addBusy(BUSY_TYPE.SHORT);\n}\nexport var BusyResourceDone = () => {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT);\n}\n\nexport default class BusyLoadingManager {\n private static instance = null;\n private busyMap: Map = new Map();\n private loadingUI: Node;\n private timerID: number = null\n private delay: number = 200//延迟显示\n constructor() {\n\n }\n public static get ins(): BusyLoadingManager {\n if (BusyLoadingManager.instance == null) {\n BusyLoadingManager.instance = new BusyLoadingManager();\n }\n return BusyLoadingManager.instance;\n }\n public init() {\n Utils.loadResUIOnly('prefabs/BusyLoading', 'loading', Prefab, (err, res: Prefab) => {\n res.addRef();\n this.loadingUI = instantiate(res)\n })\n }\n public addBusy(type: BUSY_TYPE, lable: string = \"\") {\n Logger.logView(\"addBusy\");\n if (this.loadingUI == null) {\n Logger.logView(\"loadingUI null\");\n this.init()\n return\n }\n\n if (lable == \"\") {\n if (type == BUSY_TYPE.SHORT) {\n lable = \"请稍后...\";\n }\n else {\n lable = \"正在加载资源...\";\n }\n }\n this.loadingUI.getComponent(BusyLoading).setType(type)\n this.loadingUI.getComponentInChildren(Label).string = lable;\n\n let count = this.busyMap.get(type)\n if (count)\n this.busyMap.set(type, count + 1)\n else\n this.busyMap.set(type, 1)\n this.checkBusy()\n\n }\n public removeBusy(type: BUSY_TYPE) {\n let count = this.busyMap.get(type)\n if (count)\n this.busyMap.set(type, count - 1)\n // else\n // cc.warn('remove busy error', type)\n this.checkBusy()\n }\n public checkBusy() {\n if (this.loadingUI == null || !isValid(this.loadingUI)) {\n this.init()\n return\n }\n var count = this.getBusyCount()\n if (count > 0) {\n let self = this;\n let onTimerEnd = () => {\n let curCnt = this.getBusyCount()\n if (curCnt > 0) {\n self.loadingUI.getComponent(UIOpacity).opacity = 255;\n self.updateTips();\n } else {\n warn('timeout end waitcnt is 0')\n }\n this.timerID = null;\n }\n if (this.timerID) {\n clearTimeout(this.timerID);\n // this.timerID = setTimeout(onTimerEnd, this.delay);\n } else {\n if (this.loadingUI.parent) {\n this.updateTips();\n } else {\n this.loadingUI.getComponent(UIOpacity).opacity = 0;\n this.loadingUI.parent = WindowManager.Instance().getLayer(UILayer.最顶层);\n // this.timerID = setTimeout(onTimerEnd, this.delay);\n }\n }\n } else {\n if (this.timerID) {\n clearTimeout(this.timerID);\n this.timerID = 0;\n }\n if (this.loadingUI.parent) {\n this.loadingUI.removeFromParent();\n }\n }\n }\n private updateTips() {\n\n }\n private getBusyCount() {\n let c = 0;\n this.busyMap.forEach((v, k) => {\n c += v;\n })\n return c;\n }\n}\n","import { Node } from \"cc\";\r\nimport { AudioClip } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { AudioManager } from \"../../../audio/AudioManager\";\r\nimport { SoundManager } from \"../../../core/utils/SoundManager\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"ButtonMusic\")\r\nexport class ButtonMusic extends Component{\r\n // @property(AudioClip)\r\n // mp3:AudioClip = null;\r\n onLoad(){\r\n this.node.on(Node.EventType.TOUCH_START , this.onClick , this);\r\n }\r\n private onClick(){\r\n // SoundManager.getInstance().playEffectMp3(this.mp3);\r\n }\r\n}","/**\r\n *

Byte 类提供用于优化读取、写入以及处理二进制数据的方法和属性。

\r\n *

Byte 类适用于需要在字节层访问数据的高级开发人员。

\r\n */\r\n\r\nimport { _decorator } from 'cc';\r\nexport class ByteUtils {\r\n /**\r\n *

主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 getSystemEndian 可以获取当前系统的字节序。

\r\n *

BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。
\r\n * LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。

\r\n */\r\n static BIG_ENDIAN: string = \"bigEndian\";\r\n /**\r\n *

主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 getSystemEndian 可以获取当前系统的字节序。

\r\n *

LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。
\r\n * BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。

\r\n */\r\n static LITTLE_ENDIAN: string = \"littleEndian\";\r\n /**@private */\r\n private static _sysEndian: string = null;\r\n /**@private 是否为小端数据。*/\r\n protected _xd_: boolean = true;\r\n /**@private */\r\n private _allocated_: number = 8;\r\n /**@private 原始数据。*/\r\n protected _d_: DataView\r\n /**@private DataView*/\r\n _u8d_: Uint8Array;\r\n /**@private */\r\n _pos_: number = 0;\r\n /**@private */\r\n protected _length: number = 0;\r\n public shareBuff = false;\r\n\r\n /**\r\n *

获取当前主机的字节序。

\r\n *

主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。

\r\n *

BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。
\r\n * LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。

\r\n * @return 当前系统的字节序。\r\n */\r\n static getSystemEndian(): string {\r\n if (!ByteUtils._sysEndian) {\r\n var buffer: any = new ArrayBuffer(2);\r\n new DataView(buffer).setInt16(0, 256, true);\r\n ByteUtils._sysEndian = (new Int16Array(buffer))[0] === 256 ? ByteUtils.LITTLE_ENDIAN : ByteUtils.BIG_ENDIAN;\r\n }\r\n return ByteUtils._sysEndian;\r\n }\r\n\r\n oriB: any;\r\n /**\r\n * 创建一个 Byte 类的实例。\r\n * @param\tdata\t用于指定初始化的元素数目,或者用于初始化的TypedArray对象、ArrayBuffer对象。如果为 null ,则预分配一定的内存空间,当可用空间不足时,优先使用这部分内存,如果还不够,则重新分配所需内存。\r\n */\r\n constructor(data: any = null, share = false) {\r\n this.oriB = data;\r\n if (share) {\r\n data = data.buffer;\r\n }\r\n if (data) {\r\n this._u8d_ = new Uint8Array(data);\r\n this._d_ = new DataView(this._u8d_.buffer);\r\n this._length = this._d_.byteLength;\r\n } else {\r\n this._resizeBuffer(this._allocated_);\r\n }\r\n }\r\n\r\n /**\r\n * 获取此对象的 ArrayBuffer 数据,数据只包含有效数据部分。\r\n */\r\n get buffer(): ArrayBuffer {\r\n var rstBuffer: ArrayBuffer = this._d_.buffer;\r\n if (rstBuffer.byteLength === this._length) return rstBuffer;\r\n return rstBuffer.slice(0, this._length);\r\n }\r\n\r\n /**\r\n *

Byte 实例的字节序。取值为:BIG_ENDIANBIG_ENDIAN

\r\n *

主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 getSystemEndian 可以获取当前系统的字节序。

\r\n *

BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。
\r\n * LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。

\r\n */\r\n get endian(): string {\r\n return this._xd_ ? ByteUtils.LITTLE_ENDIAN : ByteUtils.BIG_ENDIAN;\r\n }\r\n\r\n set endian(value: string) {\r\n this._xd_ = (value === ByteUtils.LITTLE_ENDIAN);\r\n }\r\n\r\n /**\r\n *

Byte 对象的长度(以字节为单位)。

\r\n *

如果将长度设置为大于当前长度的值,则用零填充字节数组的右侧;如果将长度设置为小于当前长度的值,将会截断该字节数组。

\r\n *

如果要设置的长度大于当前已分配的内存空间的字节长度,则重新分配内存空间,大小为以下两者较大者:要设置的长度、当前已分配的长度的2倍,并将原有数据拷贝到新的内存空间中;如果要设置的长度小于当前已分配的内存空间的字节长度,也会重新分配内存空间,大小为要设置的长度,并将原有数据从头截断为要设置的长度存入新的内存空间中。

\r\n */\r\n set length(value: number) {\r\n if (this._allocated_ < value) this._resizeBuffer(this._allocated_ = Math.floor(Math.max(value, this._allocated_ * 2)));\r\n else if (this._allocated_ > value) this._resizeBuffer(this._allocated_ = value);\r\n this._length = value;\r\n }\r\n\r\n get length(): number {\r\n return this._length;\r\n }\r\n\r\n /**@private */\r\n private _resizeBuffer(len: number): void {\r\n try {\r\n var newByteView: any = new Uint8Array(len);\r\n if (this._u8d_ != null) {\r\n if (this._u8d_.length <= len) newByteView.set(this._u8d_);\r\n else newByteView.set(this._u8d_.subarray(0, len));\r\n }\r\n this._u8d_ = newByteView;\r\n this._d_ = new DataView(newByteView.buffer);\r\n } catch (err) {\r\n throw \"Invalid typed array length:\" + len;\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n *

常用于解析固定格式的字节流。

\r\n *

先从字节流的当前字节偏移位置处读取一个 Uint16 值,然后以此值为长度,读取此长度的字符串。

\r\n * @return 读取的字符串。\r\n */\r\n getString(): string {\r\n return this.readString();\r\n }\r\n\r\n /**\r\n *

常用于解析固定格式的字节流。

\r\n *

先从字节流的当前字节偏移位置处读取一个 Uint16 值,然后以此值为长度,读取此长度的字符串。

\r\n * @return 读取的字符串。\r\n */\r\n readString(): string {\r\n return this._rUTF(this.getUint16());\r\n }\r\n\r\n /**\r\n * @private\r\n *

从字节流中 start 参数指定的位置开始,读取 len 参数指定的字节数的数据,用于创建一个 Float32Array 对象并返回此对象。

\r\n *

注意:返回的 Float32Array 对象,在 JavaScript 环境下,是原生的 HTML5 Float32Array 对象,对此对象的读取操作都是基于运行此程序的当前主机字节序,此顺序可能与实际数据的字节序不同,如果使用此对象进行读取,需要用户知晓实际数据的字节序和当前主机字节序,如果相同,可正常读取,否则需要用户对实际数据(Float32Array.buffer)包装一层 DataView ,使用 DataView 对象可按照指定的字节序进行读取。

\r\n * @param\tstart\t开始位置。\r\n * @param\tlen\t\t需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。\r\n * @return 读取的 Float32Array 对象。\r\n */\r\n getFloat32Array(start: number, len: number): any {\r\n return this.readFloat32Array(start, len);\r\n }\r\n\r\n /**\r\n * 从字节流中 start 参数指定的位置开始,读取 len 参数指定的字节数的数据,用于创建一个 Float32Array 对象并返回此对象。\r\n * @param\tstart\t开始位置。\r\n * @param\tlen\t\t需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。\r\n * @return 读取的 Float32Array 对象。\r\n */\r\n readFloat32Array(start: number, len: number): any {\r\n var end: number = start + len;\r\n end = (end > this._length) ? this._length : end;\r\n var v: any = new Float32Array(this._d_.buffer.slice(start, end));\r\n this._pos_ = end;\r\n return v;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流中 start 参数指定的位置开始,读取 len 参数指定的字节数的数据,用于创建一个 Uint8Array 对象并返回此对象。\r\n * @param\tstart\t开始位置。\r\n * @param\tlen\t\t需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。\r\n * @return 读取的 Uint8Array 对象。\r\n */\r\n getUint8Array(start: number, len: number): Uint8Array {\r\n return this.readUint8Array(start, len);\r\n }\r\n\r\n /**\r\n * 从字节流中 start 参数指定的位置开始,读取 len 参数指定的字节数的数据,用于创建一个 Uint8Array 对象并返回此对象。\r\n * @param\tstart\t开始位置。\r\n * @param\tlen\t\t需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。\r\n * @return 读取的 Uint8Array 对象。\r\n */\r\n readUint8Array(start: number, len: number): Uint8Array {\r\n var end: number = start + len;\r\n end = (end > this._length) ? this._length : end;\r\n var v: any = new Uint8Array(this._d_.buffer.slice(start, end));\r\n this._pos_ = end;\r\n return v;\r\n }\r\n\r\n /**\r\n * @private\r\n *

从字节流中 start 参数指定的位置开始,读取 len 参数指定的字节数的数据,用于创建一个 Int16Array 对象并返回此对象。

\r\n *

注意:返回的 Int16Array 对象,在 JavaScript 环境下,是原生的 HTML5 Int16Array 对象,对此对象的读取操作都是基于运行此程序的当前主机字节序,此顺序可能与实际数据的字节序不同,如果使用此对象进行读取,需要用户知晓实际数据的字节序和当前主机字节序,如果相同,可正常读取,否则需要用户对实际数据(Int16Array.buffer)包装一层 DataView ,使用 DataView 对象可按照指定的字节序进行读取。

\r\n * @param\tstart\t开始读取的字节偏移量位置。\r\n * @param\tlen\t\t需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。\r\n * @return 读取的 Int16Array 对象。\r\n */\r\n getInt16Array(start: number, len: number): any {\r\n return this.readInt16Array(start, len);\r\n }\r\n\r\n /**\r\n * 从字节流中 start 参数指定的位置开始,读取 len 参数指定的字节数的数据,用于创建一个 Int16Array 对象并返回此对象。\r\n * @param\tstart\t开始读取的字节偏移量位置。\r\n * @param\tlen\t\t需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。\r\n * @return 读取的 Uint8Array 对象。\r\n */\r\n readInt16Array(start: number, len: number): any {\r\n var end: number = start + len;\r\n end = (end > this._length) ? this._length : end;\r\n var v: any = new Int16Array(this._d_.buffer.slice(start, end));\r\n this._pos_ = end;\r\n return v;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。\r\n * @return 单精度(32 位)浮点数。\r\n */\r\n getFloat32(): number {\r\n return this.readFloat32();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。\r\n * @return 单精度(32 位)浮点数。\r\n */\r\n readFloat32(): number {\r\n if (this._pos_ + 4 > this._length) throw \"getFloat32 error - Out of bounds\";\r\n var v: number = this._d_.getFloat32(this._pos_, this._xd_);\r\n this._pos_ += 4;\r\n return v;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。\r\n * @return 双精度(64 位)浮点数。\r\n */\r\n getFloat64(): number {\r\n return this.readFloat64();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。\r\n * @return 双精度(64 位)浮点数。\r\n */\r\n readFloat64(): number {\r\n if (this._pos_ + 8 > this._length) throw \"getFloat64 error - Out of bounds\";\r\n var v: number = this._d_.getFloat64(this._pos_, this._xd_);\r\n this._pos_ += 8;\r\n return v;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 单精度(32 位)浮点数。\r\n * @param\tvalue\t单精度(32 位)浮点数。\r\n */\r\n writeFloat32(value: number): void {\r\n this._ensureWrite(this._pos_ + 4);\r\n this._d_.setFloat32(this._pos_, value, this._xd_);\r\n this._pos_ += 4;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 双精度(64 位)浮点数。\r\n * @param\tvalue\t双精度(64 位)浮点数。\r\n */\r\n writeFloat64(value: number): void {\r\n this._ensureWrite(this._pos_ + 8);\r\n this._d_.setFloat64(this._pos_, value, this._xd_);\r\n this._pos_ += 8;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Int32 值。\r\n * @return Int32 值。\r\n */\r\n getInt32(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Int32 值。\r\n * @return Int32 值。\r\n */\r\n readInt32(): number {\r\n if (this._pos_ + 4 > this._length) throw \"getInt32 error - Out of bounds\";\r\n var float: number = this._d_.getInt32(this._pos_, this._xd_);\r\n this._pos_ += 4;\r\n return float;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint32 值。\r\n * @return Uint32 值。\r\n */\r\n getUint32(): number {\r\n return this.readUint32();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint32 值。\r\n * @return Uint32 值。\r\n */\r\n readUint32(): number {\r\n if (this._pos_ + 4 > this._length) throw \"getUint32 error - Out of bounds\";\r\n var v: number = this._d_.getUint32(this._pos_, this._xd_);\r\n this._pos_ += 4;\r\n return v;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Int32 值。\r\n * @param\tvalue\t需要写入的 Int32 值。\r\n */\r\n writeInt32(value: number): void {\r\n this._ensureWrite(this._pos_ + 4);\r\n this._d_.setInt32(this._pos_, value, this._xd_);\r\n this._pos_ += 4;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入 Uint32 值。\r\n * @param\tvalue\t需要写入的 Uint32 值。\r\n */\r\n writeUint32(value: number): void {\r\n this._ensureWrite(this._pos_ + 4);\r\n this._d_.setUint32(this._pos_, value, this._xd_);\r\n this._pos_ += 4;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Int16 值。\r\n * @return Int16 值。\r\n */\r\n getInt16(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Int16 值。\r\n * @return Int16 值。\r\n */\r\n readInt16(): number {\r\n if (this._pos_ + 2 > this._length) throw \"getInt16 error - Out of bounds\";\r\n var us: number = this._d_.getInt16(this._pos_, this._xd_);\r\n this._pos_ += 2;\r\n return us;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint16 值。\r\n * @return Uint16 值。\r\n */\r\n getUint16(): number {\r\n return this.readUint16();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint16 值。\r\n * @return Uint16 值。\r\n */\r\n readUint16(): number {\r\n if (this._pos_ + 2 > this._length) throw \"getUint16 error - Out of bounds\";\r\n var us: number = this._d_.getUint16(this._pos_, this._xd_);\r\n this._pos_ += 2;\r\n return us;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Uint16 值。\r\n * @param\tvalue\t需要写入的Uint16 值。\r\n */\r\n writeUint16(value: number): void {\r\n this._ensureWrite(this._pos_ + 2);\r\n this._d_.setUint16(this._pos_, value, this._xd_);\r\n this._pos_ += 2;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Int16 值。\r\n * @param\tvalue\t需要写入的 Int16 值。\r\n */\r\n writeInt16(value: number): void {\r\n this._ensureWrite(this._pos_ + 2);\r\n this._d_.setInt16(this._pos_, value, this._xd_);\r\n this._pos_ += 2;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint8 值。\r\n * @return Uint8 值。\r\n */\r\n getUint8(): number {\r\n return this.readUint8();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint8 值。\r\n * @return Uint8 值。\r\n */\r\n readUint8(): number {\r\n if (this._pos_ + 1 > this._length) throw \"getUint8 error - Out of bounds\";\r\n return this._u8d_[this._pos_++];\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Uint8 值。\r\n * @param\tvalue\t需要写入的 Uint8 值。\r\n */\r\n writeUint8(value: number): void {\r\n this._ensureWrite(this._pos_ + 1);\r\n this._d_.setUint8(this._pos_, value);\r\n this._pos_++;\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint8 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint8 值。\r\n */\r\n //TODO:coverage\r\n _getUInt8(pos: number): number {\r\n return this._readUInt8(pos);\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint8 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint8 值。\r\n */\r\n //TODO:coverage\r\n _readUInt8(pos: number): number {\r\n return this._d_.getUint8(pos);\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint16 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint16 值。\r\n */\r\n //TODO:coverage\r\n _getUint16(pos: number): number {\r\n return this._readUint16(pos);\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint16 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint16 值。\r\n */\r\n //TODO:coverage\r\n _readUint16(pos: number): number {\r\n return this._d_.getUint16(pos, this._xd_);\r\n }\r\n\r\n /**\r\n * @private\r\n * 读取指定长度的 UTF 型字符串。\r\n * @param\tlen 需要读取的长度。\r\n * @return 读取的字符串。\r\n */\r\n private _rUTF(len: number): string {\r\n var v: string = \"\", max: number = this._pos_ + len, c: number, c2: number, c3: number, f: Function = String.fromCharCode;\r\n var u: any = this._u8d_, i: number = 0;\r\n var strs: any[] = [];\r\n var n: number = 0;\r\n strs.length = 1000;\r\n while (this._pos_ < max) {\r\n c = u[this._pos_++];\r\n if (c < 0x80) {\r\n if (c != 0)\r\n //v += f(c);\\\r\n strs[n++] = f(c);\r\n } else if (c < 0xE0) {\r\n //v += f(((c & 0x3F) << 6) | (u[_pos_++] & 0x7F));\r\n strs[n++] = f(((c & 0x3F) << 6) | (u[this._pos_++] & 0x7F));\r\n } else if (c < 0xF0) {\r\n c2 = u[this._pos_++];\r\n //v += f(((c & 0x1F) << 12) | ((c2 & 0x7F) << 6) | (u[_pos_++] & 0x7F));\r\n strs[n++] = f(((c & 0x1F) << 12) | ((c2 & 0x7F) << 6) | (u[this._pos_++] & 0x7F));\r\n } else {\r\n c2 = u[this._pos_++];\r\n c3 = u[this._pos_++];\r\n //v += f(((c & 0x0F) << 18) | ((c2 & 0x7F) << 12) | ((c3 << 6) & 0x7F) | (u[_pos_++] & 0x7F));\r\n const _code = ((c & 0x0F) << 18) | ((c2 & 0x7F) << 12) | ((c3 & 0x7F) << 6) | (u[this._pos_++] & 0x7F);\r\n if (_code >= 0x10000) {\r\n const _offset = _code - 0x10000;\r\n const _lead = 0xd800 | (_offset >> 10);\r\n const _trail = 0xdc00 | (_offset & 0x3ff);\r\n strs[n++] = f(_lead);\r\n strs[n++] = f(_trail);\r\n }\r\n else {\r\n strs[n++] = f(_code);\r\n }\r\n }\r\n i++;\r\n }\r\n strs.length = n;\r\n return strs.join('');\r\n //return v;\r\n }\r\n\r\n /**\r\n * @private\r\n * 读取 len 参数指定的长度的字符串。\r\n * @param\tlen\t要读取的字符串的长度。\r\n * @return 指定长度的字符串。\r\n */\r\n //TODO:coverage\r\n getCustomString(len: number): string {\r\n return this.readCustomString(len);\r\n }\r\n\r\n /**\r\n * @private\r\n * 读取 len 参数指定的长度的字符串。\r\n * @param\tlen\t要读取的字符串的长度。\r\n * @return 指定长度的字符串。\r\n */\r\n //TODO:coverage\r\n readCustomString(len: number): string {\r\n var v: string = \"\", ulen: number = 0, c: number, c2: number, f: Function = String.fromCharCode;\r\n var u: any = this._u8d_, i: number = 0;\r\n while (len > 0) {\r\n c = u[this._pos_];\r\n if (c < 0x80) {\r\n v += f(c);\r\n this._pos_++;\r\n len--;\r\n } else {\r\n ulen = c - 0x80;\r\n this._pos_++;\r\n len -= ulen;\r\n while (ulen > 0) {\r\n c = u[this._pos_++];\r\n c2 = u[this._pos_++];\r\n v += f((c2 << 8) | c);\r\n ulen--;\r\n }\r\n }\r\n }\r\n\r\n return v;\r\n }\r\n\r\n /**\r\n * 移动或返回 Byte 对象的读写指针的当前位置(以字节为单位)。下一次调用读取方法时将在此位置开始读取,或者下一次调用写入方法时将在此位置开始写入。\r\n */\r\n get pos(): number {\r\n return this._pos_;\r\n }\r\n\r\n set pos(value: number) {\r\n this._pos_ = value;\r\n //$MOD byteOffset是只读的,这里进行赋值没有意义。\r\n //_d_.byteOffset = value;\r\n }\r\n\r\n /**\r\n * 可从字节流的当前位置到末尾读取的数据的字节数。\r\n */\r\n get bytesAvailable(): number {\r\n return this._length - this._pos_;\r\n }\r\n\r\n /**\r\n * 清除字节数组的内容,并将 length 和 pos 属性重置为 0。调用此方法将释放 Byte 实例占用的内存。\r\n */\r\n clear(): void {\r\n this._pos_ = 0;\r\n this.length = 0;\r\n }\r\n\r\n /**\r\n * @internal\r\n * 获取此对象的 ArrayBuffer 引用。\r\n * @return\r\n */\r\n __getBuffer(): ArrayBuffer {\r\n //this._d_.buffer.byteLength = this.length;\r\n return this._d_.buffer;\r\n }\r\n\r\n /**\r\n *

将 UTF-8 字符串写入字节流。类似于 writeUTF() 方法,但 writeUTFBytes() 不使用 16 位长度的字为字符串添加前缀。

\r\n *

对应的读取方法为: getUTFBytes 。

\r\n * @param value 要写入的字符串。\r\n */\r\n writeUTFBytes(value: string): void {\r\n // utf8-decode\r\n value = value + \"\";\r\n for (var i: number = 0, sz: number = value.length; i < sz; i++) {\r\n var c: number = value.charCodeAt(i);\r\n\r\n if (c <= 0x7F) {\r\n this.writeByte(c);\r\n } else if (c <= 0x7FF) {\r\n //优化为直接写入多个字节,而不必重复调用writeByte,免去额外的调用和逻辑开销。\r\n this._ensureWrite(this._pos_ + 2);\r\n this._u8d_.set([0xC0 | (c >> 6), 0x80 | (c & 0x3F)], this._pos_);\r\n this._pos_ += 2;\r\n } else if (c >= 0xD800 && c <= 0xDBFF) {\r\n i++;\r\n const c2 = value.charCodeAt(i);\r\n if (!Number.isNaN(c2) && c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n const _p1 = (c & 0x3FF) + 0x40;\r\n const _p2 = c2 & 0x3FF;\r\n\r\n const _b1 = 0xF0 | ((_p1 >> 8) & 0x3F);\r\n const _b2 = 0x80 | ((_p1 >> 2) & 0x3F);\r\n const _b3 = 0x80 | ((_p1 & 0x3) << 4) | ((_p2 >> 6) & 0xF);\r\n const _b4 = 0x80 | (_p2 & 0x3F);\r\n\r\n this._ensureWrite(this._pos_ + 4);\r\n this._u8d_.set([_b1, _b2, _b3, _b4], this._pos_);\r\n this._pos_ += 4;\r\n }\r\n } else if (c <= 0xFFFF) {\r\n this._ensureWrite(this._pos_ + 3);\r\n this._u8d_.set([0xE0 | (c >> 12), 0x80 | ((c >> 6) & 0x3F), 0x80 | (c & 0x3F)], this._pos_);\r\n this._pos_ += 3;\r\n } else {\r\n this._ensureWrite(this._pos_ + 4);\r\n this._u8d_.set([0xF0 | (c >> 18), 0x80 | ((c >> 12) & 0x3F), 0x80 | ((c >> 6) & 0x3F), 0x80 | (c & 0x3F)], this._pos_);\r\n this._pos_ += 4;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *

将 UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。

\r\n *

对应的读取方法为: getUTFString 。

\r\n * @param\tvalue 要写入的字符串值。\r\n */\r\n writeUTFString(value: string): void {\r\n var tPos: number = this.pos;\r\n this.writeUint16(1);\r\n this.writeUTFBytes(value);\r\n var dPos: number = this.pos - tPos - 2;\r\n //trace(\"writeLen:\",dPos,\"pos:\",tPos);\r\n this._d_.setUint16(tPos, dPos, this._xd_);\r\n }\r\n\r\n /**\r\n *

将 UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度(作为 32 位整数),然后写入表示字符串字符的字节。

\r\n * @param\tvalue 要写入的字符串值。\r\n */\r\n writeUTFString32(value: string): void {\r\n var tPos = this.pos;\r\n this.writeUint32(1);\r\n this.writeUTFBytes(value);\r\n var dPos = this.pos - tPos - 4;\r\n //trace(\"writeLen:\",dPos,\"pos:\",tPos);\r\n this._d_.setUint32(tPos, dPos, this._xd_);\r\n }\r\n\r\n /**\r\n * @private\r\n * 读取 UTF-8 字符串。\r\n * @return 读取的字符串。\r\n */\r\n readUTFString(): string {\r\n //var tPos:int = pos;\r\n //var len:int = getUint16();\r\n ////trace(\"readLen:\"+len,\"pos,\",tPos);\r\n let len = this.getUint16();\r\n console.log('len', len)\r\n return this.readUTFBytes(len);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n readUTFString32(): string {\r\n return this.readUTFBytes(this.getUint32());\r\n }\r\n\r\n /**\r\n *

从字节流中读取一个 UTF-8 字符串。假定字符串的前缀是一个无符号的短整型(以此字节表示要读取的长度)。

\r\n *

对应的写入方法为: writeUTFString 。

\r\n * @return 读取的字符串。\r\n */\r\n getUTFString(): string {\r\n return this.readUTFString();\r\n }\r\n\r\n /**\r\n * @private\r\n * 读字符串,必须是 writeUTFBytes 方法写入的字符串。\r\n * @param len\t要读的buffer长度,默认将读取缓冲区全部数据。\r\n * @return 读取的字符串。\r\n */\r\n readUTFBytes(len: number = -1): string {\r\n if (len === 0) return \"\";\r\n var lastBytes: number = this.bytesAvailable;\r\n if (len > lastBytes) throw \"readUTFBytes error - Out of bounds\";\r\n len = len > 0 ? len : lastBytes;\r\n return this._rUTF(len);\r\n }\r\n\r\n /**\r\n *

从字节流中读取一个由 length 参数指定的长度的 UTF-8 字节序列,并返回一个字符串。

\r\n *

一般读取的是由 writeUTFBytes 方法写入的字符串。

\r\n * @param len\t要读的buffer长度,默认将读取缓冲区全部数据。\r\n * @return 读取的字符串。\r\n */\r\n getUTFBytes(len: number = -1): string {\r\n return this.readUTFBytes(len);\r\n }\r\n\r\n /**\r\n *

在字节流中写入一个字节。

\r\n *

使用参数的低 8 位。忽略高 24 位。

\r\n * @param\tvalue\r\n */\r\n writeByte(value: number): void {\r\n this._ensureWrite(this._pos_ + 1);\r\n this._d_.setInt8(this._pos_, value);\r\n this._pos_ += 1;\r\n }\r\n\r\n /**\r\n *

从字节流中读取带符号的字节。

\r\n *

返回值的范围是从 -128 到 127。

\r\n * @return 介于 -128 和 127 之间的整数。\r\n */\r\n readByte(): number {\r\n if (this._pos_ + 1 > this._length) throw \"readByte error - Out of bounds\";\r\n return this._d_.getInt8(this._pos_++);\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流中读取带符号的字节。\r\n */\r\n getByte(): number {\r\n return this.readByte();\r\n }\r\n\r\n /**\r\n * @internal\r\n *

保证该字节流的可用长度不小于 lengthToEnsure 参数指定的值。

\r\n * @param\tlengthToEnsure\t指定的长度。\r\n */\r\n _ensureWrite(lengthToEnsure: number): void {\r\n if (this._length < lengthToEnsure) this._length = lengthToEnsure;\r\n if (this._allocated_ < lengthToEnsure) this.length = lengthToEnsure;\r\n }\r\n\r\n /**\r\n *

将指定 arraybuffer 对象中的以 offset 为起始偏移量, length 为长度的字节序列写入字节流。

\r\n *

如果省略 length 参数,则使用默认长度 0,该方法将从 offset 开始写入整个缓冲区;如果还省略了 offset 参数,则写入整个缓冲区。

\r\n *

如果 offset 或 length 小于0,本函数将抛出异常。

\r\n * @param\tarraybuffer\t需要写入的 Arraybuffer 对象。\r\n * @param\toffset\t\tArraybuffer 对象的索引的偏移量(以字节为单位)\r\n * @param\tlength\t\t从 Arraybuffer 对象写入到 Byte 对象的长度(以字节为单位)\r\n */\r\n writeArrayBuffer(arraybuffer: any, offset: number = 0, length: number = 0): void {\r\n if (offset < 0 || length < 0) throw \"writeArrayBuffer error - Out of bounds\";\r\n if (length == 0) length = arraybuffer.byteLength - offset;\r\n this._ensureWrite(this._pos_ + length);\r\n var uint8array: any = new Uint8Array(arraybuffer);\r\n this._u8d_.set(uint8array.subarray(offset, offset + length), this._pos_);\r\n this._pos_ += length;\r\n }\r\n\r\n /**\r\n * 读取ArrayBuffer数据\r\n * @param\tlength\r\n * @return\r\n */\r\n readArrayBuffer(length: number): ArrayBuffer {\r\n var rst: ArrayBuffer;\r\n rst = this._u8d_.buffer.slice(this._pos_, this._pos_ + length);\r\n this._pos_ = this._pos_ + length\r\n return rst;\r\n }\r\n}","import { _decorator } from 'cc';\nimport { Logger } from '../../core/common/log/Logger';\n\nexport class CallbackMgr {\n private static _Instance: CallbackMgr = null;\n private _nNextCallbackID = 100001;\n private _tCallbackMap: { [sSub: number]: Function } = {};\n private _tTempCallbackMap: { [sSub: number]: Function } = {};\n public static GetInstance(): CallbackMgr {\n if (this._Instance == null) {\n this._Instance = new CallbackMgr()\n }\n return this._Instance;\n }\n\n clear() {\n this._tCallbackMap = {};\n this._tTempCallbackMap = {};\n }\n\n public DoCallbackFunc(nID: number, result: { code: number, data?: any }) {\n if (nID == 0) {\n return;\n }\n let pTempCallFunc = this._tTempCallbackMap[nID];\n if (pTempCallFunc != null) {\n this._tTempCallbackMap[nID] = null;\n pTempCallFunc(result);\n return;\n }\n let pCallback = this._tCallbackMap[nID];\n if (pCallback != null) {\n pCallback(result);\n return;\n }\n }\n\n public Perm(callback: Function): number {\n let nId = this._nNextCallbackID += 1;\n this._tCallbackMap[nId] = callback;\n return nId;\n }\n\n public Temp(callback: Function): string {\n let nId = this._nNextCallbackID += 1;\n this._tTempCallbackMap[nId] = callback;\n Logger.logView(nId);\n return nId + \"\";\n }\n\n public RemovePerm(nID: number) {\n if (this._tCallbackMap[nID]) {\n this._tCallbackMap[nID] = null;\n }\n }\n}\nwindow['CallbackMgr'] = CallbackMgr.GetInstance();","/**\n * CampPoxy config配置文件\n */\nimport { c1300, s1300, c1301, s1301, c1302, s1302, c1405, s1405, p_build, p_army_equip } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\n@res_auto_bind()\nexport class CampPoxy {\n private static _inst: CampPoxy;\n public static get Inst(): CampPoxy {\n if (CampPoxy._inst == null) {\n CampPoxy._inst = new CampPoxy();\n }\n return CampPoxy._inst;\n }\n /***==========================建筑升级 配置表 数据存储============================== */\n public CampDataList: Camp[];\n @res_assign(\"Camp\")\n public InitCampConfig() {/***建筑升级属性配置表 */\n if (!this.CampDataList) {\n\n this.CampDataList = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Camp\")) {\n let item = ConfigManager.GetInstance().getValue(\"Camp\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.CampDataList.push(item);\n }\n }\n\n return this.CampDataList;\n }\n public GetCampById(buildId: number, level: number): Camp {\n if (!this.CampDataList) {\n this.InitCampConfig();\n }\n return this.CampDataList.find(element => element.buildId == buildId && element.level == level);\n\n }\n\n //获取最大等级数\n public GetCampMaxLvById(buildId: number) {\n if (!this.CampDataList) {\n this.InitCampConfig();\n }\n let count = 0;\n for (let i = 0; i < this.CampDataList.length; i++) {\n let data: Camp = this.CampDataList[i];\n if (data.buildId == buildId) {\n count++;\n }\n\n\n }\n return count;\n }\n\n //获取下一等级数数据\n public GetCampNextLvById(id: number, level: number) {\n if (!this.CampDataList) {\n this.InitCampConfig();\n }\n let MaxLevel = this.GetCampMaxLvById(id);\n if (level < MaxLevel) {\n return this.CampDataList.find(element => element.buildId == id && element.level == (level + 1));\n }\n return undefined;\n\n }\n\n\n\n /***==========================发送消息给服务器========================= */\n public SendC1300() {\n // 获取所有建筑信息\n var c1300: c1300 = {};\n send2client(\"c1300\", c1300);\n }\n\n public SendC1301(buildId: number) {\n // // 建筑手动解锁\n // console.log(\"Send1301:\" + buildId);\n var c1301: c1301 = { buildId: buildId };\n send2client(\"c1301\", c1301);\n }\n\n public SendC1302(buildId: number, index: number) {\n // 建筑升级\n var c1302: c1302 = { buildId: buildId, index: index };\n send2client(\"c1302\", c1302);\n }\n public SendC1405(type: number) {\n //获取某兵种某部位的装备列表\n var c1405: c1405 = { type: type };\n send2client(\"c1405\", c1405);\n }\n\n /***==========================服务器数据存储============================== */\n public buildMaps: Map = new Map(); //服务器返回 -已经锁建筑列表数据\n\n public equipMaps: Map = new Map();//服务器返回 -获取某兵种某部位的装备列表\n\n //临时数据\n public buildTypeLists: Number[] =\n [1, 2, 3, 4, 5, 11];\n public SetBuildMaps(buildList: p_build[]) {\n for (let i = 0; i < buildList.length; i++) {\n let data = buildList[i];\n this.buildMaps.set(data.buildId, data);\n }\n }\n public UpBuildMaps(buildList: p_build[]) {\n for (let i = 0; i < buildList.length; i++) {\n let data = buildList[i];\n var build: p_build;\n let oldBuild = this.buildMaps.get(buildList[i].buildId);\n if (oldBuild == undefined) {\n build = buildList[i];\n }\n else {\n build = oldBuild;\n build.lv1 = data.lv1;\n build.lv2 = data.lv2;\n }\n this.buildMaps.set(build.buildId, build);\n }\n }\n\n public SetEquipMaps(parmyequip: p_army_equip[]) {\n this.equipMaps.clear();\n if (parmyequip != null) {\n for (let i = 0; i < parmyequip.length; i++) {\n let data: p_army_equip = parmyequip[i];\n this.equipMaps.set(data.id, data);\n }\n }\n }\n\n}\n/***==========================接收消息给服务器========================= */\nexport function do_s1300(s1300: s1300) { //请求建筑相关信息\n\n // 1-全部发送;2-更新或新增某个建筑\n // int32 type=1; \n // repeated p_build buildList=2; // 建筑列表\n\n // console.log(\"=================成功接收s1300 建筑列表数据========================\"+s1300.buildList);\n if (s1300.type == 1) {\n if (s1300.buildList != undefined) {\n CampPoxy.Inst.SetBuildMaps(s1300.buildList);\n }\n } else if (s1300.type == 2){\n if (s1300.buildList != undefined) {\n CampPoxy.Inst.UpBuildMaps(s1300.buildList);\n WindowManager.Instance().Update(GameConst.winPath.ManageUI, 1, true);\n }\n }\n}\n\nexport function do_s1301(s1301: s1301) { // 建筑手动解锁\n // 建筑手动解锁结果,建筑更新会发s1300通知\n // console.log(\"===================s1301 建筑手动解锁结果:\" + s1301.result);//0成功 1失败\n EventManager.Inst.event(EventType.NEW_BUILD_OPEN , s1301.buildId)\n}\n\nexport function do_s1302(s1302: s1302) { //建筑升级\n // 建筑升级结果,建筑更新会发s1300通知\n // console.log(\"=================s1302 建筑升级结果:\" + s1302.result);//0成功 1失败 \n if(!s1302.result){\n EventManager.Inst.event(EventType.VILLAGE_LEVEL_UP , s1302.buildId)\n }\n}\n\nexport function do_s1405(s1405: s1405) { //获取某兵种某部位的装备列表\n // console.log(\"=================s1405 某部位的装备列表:\" + s1405.eqList);\n CampPoxy.Inst.SetEquipMaps(s1405.eqList);\n // if(!s1405.eqList){\n WindowManager.Instance().Update(GameConst.winPath.ManageUI, 2, true);\n // }\n}\n\nexport class Camp {\n /** 战士装配表 ID */\n CampID: number;\n /** 建筑Id */\n buildId: number;\n /** 建筑等级*/\n level: number;\n /** 属性类型 */\n attrType1: BuffAttType;\n /** 属性值 */\n attr1: number;\n /** 消耗类型 */\n costType1: string;\n /** 消耗值 */\n costNum1: number;\n /** 属性类型 */\n attrType2: BuffAttType;\n /** 属性值 */\n attr2: number;\n /** 消耗类型 */\n costType2: string;\n /** 消耗值 */\n costNum2: number;\n}\nexport enum BuffAttType {//建築屬性類型\n None =0,//攻击力\n gongji = 1, //攻击力\n fangyu = 2, //防御力\n xueliang = 3, //血量\n baojilv = 4, //暴击率\n baojishanghai = 5, //暴击伤害\n kangbao = 6, //抗暴\n\n gongjijiacheng = 7, //攻击加成\n fangyujiacheng = 8, //防御力加成\n xueliangjiacheng = 9, //血量加成\n shanghaijiacheng = 10, //伤害加成\n shanghaijianmian = 11, //伤害减免\n shanbi = 12, //闪避\n\n mingzhonglv = 13, //命中率\n jinengjiacheng = 14, //技能伤害加成\n zhiliaohudun = 15, //治疗护盾\n jiangzhiliao = 16, //降治疗\n}\nexport enum VillageAttrType { //村庄建築屬性類型\n shuliang = 1, //生产数量\n shichang = 2, //时长\n}","import { Sprite } from \"cc\";\r\nimport { Tween } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { tween } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('CDQuanView')\r\nexport class CDQuanView extends Component{\r\n @property(Sprite)\r\n cdSprite:Sprite = null;\r\n @property(ProgressBar)\r\n ProgressBar_time : ProgressBar = null;\r\n\r\n\r\n private _cdTime: number = 3;\r\n public get cdTime(): number {\r\n return this._cdTime;\r\n }\r\n public set cdTime(value: number) {\r\n this._cdTime = value;\r\n this.showAction();\r\n }\r\n\r\n private isShow:boolean = false;\r\n private callBack:Function = null;\r\n private thisObj:any = null;\r\n onLoad(){\r\n\r\n }\r\n\r\n init(callBack:Function , thisObj:any){\r\n this.callBack = callBack;\r\n this.thisObj = thisObj;\r\n }\r\n\r\n public showAction(){\r\n if(this.isShow){\r\n return;\r\n }\r\n this.node.active = true;\r\n this.showTween();\r\n }\r\n private showTween(){\r\n this.isShow = true;\r\n tween(this.ProgressBar_time).to(this.cdTime , {progress : 1}).call(()=>{\r\n if(this.ProgressBar_time){\r\n this.ProgressBar_time.progress = 0;\r\n this.node.active = false;\r\n this.isShow = false;\r\n if(this.callBack){\r\n this.callBack.bind(this.thisObj)();\r\n }\r\n }\r\n }).start()\r\n }\r\n desTroy(){\r\n tween(this.ProgressBar_time).removeSelf();\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n }\r\n }\r\n\r\n}","import { Component, game, Vec3, _decorator, v3 } from 'cc';\r\nimport RoadNode from '../road/RoadNode';\r\nimport { RoadType } from '../road/RoadType';\r\nimport { ICharactorClip } from './ICharactorClip';\r\nimport { MapViewScene } from '../MapViewScene';\r\nimport { BaseRole, GebolinMapType } from '../../role/Role';\r\nimport { Logger } from '../../../core/common/log/Logger';\r\nimport { GameModleComp } from '../../game/GameModle';\r\n\r\nconst { ccclass, property } = _decorator;\r\n\r\nexport enum CharactorState {\r\n Idle = 0,\r\n Run = 1\r\n}\r\n\r\nexport enum CharactorDirection {\r\n none = -1,\r\n bottom = 0,\r\n left_bottom = 1,\r\n left = 2,\r\n left_up = 3,\r\n up = 4,\r\n right_up = 5,\r\n right = 6,\r\n right_bottom = 7\r\n}\r\n\r\n/**\r\n * 场景角色 \r\n */\r\n@ccclass('Charactor')\r\nexport default class Charactor extends Component {\r\n /** 优化后的路点移动 */\r\n static WalkRoadNode: string = \"WalkRoadNode\";\r\n /** 移动到新的一个格子路点 */\r\n static NextRoadNode: string = \"NextRoadNode\";\r\n private _direction: CharactorDirection = CharactorDirection.bottom;\r\n public get direction(): CharactorDirection {\r\n return this._direction;\r\n }\r\n public set direction(value: CharactorDirection) {\r\n this._direction = value;\r\n this.clip.setDirection(value);\r\n }\r\n private _state: CharactorState = 0;\r\n public get state(): CharactorState {\r\n return this._state;\r\n }\r\n public set state(value: CharactorState) {\r\n this._state = value;\r\n this.clip.setState(value);\r\n }\r\n private _alpha: number = 1;\r\n public get alpha(): number {\r\n return this._alpha;\r\n }\r\n public set alpha(value: number) {\r\n this._alpha = value;\r\n this.clip.setAlpha(value);\r\n }\r\n private _zIndex: number = 0;\r\n /** 深度排序 */\r\n public get zIndex(): number {\r\n return this._zIndex;\r\n }\r\n private _pos!: Vec3;\r\n /** 玩家地图上的位置 */\r\n public get pos(): Vec3 {\r\n return this._pos;\r\n }\r\n public set pos(value: Vec3) {\r\n this._pos = value;\r\n this.clip.setPos(value);\r\n }\r\n private _moving: boolean = false;\r\n public get moving(): boolean {\r\n return this._moving;\r\n }\r\n public set moving(value: boolean) {\r\n this._moving = value;\r\n }\r\n public sceneMap: MapViewScene = null!;\r\n public clip!: ICharactorClip;\r\n public joystic: boolean = false;\r\n public joystic_dir: Vec3 = new Vec3();\r\n public moveSpeed: number = 200;\r\n /**\r\n * 玩家当前所站在的地图节点 \r\n */\r\n private _currentNode!: RoadNode;\r\n private _moveAngle: number = 0;\r\n private _roadNodeArr: RoadNode[] = [];\r\n private _nodeIndex: number = 0;\r\n private _offset: number = 0;\r\n private _targetNode!: RoadNode;\r\n private callBack: Function;\r\n private isOver:boolean = false;\r\n isCloseMove:boolean = false;\r\n private _mapType: GebolinMapType = GebolinMapType.PveBoss;\r\n public get mapType(): GebolinMapType {\r\n return this._mapType;\r\n }\r\n public set mapType(value: GebolinMapType) {\r\n this._mapType = value;\r\n }\r\n start() {\r\n this.direction = CharactorDirection.bottom;\r\n this.state = CharactorState.Idle;\r\n }\r\n update(dt: number) {\r\n if(!GameModleComp.getInstance().isOpenGame){\r\n return;\r\n }\r\n if(GameModleComp.getInstance().isInCopy){\r\n if(this.mapType == GebolinMapType.PveBoss){\r\n return;\r\n }\r\n }\r\n if(this.isCloseMove){\r\n return;\r\n }\r\n if(this.isOver){\r\n return;\r\n }\r\n // 触摸地图移动\r\n var nextNode: RoadNode = this._roadNodeArr[this._nodeIndex];\r\n if (!nextNode) return;\r\n var dx: number = nextNode.px - this._pos.x;\r\n var dy: number = nextNode.py - this._pos.y;\r\n var speed: number = this.moveSpeed * dt;\r\n if (dx * dx + dy * dy > speed * speed) {\r\n if (this._moveAngle == 0) {\r\n this._moveAngle = Math.atan2(dy, dx);\r\n var dire: number = Math.round((-this._moveAngle + Math.PI) / (Math.PI / 4));\r\n this.direction = dire > 5 ? dire - 6 : dire + 2;\r\n }\r\n var xspeed: number = Math.cos(this._moveAngle) * speed;\r\n var yspeed: number = Math.sin(this._moveAngle) * speed;\r\n if(this._pos.x != this._targetNode.px){\r\n this._pos.x += xspeed;\r\n }\r\n if(this._pos.y != this._targetNode.py){\r\n this._pos.y += yspeed;\r\n }\r\n let nowPos = new Vec3(this._pos.x, this._pos.y);\r\n this._roadNodeArr[this._roadNodeArr.length - 1];\r\n let target = new Vec3(this._targetNode.px, this._targetNode.py);\r\n let distance = Vec3.distance(nowPos, target) - this._offset;\r\n if (distance <= 5) {\r\n this.stop();\r\n if (this.callBack) {\r\n this.callBack();\r\n this.callBack = null;\r\n this.isOver = true;\r\n }\r\n }\r\n }\r\n else{\r\n if (this._nodeIndex == this._roadNodeArr.length - 1) {\r\n this._pos.x = nextNode.px;\r\n this._pos.y = nextNode.py;\r\n this.stop();\r\n if (this.callBack) {\r\n this.callBack();\r\n this.callBack = null;\r\n this.isOver = true;\r\n }\r\n // return;\r\n }\r\n else {\r\n this._pos.x = nextNode.px;\r\n this._pos.y = nextNode.py;\r\n this.walk();\r\n }\r\n }\r\n v3(1, 1, 1).multiply(v3(-1, 1, 1));\r\n this.pos = this._pos;\r\n this.updateZIndex();\r\n this.setPlayerStateByNode();\r\n }\r\n joystick(data: Vec3, speed: number) {\r\n this.moveSpeed = speed;\r\n // let dir: Vec3 = data.vector as Vec3;\r\n let dir: Vec3 = new Vec3();\r\n dir.x = data.x;\r\n dir.y = data.y;\r\n if (this.moving) {\r\n this.moving = false;\r\n this._roadNodeArr.splice(0, this._roadNodeArr.length);\r\n }\r\n\r\n if (dir.strictEquals(Vec3.ZERO)) {\r\n this.joystic = false;\r\n this.state = CharactorState.Idle;\r\n } else {\r\n this.joystic = true;\r\n this.state = CharactorState.Run;\r\n }\r\n this.joystic_dir.set(dir);\r\n }\r\n\r\n moveTouch(role: BaseRole, data: Vec3, offset: number, callback?: Function) {\r\n this.callBack = callback;\r\n this.sceneMap.readyMovePlayer(role, data, offset, callback);\r\n }\r\n\r\n shitfMove(role: BaseRole, data: Vec3, offset: number, callback?: Function) {\r\n this.callBack = callback;\r\n this.sceneMap.readyShiftMoveRole(role, data, offset, callback);\r\n }\r\n\r\n public updateZIndex() {\r\n this._zIndex = this.sceneMap.mapLayer!.height - this._pos.y;\r\n }\r\n\r\n public setPlayerStateByNode(): void {\r\n var node: RoadNode = this.sceneMap.getMapNodeByPixel(this._pos.x, this._pos.y);\r\n if (node == this._currentNode) return;\r\n\r\n this._currentNode = node;\r\n if (this._currentNode) {\r\n switch (this._currentNode.value) {\r\n case RoadType.RoadTransparent: // 如果是透明节点时\r\n if (this.alpha != 0.4) this.alpha = 0.4;\r\n break;\r\n case RoadType.Hidden: // 如果是透明节点时(编辑器要按快捷键 R 才可以调出来)\r\n this.alpha > 0 && (this.alpha = 0);\r\n break;\r\n default:\r\n this.alpha < 1 && (this.alpha = 1);\r\n }\r\n }\r\n\r\n // 移动一格事件\r\n this.node.emit(Charactor.NextRoadNode, node);\r\n }\r\n\r\n /**\r\n * 根据路节点路径行走\r\n * @param roadNodeArr \r\n */\r\n public walkByRoad(roadNodeArr: RoadNode[], speed: number, offset: number, callback?: Function) {\r\n this._roadNodeArr = roadNodeArr;\r\n this._nodeIndex = 0;\r\n this._moveAngle = 0;\r\n this.callBack = callback;\r\n this._offset = offset;\r\n this._targetNode = this._roadNodeArr[this._roadNodeArr.length - 1];\r\n this.moveSpeed = speed;\r\n this.isOver = false;\r\n this.walk();\r\n this.move();\r\n }\r\n\r\n private walk() {\r\n if (this._nodeIndex < this._roadNodeArr.length - 1) {\r\n this._nodeIndex++;\r\n\r\n // 移动一个路点事件\r\n this.node.emit(Charactor.WalkRoadNode, this._roadNodeArr[this._nodeIndex]);\r\n }\r\n }\r\n\r\n public move() {\r\n this.joystic = false;\r\n\r\n this.moving = true;\r\n this.state = CharactorState.Run;\r\n }\r\n\r\n public stop() {\r\n this.moving = false;\r\n this.state = CharactorState.Idle;\r\n }\r\n}\r\n","import { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { tween } from \"cc\";\r\nimport { ChatFaceConfig, ChatFacePoxy } from \"../modules/game/proxy/ChatFacePoxy\";\r\nimport { GlobalFunction } from \"../modules/game/common/GlobalFunction\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('ChatFaceItemViewComp')\r\nexport class ChatFaceItemViewComp extends Component{\r\n\r\n @property(Sprite)\r\n Sprite_face:Sprite = null;\r\n\r\n private faceId:number;\r\n private thisObj:any;\r\n private callBack:Function;\r\n private cfg:ChatFaceConfig;\r\n private cfgArr:Array = [];\r\n onLoad(){\r\n\r\n }\r\n\r\n onFaceClick(){\r\n this.callBack.bind(this.thisObj)(this.cfg);\r\n }\r\n\r\n init(id:number , thisObj:any , callBack:Function){\r\n this.faceId = id;\r\n this.thisObj = thisObj;\r\n this.callBack = callBack;\r\n this.cfg = ChatFacePoxy.Inst.GetChatFaceConfigById(this.faceId);\r\n this.cfgArr = ChatFacePoxy.Inst.getFaceArrById(this.faceId);\r\n GlobalFunction.SetSpriteFrameFace(this.Sprite_face , this.cfgArr[0] , \"resources\" , \"ui/face/face\")\r\n }\r\n\r\n desTory(){\r\n \r\n }\r\n}","/**\n * ChatFaceConfig config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport {p_chat_msg, s2151 } from '../../../proto/proto';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { GameModleComp } from '../../../game/GameModle';\n@res_auto_bind()\nexport class ChatFacePoxy {\n private static _inst: ChatFacePoxy;\n public static get Inst(): ChatFacePoxy {\n if (ChatFacePoxy._inst == null) {\n ChatFacePoxy._inst = new ChatFacePoxy();\n }\n return ChatFacePoxy._inst;\n }\n private _msgList: Array = [];\n public get msgList(): Array {\n return this._msgList;\n }\n public set msgList(value: Array) {\n this._msgList = value;\n for(let i = 0 ; i < value.length ; i++){\n if(value[i].channel == 1){\n this.wordMsg.push(value[i]); \n }\n if(value[i].channel == 5){\n this.sysMsg.push(value[i]);\n }\n }\n }\n private _wordMsg: Array = [];\n public get wordMsg(): Array {\n return this._wordMsg;\n }\n public set wordMsg(value: Array) {\n this._wordMsg = value;\n }\n\n private _sysMsg: Array = [];\n public get sysMsg(): Array {\n return this._sysMsg;\n }\n public set sysMsg(value: Array) {\n this._sysMsg = value;\n }\n\n @res_assign(\"ChatFaceConfig\")\n public ChatFaceConfigList: ChatFaceConfig[]; \n public InitChatFaceConfigConfig(){\n if(!this.ChatFaceConfigList){\n this.ChatFaceConfigList =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"ChatFaceConfig\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"ChatFaceConfig\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.ChatFaceConfigList.push(achieveitem);\n }\n }\n }\n public GetChatFaceConfigById(virtualId:number){\n if (!this.ChatFaceConfigList) {\n this.InitChatFaceConfigConfig();\n }\n return this.ChatFaceConfigList.find(element => element.virtualId == virtualId);\n }\n getFaceArrById(virtualId:number):Array{\n return this.GetChatFaceConfigById(virtualId).faceUrl.split(\",\");\n }\n /**\n * @param type 1 世界 5 系统\n */\n getMsgByType(type:number):Array{\n let arr:Array = [];\n for(let i = this.msgList.length - 1 ; i > 0 ; i--){\n if(this.msgList[i].channel == type){\n if(arr.length < 99){\n arr.push(this.msgList[i]);\n }\n }\n }\n return arr;\n }\n\n getIdByVe(str:string):number{\n let em = this.ChatFaceConfigList.find(element => element.faceId == str);\n if(em && em.virtualId){\n return em.virtualId\n }else{\n return -1;\n }\n }\n}\n\nexport function do_s2151(s2151: s2151) {\n if(ChatFacePoxy.Inst.msgList && ChatFacePoxy.Inst.msgList.length == 0){\n ChatFacePoxy.Inst.msgList = s2151.msgList;\n }else{\n ChatFacePoxy.Inst.msgList.push(s2151.msgList[0]);\n }\n if(s2151.msgList[0].channel == 1){\n ChatFacePoxy.Inst.wordMsg.push(s2151.msgList[0]); \n GameModleComp.getInstance().newWordChat++;\n }else if(s2151.msgList[0].channel == 5){\n ChatFacePoxy.Inst.sysMsg.push(s2151.msgList[0]);\n GameModleComp.getInstance().newSysChat++;\n }\n EventManager.Inst.event(EventType.HAVE_NEW_CHAT_MSG);\n}\n\nexport class ChatFaceConfig {\n virtualId: number;\n faceId: string;\n faceUrl: string;\n}","import { Label, size } from 'cc';\r\nimport { Sprite } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Component , Node } from \"cc\";\r\nimport { p_chat_msg } from \"../proto/proto\";\r\nimport { UITransform } from \"cc\";\r\nimport { Vec3 } from 'cc';\r\nimport { Size } from 'cc';\r\nimport { dataUser } from '../modules/gameData/dataUser';\r\nimport { RichText } from 'cc';\r\nimport { ChatFacePoxy } from '../modules/game/proxy/ChatFacePoxy';\r\nimport ResHelper from '../core/manager/ResHelper';\r\nimport { SpriteFrame } from 'cc';\r\nimport { assetManager } from 'cc';\r\nimport { resources } from 'cc';\r\nimport { SpriteAtlas } from 'cc';\r\nimport { TimePoxy } from '../modules/game/proxy/TimePoxy';\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('ChatTalkViewComp')\r\nexport class ChatTalkViewComp extends Component{\r\n @property(Node)\r\n myhead:Node = null;\r\n @property(Sprite)\r\n Sprite_headmy:Sprite = null;\r\n @property(Node)\r\n otherHead:Node = null;\r\n @property(Sprite)\r\n Sprite_headother:Sprite = null;\r\n @property(Node)\r\n myNode:Node = null;\r\n @property(Label) \r\n Label_timemy:Label = null;\r\n @property(Label)\r\n Label_namemy:Label = null;\r\n @property(Sprite)\r\n Sprite_titlemy:Sprite = null;\r\n @property(RichText)\r\n Label_talkmy:RichText = null;\r\n @property(Node)\r\n otherNode:Node = null;\r\n @property(Label)\r\n Label_timeother:Label = null;\r\n @property(Label)\r\n Label_nameother:Label = null;\r\n @property(Sprite)\r\n Sprite_titleother:Sprite = null;\r\n @property(RichText)\r\n Label_talkother:RichText = null;\r\n @property(Sprite)\r\n mySprite:Sprite = null;\r\n @property(Sprite)\r\n otherSprite:Sprite = null;\r\n @property(Label)\r\n myLabel:Label = null;\r\n @property(Label)\r\n otherLabel:Label = null;\r\n private chat:p_chat_msg;\r\n private isOver:boolean = false;\r\n onLoad(){\r\n }\r\n initData(chat:p_chat_msg){\r\n this.chat = chat;\r\n if(chat.sendUID == dataUser.Instance().unitUID){\r\n this.showOther();\r\n }else{\r\n this.showMy();\r\n }\r\n this.schedule(this.changeImage, 0.2);\r\n }\r\n private showMy(){\r\n this.otherHead.active = false;\r\n this.myhead.active = true;\r\n this.myNode.active = true;\r\n this.otherNode.active = false;\r\n this.Label_timemy.string = TimePoxy.Inst.SecondsToDate(this.chat.time) + \" \" + TimePoxy.Inst.ShowTime(this.chat.time) +\"\";\r\n this.Label_namemy.string = this.chat.nickname;\r\n this.Sprite_titlemy.node.active = false;\r\n this.showMsg(this.Label_talkmy , this.chat.msg)\r\n setTimeout(() => {\r\n let height:number = this.mySprite.getComponent(UITransform).contentSize.height;\r\n let width:number = this.myLabel.string.length*24;\r\n if(this.myLabel.string.length < 5){\r\n width += (5 - this.myLabel.string.length)*13\r\n }\r\n if(width > 350){\r\n width = 350;\r\n }\r\n this.mySprite.node.getComponent(UITransform).contentSize = new Size(width , height);\r\n this.mySprite.node.active = true;\r\n }, 50);\r\n }\r\n private showOther(){\r\n this.otherHead.active = true;\r\n this.myhead.active = false;\r\n this.myNode.active = false;\r\n this.otherNode.active = true;\r\n this.Label_timeother.string = TimePoxy.Inst.SecondsToDate(this.chat.time) + \" \" + TimePoxy.Inst.ShowTime(this.chat.time) +\"\";\r\n this.Label_nameother.string = this.chat.nickname;\r\n this.Sprite_titleother.node.active = false;\r\n this.showMsg(this.Label_talkother , this.chat.msg)\r\n setTimeout(() => {\r\n let height:number = this.otherSprite.getComponent(UITransform).contentSize.height;\r\n let width:number = this.otherLabel.string.length*24;\r\n if(this.otherLabel.string.length < 5){\r\n width += (5 - this.otherLabel.string.length)*13\r\n }\r\n if(width > 350){\r\n width = 350;\r\n }\r\n this.otherSprite.node.getComponent(UITransform).contentSize = new Size(width , height);\r\n this.otherSprite.node.active = true;\r\n }, 50);\r\n }\r\n private changeIdArr:Array = [];\r\n private showMsg(label:RichText , msg:string){\r\n let matches:Array = this.extractHashWithFourChars(msg);\r\n let idArr:Array = [];\r\n for(let i = 0 ; i < matches.length ; i++){\r\n let str:string = matches[i];\r\n let imageId:number = ChatFacePoxy.Inst.getIdByVe(str)\r\n if(imageId >= 0){\r\n idArr[i] = imageId;\r\n }\r\n }\r\n for(let i = 0 ; i < idArr.length ; i++){\r\n if(idArr[i]){\r\n let changeItem:ChangeImageItem = new ChangeImageItem();\r\n changeItem.changeId = idArr[i];\r\n changeItem.changeStr = matches[i];\r\n changeItem.changePath = ChatFacePoxy.Inst.getFaceArrById(idArr[i]);\r\n changeItem.changeIndex = 0;\r\n this.changeIdArr.push(changeItem);\r\n }\r\n }\r\n let newMsg:string = this.getNewMsg(msg)\r\n\r\n for(let l = 0 ; l < this.changeIdArr.length ; l++){\r\n newMsg = this.replaceHashWithText(newMsg , this.changeIdArr[l].changeStr , ``);\r\n }\r\n label.string = newMsg;\r\n\r\n let labelMsg:string = this.getLabelNewMsg(msg)\r\n let max:number = labelMsg.length - this.changeIdArr.length*4;\r\n for(let i = 0 ; i < max ; i++){\r\n this.myLabel.string += \"你\";\r\n this.otherLabel.string += \"我\";\r\n }\r\n this.isOver = true;\r\n }\r\n replaceHashWithText(inputString: string, target: string, replacement: string): string {\r\n let result = \"\";\r\n let currentIndex = 0;\r\n while (currentIndex < inputString.length) {\r\n const matchIndex = inputString.indexOf(target, currentIndex);\r\n if (matchIndex !== -1) {\r\n // 添加匹配前的内容\r\n result += inputString.substring(currentIndex, matchIndex);\r\n // 添加替换内容\r\n result += replacement;\r\n // 更新当前索引\r\n currentIndex = matchIndex + target.length;\r\n } else {\r\n // 添加剩余的内容\r\n result += inputString.substring(currentIndex);\r\n break;\r\n }\r\n }\r\n \r\n return result;\r\n }\r\n getNewMsg(str:string):string{\r\n let rStr:string = \"\";\r\n for(let i = 0 ; i < str.length ; i++){\r\n rStr += str.charAt(i);\r\n }\r\n rStr = \"\" + rStr + \"\";\r\n return rStr;\r\n }\r\n getLabelNewMsg(str:string):string{\r\n let rStr:string = \"\";\r\n for(let i = 0 ; i < str.length ; i++){\r\n rStr += str.charAt(i);\r\n }\r\n return rStr;\r\n }\r\n changeImage(){\r\n let newMsg:string = \"\"\r\n if(this.isOver && this.changeIdArr.length){\r\n newMsg = this.getNewMsg(this.chat.msg)\r\n for(let i = 0 ; i < this.changeIdArr.length ; i++){\r\n this.changeIdArr[i].changeIndex++;\r\n if(this.changeIdArr[i].changeIndex >= this.changeIdArr[i].changePath.length){\r\n this.changeIdArr[i].changeIndex = 0;\r\n }\r\n newMsg = this.replaceHashWithText(newMsg , this.changeIdArr[i].changeStr , ``);\r\n }\r\n if(this.chat.sendUID == dataUser.Instance().unitUID){\r\n this.Label_talkother.string = newMsg;\r\n }else{\r\n this.Label_talkmy.string = newMsg;\r\n }\r\n }\r\n }\r\n extractHashWithFourChars(inputString: string): string[] {\r\n const regex = /#(\\w{4})/g;\r\n let match;\r\n const matches = [];\r\n while ((match = regex.exec(inputString)) !== null) {\r\n matches.push(match[0]); // match[0] 包含整个匹配的子串,例如 \"#1234\"\r\n }\r\n return matches;\r\n }\r\n desTory(){\r\n if(this.node && this.node.parent){\r\n this.isOver = false;\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n }\r\n }\r\n}\r\n\r\nexport class ChangeImageItem{\r\n changeId:number;\r\n changeStr:string;\r\n changePath:Array;\r\n changeIndex:number = 0;\r\n}","import { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { EditBox } from \"cc\";\r\nimport { Button } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { send2client } from \"../core/WebSocket/WebSocketMgr\";\r\nimport { c2151, p_chat_msg } from \"../proto/proto\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { ChatFaceConfig, ChatFacePoxy } from \"../modules/game/proxy/ChatFacePoxy\";\r\nimport { Prefab } from \"cc\";\r\nimport { instantiate } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport { ChatTalkViewComp } from \"./ChatTalkViewComp\";\r\nimport { UITransform } from \"cc\";\r\nimport { ScrollView } from \"cc\";\r\nimport { ChatFaceItemViewComp } from \"./ChatFaceItemViewComp\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('ChatViewComp')\r\nexport class ChatViewComp extends Component{\r\n @property(Node)\r\n Panle_word:Node = null;\r\n @property(Node)\r\n Layout_talk:Node = null;\r\n @property(Button)\r\n Button_wordlock:Button = null;\r\n @property(EditBox)\r\n EditBox_name:EditBox = null;\r\n @property(Node)\r\n Panle_system:Node = null;\r\n @property(Node)\r\n Layout_system:Node = null;\r\n @property(Label)\r\n Label_system:Label = null;\r\n @property(Node)\r\n Panle_lock:Node = null;\r\n @property(Node)\r\n Checkmark_choose:Node = null;\r\n @property(Node)\r\n Panle_face:Node = null;\r\n @property(Node)\r\n Layout_face:Node = null;\r\n @property(Prefab)\r\n talkPre:Prefab = null;\r\n @property(Prefab)\r\n facePre:Prefab = null;\r\n @property(ScrollView)\r\n ScrollView_talk:ScrollView = null;\r\n @property(ScrollView)\r\n ScrollView_system:ScrollView = null;\r\n\r\n private channel:number = 1;\r\n \r\n private items: Node[] = [];\r\n private sysitems: Node[] = [];\r\n\r\n onLoad(){\r\n this.addEvent();\r\n this.initList();\r\n }\r\n private addEvent(){\r\n EventManager.Inst.on(EventType.HAVE_NEW_CHAT_MSG , this, this.onNewMsg)\r\n EventManager.Inst.on(EventType.CLOSE_ALL_UI , this, this.desTory)\r\n }\r\n private onNewMsg(){\r\n let nowMsg:p_chat_msg = ChatFacePoxy.Inst.msgList[ChatFacePoxy.Inst.msgList.length - 1];\r\n if(nowMsg.channel == this.channel){\r\n if(this.channel == 1){\r\n this.addWord();\r\n }else if(this.channel == 5){\r\n this.addSys();\r\n }\r\n }\r\n }\r\n private addWord(){\r\n this.addItem(ChatFacePoxy.Inst.wordMsg.length - 1 );\r\n }\r\n private addSys(){\r\n this.addSysItem(ChatFacePoxy.Inst.sysMsg.length - 1 );\r\n }\r\n initList() {\r\n this.channel = 1;\r\n GameModleComp.getInstance().newWordChat = 0;\r\n if(GameModleComp.getInstance().selectGuankaId >= 1){\r\n this.Panle_lock.active = false;\r\n this.EditBox_name.node.active = true;\r\n }else{\r\n this.Panle_lock.active = true;\r\n this.EditBox_name.node.active = false;\r\n }\r\n this.Layout_talk.removeAllChildren();\r\n let beigin:number = ChatFacePoxy.Inst.wordMsg.length-50;\r\n if(beigin < 0){\r\n beigin = 0;\r\n }\r\n let max:number = beigin + 50;\r\n if(max >= ChatFacePoxy.Inst.wordMsg.length){\r\n max = ChatFacePoxy.Inst.wordMsg.length-1;\r\n }\r\n for (let i = beigin; i < max ; i++) {\r\n if(ChatFacePoxy.Inst.wordMsg[i]){\r\n this.addItem(i);\r\n }\r\n }\r\n setTimeout(() => {\r\n this.ScrollView_talk.scrollToBottom(0.1);\r\n }, 200);\r\n }\r\n addItem(i:number) {\r\n let itemNode:ChatTalkViewComp = instantiate(this.talkPre).getComponent(ChatTalkViewComp);\r\n itemNode.initData(ChatFacePoxy.Inst.wordMsg[i])\r\n itemNode.node.setParent(this.Layout_talk);\r\n this.items.push(itemNode.node);\r\n if(this.items.length >= 50){\r\n this.items[0].getComponent(ChatTalkViewComp).desTory();\r\n this.items.splice(0,1);\r\n }\r\n setTimeout(() => {\r\n this.ScrollView_talk.scrollToBottom(0.1);\r\n }, 200);\r\n }\r\n private showSys(){\r\n this.channel = 5;\r\n GameModleComp.getInstance().newSysChat = 0;\r\n this.Layout_system.removeAllChildren();\r\n let beigin:number = ChatFacePoxy.Inst.sysMsg.length-100;\r\n if(beigin < 0){\r\n beigin = 0;\r\n }\r\n let max:number = beigin + 100;\r\n if(max >= ChatFacePoxy.Inst.sysMsg.length){\r\n max = ChatFacePoxy.Inst.sysMsg.length-1;\r\n }\r\n for (let i = beigin; i < max ; i++) {\r\n if(ChatFacePoxy.Inst.sysMsg[i]){\r\n this.addSysItem(i);\r\n }\r\n }\r\n setTimeout(() => {\r\n this.ScrollView_system.scrollToBottom(0.1);\r\n }, 200);\r\n }\r\n addSysItem(i:number) {\r\n let itemNode:Label = instantiate(this.Label_system.node).getComponent(Label);\r\n itemNode.string=ChatFacePoxy.Inst.sysMsg[i].msg;\r\n itemNode.node.setParent(this.Layout_system);\r\n this.sysitems.push(itemNode.node);\r\n itemNode.node.active = true;\r\n if(this.sysitems.length >= 100){\r\n if(this.sysitems[0].parent){\r\n this.sysitems[0].parent.removeChild(this.sysitems[0]);\r\n this.sysitems.splice(0,1);\r\n }\r\n }\r\n setTimeout(() => {\r\n this.ScrollView_system.scrollToBottom(0.1);\r\n }, 200);\r\n }\r\n private showFace(){\r\n if(this.Panle_face.active){\r\n this.Panle_face.active = false;\r\n }else{\r\n this.Panle_face.active = true;\r\n this.Layout_face.removeAllChildren();\r\n for(let i = 1 ; i < 30 ; i++){\r\n let face:ChatFaceItemViewComp = instantiate(this.facePre).getComponent(ChatFaceItemViewComp);\r\n this.Layout_face.addChild(face.node);\r\n face.init(i , this , this.onFaceOver);\r\n }\r\n }\r\n }\r\n private onFaceOver(cfg:ChatFaceConfig){\r\n this.EditBox_name.string += cfg.faceId;\r\n }\r\n private showLock(){\r\n\r\n }\r\n onLockClick(){\r\n\r\n }\r\n onChooseClick(){\r\n }\r\n onSureCkick(){\r\n this.desTory();\r\n }\r\n onFaceClick(){\r\n this.showFace();\r\n }\r\n onSendClick(){\r\n if(this.EditBox_name.string.length > 0){\r\n let c2151:c2151 = {\r\n channel : this.channel,\r\n toUID : \"\",\r\n msg : this.EditBox_name.string\r\n }\r\n send2client(\"c2151\",c2151);\r\n \r\n this.EditBox_name.string = \"\";\r\n \r\n this.Panle_face.active = false;\r\n }\r\n }\r\n onChatClick(){\r\n this.Panle_word.active = true;\r\n this.Panle_system.active = false;\r\n this.Panle_lock.active = false;\r\n this.Panle_face.active = false;\r\n this.initList();\r\n }\r\n onSysClick(){\r\n this.showSys();\r\n this.Panle_word.active = false;\r\n this.Panle_system.active = true;\r\n this.Panle_lock.active = false;\r\n this.Panle_face.active = false;\r\n }\r\n onCloseClick(){\r\n this.desTory();\r\n }\r\n desTory(){\r\n EventManager.Inst.off(EventType.CLOSE_ALL_UI , this, this.desTory)\r\n EventManager.Inst.off(EventType.HAVE_NEW_CHAT_MSG , this, this.onNewMsg)\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node)\r\n this.destroy();\r\n }\r\n }\r\n}","/**\n * CommonMsg config配置文件\n **/\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { BoxData } from '../common/Component';\nimport { StringUtil } from '../../../core/utils/StringUtil';\n@res_auto_bind()\nexport class CommonMsgProxy {\n private static _inst: CommonMsgProxy;\n public static get Inst(): CommonMsgProxy {\n if (CommonMsgProxy._inst == null) {\n CommonMsgProxy._inst = new CommonMsgProxy();\n }\n return CommonMsgProxy._inst;\n }\n @res_assign(\"CommonMsgData\")\n public commonDataList: CommonMsgData[];\n public InitCommonMsgConfig() {\n\n if (!this.commonDataList) {\n this.commonDataList = [];\n }\n let commonMsgConfig = ConfigManager.GetInstance().getValue(\"CommonMsg\")\n for (var key in commonMsgConfig) {\n let commonMsgitem = ConfigManager.GetInstance().getValue(\"CommonMsg\")[key];\n if (commonMsgitem) {\n for (var keys in commonMsgitem) {\n commonMsgitem[keys] = GlobalFunction.Inst.ParamDef(keys, commonMsgitem[keys]);\n\n }\n this.commonDataList.push(commonMsgitem);\n }\n\n }\n }\n\n\n public GetCommonMsgById(id: number) {\n let data: CommonMsgData = this.GetCommonDataById(id);\n let lan_msg: string = \"\";\n if (data != null) {\n lan_msg = data.lan_id;\n }\n return lan_msg;\n }\n public GetCommonDataById(id: number) {\n if (this.commonDataList == null) {\n this.InitCommonMsgConfig();\n }\n let data: CommonMsgData = this.commonDataList.find(item => item.id == id);\n if (data != null) {\n return data;\n }\n return null;\n }\n public GetCommonMsgTypeById(id: number) {\n if (this.commonDataList == null) {\n this.InitCommonMsgConfig();\n }\n\n let data: CommonMsgData = this.commonDataList.find(item => item.id == id);\n if (data != null) {\n return data.ay_type;\n }\n return null;\n }\n public ShowCommonMsg(id: number, ps: string[] = null, action: Function = null, key: string = null) {\n\n // string[] vs = { Convert.ToString(sevenData.cost), GlobalFunction.GetMsgByLan(190013), sevenData.lan_name };\n let types = this.GetCommonMsgTypeById(id);\n if (types != null) {\n let lan_msg = this.GetCommonMsgById(id);\n for (let i = 0; i < types.length; i++) {\n let type = parseInt(types[i]);\n this.ShowNewMessageByWay(type, lan_msg, action, ps, key);\n }\n }\n\n }\n\n public ShowNewMessageByWay(way: number, msg: string, action: Function = null, ps: string[], key: string = \"\") {\n\n //this.ShowCommonMsg(1212, [\"1212\",\"1212\",\"212121\",\"2222\"],null,\"1212\");\n if (way > 100) return;\n if (msg != null && ps != null) {\n msg = StringUtil.stringAyFormat(msg, ps);\n }\n switch (way) {\n case 6:\n var data = new BoxData\n {\n data.content = msg;\n data.title = GlobalFunction.GetMsg(10005),\n data.buttonNames = [GlobalFunction.GetMsg(20007), GlobalFunction.GetMsg(20008)],\n data.actions = [action],\n data.key = key;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle4);\n break;\n case 7:\n let _data: BoxData = new BoxData\n {\n _data.content = msg\n };\n GlobalFunction.ShowBox(_data, BoxStyle.BoxStyle5);\n break;\n\n case 8:\n let _datas: BoxData = new BoxData\n {\n _datas.content = msg;\n _datas.showLabelType = 1\n };\n GlobalFunction.ShowBox(_datas, BoxStyle.BoxStyle6);\n break;\n }\n\n\n }\n}\n\nexport class CommonMsgData {\n // /** id */\n id: number;\n // /** languageid */\n lan_id: string;\n // /** 判断是在哪个频道显示 */\n ay_type: string[];\n}","\nexport class BoxData {\n title: string; //标题 \n content: string; // 内容\n\n buttonNames: string[]; // 按钮名 //box4 need显示一个按钮还是两个按钮\n actions: Function[]; // 回调 最多2个 //box4\n key :string; //记录当前是不是需要弹窗或者跳过 //box4\n NotAvailable: boolean; // 是否今天不在提示 //box4\n itemNumber: number; // 兑换道具数量 //box4\n\n rewards:p_reward[];//奖励列表// box3\n CloseAction: Function; // 关闭界面时回调\n \n showLabelType: number; // box6,7,9 值为1,2\n \n heroid :number; // heroid //显示英雄义肢详情\n\n //显示box1-道具加速\n itemId :number; // 道具id\n gongnengid :number;//功能id,前端自己定义\n\n}\n\nexport class p_reward {\n id?: number;\n num?: number;\n}","import { _decorator, Component as CC_Component, Node, Sprite, Label, SpriteFrame, find, isValid, assetManager } from 'cc';\r\nimport { ProgressBar, Button, EditBox, Slider, js, sp, Toggle, ToggleContainer, PageView, ScrollView } from 'cc';\r\n\r\nconst { ccclass, property } = _decorator;\r\n\r\nimport { EventManager } from \"../manager/EventManager\";\r\nimport Utils from \"../utils/Utils\";\r\nimport { FrameAnimation } from \"./FrameAnimation\";\r\nimport LinkPrefab from \"./LinkPrefab\";\r\nimport ListView from \"./ListView\";\r\n// /**onDisable会自动清空注册得事件 */\r\n\r\n@ccclass('Component')\r\nexport default class Component extends CC_Component {\r\n constructor() {\r\n super();\r\n this.inject();\r\n }\r\n\r\n private inject() {\r\n let oldOnLoad = this.onLoad;\r\n this.onLoad = () => {\r\n if (oldOnLoad) oldOnLoad.call(this);\r\n this.autoMapping(this.node);\r\n this.afteronLoad()\r\n }\r\n\r\n let oldOnDisable = this.onDisable;\r\n this.onDisable = () => {\r\n this.RemoveAllEventTrigger();\r\n if (oldOnDisable) oldOnDisable.call(this);\r\n }\r\n }\r\n\r\n protected afteronLoad() {\r\n\r\n }\r\n\r\n protected AddEventTrigger(eventName: string, listener: Function) {\r\n EventManager.Inst.on(eventName, this, listener);\r\n }\r\n\r\n protected RemoveEventTrigger(eventName: string, listener: Function) {\r\n EventManager.Inst.off(eventName, this, listener);\r\n }\r\n\r\n protected RemoveAllEventTrigger() {\r\n EventManager.Inst.offAllCaller(this);\r\n }\r\n\r\n protected addClick(node: Node, onClickFunName: string = null, data: any = null) {\r\n if (!node.getComponent(Button)) return;\r\n var eventHandler = new CC_Component.EventHandler();\r\n eventHandler.target = this.node;\r\n eventHandler.component = js.getClassName(this);\r\n // console.log(eventHandler.component, node.name, node.uuid)\r\n eventHandler.handler = onClickFunName || \"onBtnClicked\";\r\n eventHandler.customEventData = data || node.name;\r\n var clickEvents = node.getComponent(Button).clickEvents;\r\n clickEvents.length = 0;\r\n clickEvents.push(eventHandler);\r\n }\r\n\r\n autoMapping(node: Node) {\r\n let info = node.name.split('_')\r\n if (info.length > 1) {\r\n let name = node.name\r\n let type = info[0];\r\n switch (type) {\r\n case 'Button':\r\n this[name] = node.getComponent(Button)\r\n this.addClick(node);\r\n break\r\n case 'progress':\r\n this[name] = node.getComponent(ProgressBar)\r\n break\r\n case 'txt':\r\n case 'lbl':\r\n this[name] = node.getComponent(Label)\r\n break\r\n case 'sp':\r\n this[name] = node.getComponent(Sprite)\r\n break\r\n case 'spine':\r\n this[name] = node.getComponent(sp.Skeleton)\r\n break\r\n case 'link':\r\n this[name] = node.getComponent(LinkPrefab)\r\n break\r\n case 'toggle':\r\n case 'Toggle':\r\n this[name] = node.getComponent(Toggle);\r\n if (this[name]) {\r\n var eventHandler = new CC_Component.EventHandler();\r\n eventHandler.target = this.node;\r\n eventHandler.component = js.getClassName(this);\r\n eventHandler.handler = \"onBtnClicked\";\r\n eventHandler.customEventData = name;\r\n var clickEvents = node.getComponent(Toggle).clickEvents;\r\n clickEvents.push(eventHandler);\r\n }\r\n break\r\n case 'toc':\r\n this[name] = node.getComponent(ToggleContainer);\r\n break;\r\n case 'page':\r\n this[name] = node.getComponent(PageView)\r\n break\r\n case 'clip':\r\n this[name] = node.getComponent(FrameAnimation)\r\n break\r\n case 'vlist':\r\n this[name] = node.getComponent(ListView)\r\n break\r\n case 'list':\r\n this[name] = node.getComponent(ScrollView)\r\n break\r\n case 'node':\r\n this[name] = node\r\n break\r\n case 'edit':\r\n this[name] = node.getComponent(EditBox);\r\n break;\r\n default:\r\n this[name] = node\r\n break;\r\n }\r\n }\r\n else if (this[node.name] === null) {\r\n this[node.name] = node;\r\n }\r\n\r\n for (const item of node.children) {\r\n this.autoMapping(item)\r\n }\r\n }\r\n\r\n private _findInChildren(node: Node, name: string): Node {\r\n var x = node.getChildByName(name);\r\n if (x) return x;\r\n let childrenCount = node.children.length;\r\n if (childrenCount == 0) return null;\r\n\r\n for (var i = 0; i < childrenCount; ++i) {\r\n var tmp = this._findInChildren(node.children[i], name);\r\n if (tmp) return tmp;\r\n }\r\n return null;\r\n }\r\n private m_objects: Map = new Map();\r\n\r\n isGray = false;\r\n // //战斗内调用\r\n protected setSpriteFrame(_sp: Sprite, path: string, bundle: string, gray: boolean = false) {\r\n let spf = Utils.getRes(path, bundle, SpriteFrame);\r\n if (spf && _sp) {\r\n _sp.spriteFrame = spf;\r\n if (this.isGray != gray) {\r\n this.isGray = gray;\r\n Utils.setGray(_sp, gray);\r\n }\r\n }\r\n else {\r\n Utils.loadResUIOnly(path, bundle, SpriteFrame, (err, res: SpriteFrame) => {\r\n if (_sp && _sp.isValid) {\r\n _sp.spriteFrame = res;\r\n if (this.isGray != gray) {\r\n this.isGray = gray;\r\n Utils.setGray(_sp, gray);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n // //战斗外调用\r\n protected setSpriteFrameNotInBattle(_sp: Sprite, path: string, bundle: string, gray: boolean = false) {\r\n\r\n Utils.loadResUIOnly(path, bundle, SpriteFrame, (err, res: SpriteFrame) => {\r\n if (_sp && _sp.isValid) {\r\n _sp.spriteFrame = res;\r\n if (this.isGray != gray) {\r\n this.isGray = gray;\r\n Utils.setGray(_sp, gray);\r\n }\r\n }\r\n if (err != null || res == null) {\r\n console.error('加载失败', path, err);\r\n }\r\n })\r\n }\r\n\r\n protected setSpriteUrl(_sp: Sprite, url: string, rawsize: boolean = false, callback: Function = null) {\r\n if (url && url != \"\") {\r\n let head = _sp.node\r\n assetManager.loadAny({ url, type: 'jpg' }, (err, tex) => {\r\n if (!err) {\r\n if (!isValid(head))\r\n return;\r\n let spf = new SpriteFrame();\r\n spf.texture = tex;\r\n head.getComponent(Sprite).spriteFrame = spf;\r\n if (rawsize) {\r\n // head.width = tex.width;\r\n // head.height = tex.height;\r\n }\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n public GetGameObject(name: string, node: Node | null = null, refind: boolean = false): Node | null {\r\n if (!node) node = this.node;\r\n if (!isValid(node)) return null;\r\n if (!refind) {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name];\r\n if (name == node.name) return node;\r\n }\r\n\r\n if (name.indexOf(\"/\") != -1) {\r\n var tmp = find(name, node);\r\n if (tmp) this.m_objects[name] = tmp;\r\n return tmp;\r\n }\r\n else {\r\n var tmp = this._findInChildren(node, name);\r\n if (tmp) this.m_objects[name] = tmp;\r\n return tmp;\r\n }\r\n }\r\n\r\n public GetSkeleton(name: string): sp.Skeleton {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name].getComponent(sp.Skeleton);\r\n var tmp = this.GetGameObject(name);\r\n if (tmp) return tmp.getComponent(sp.Skeleton);\r\n return null;\r\n }\r\n\r\n public GetSprite(name: string): Sprite {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name].getComponent(Sprite);\r\n var tmp = this.GetGameObject(name);\r\n if (tmp) return tmp.getComponent(Sprite);\r\n return null;\r\n }\r\n\r\n public GetText(name: string): Label {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name].getComponent(Label);\r\n var tmp = this.GetGameObject(name);\r\n if (tmp) return tmp.getComponent(Label);\r\n return null;\r\n }\r\n\r\n public GetProgressBar(name: string): ProgressBar {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name].getComponent(ProgressBar);\r\n var tmp = this.GetGameObject(name);\r\n if (tmp) return tmp.getComponent(ProgressBar);\r\n return null;\r\n }\r\n\r\n public GetButton(name: string): Button {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name].getComponent(Button);\r\n var tmp = this.GetGameObject(name);\r\n if (tmp) return tmp.getComponent(Button);\r\n return null;\r\n }\r\n\r\n public GetInputField(name: string): EditBox {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name].getComponent(EditBox);\r\n var tmp = this.GetGameObject(name);\r\n if (tmp) return tmp.getComponent(EditBox);\r\n return null;\r\n }\r\n\r\n public GetSlider(name: string): Slider {\r\n if (this.m_objects && this.m_objects.has(name)) return this.m_objects[name].getComponent(Slider);\r\n var tmp = this.GetGameObject(name);\r\n if (tmp) return tmp.getComponent(Slider);\r\n return null;\r\n }\r\n\r\n public SetText(TextID: string, content: string) {\r\n if (this.GetText(TextID))\r\n this.GetText(TextID).string = content;\r\n }\r\n\r\n public SetInputText(TextID: string, content: string) {\r\n if (this.GetInputField(TextID))\r\n this.GetInputField(TextID).string = content;\r\n }\r\n\r\n public SetProgressBar(TextID: string, p: number) {\r\n if (this.GetProgressBar(TextID))\r\n this.GetProgressBar(TextID).progress = p;\r\n }\r\n \r\n getChildByName(path, node) {\r\n return find(path, node || this.node);\r\n }\r\n}","import { ConfigLoadManager } from \"./ConfigLoadManager\";\r\n\r\nexport function res_auto_bind() {\r\n return function (_constructor: T) {\r\n var newConstructor = class T extends _constructor {\r\n constructor(...args: Array) {\r\n super(...args);\r\n\r\n\r\n var resAssigns = this['_res_assign'] as { key: string, url: string }[];\r\n\r\n if (resAssigns) {\r\n for (var i = 0; i < resAssigns.length; i++) {\r\n var resAssign = resAssigns[i];\r\n let raw = ConfigLoadManager.GetConfig(resAssign.url);\r\n let keyMap = this['keyMap'] as { [key: string]: string };\r\n if (keyMap !== undefined) {\r\n let keys = Object.keys(keyMap);\r\n keys.forEach(_k => {\r\n let k = `\"${_k}\"`;\r\n let v = `\"${keyMap[_k]}\"`;\r\n raw = raw.replace(new RegExp(k, 'gm'), v);\r\n });\r\n let arrayData = JSON.parse(raw) as any[][];\r\n let keyVs = arrayData[0];\r\n let data = [];\r\n for (let i = 1; i < arrayData.length; i++) {\r\n let oneData = {};\r\n for (let j = 0; j < keyVs.length; j++) {\r\n oneData[keyVs[j]] = arrayData[i][j];\r\n }\r\n data.push(oneData);\r\n }\r\n this[resAssign.key] = data;\r\n } else {\r\n this[resAssign.key] = JSON.parse(raw);\r\n }\r\n }\r\n this['_res_assign'] = null;\r\n }\r\n\r\n resetData(this);\r\n }\r\n }\r\n return newConstructor;\r\n }\r\n}\r\n\r\nfunction resetData(thisA: { _map?: any }) {\r\n\r\n thisA._map = undefined;\r\n var resAssigns = thisA['_res_assign'] as { key: string, url: string }[];\r\n\r\n if (resAssigns) {\r\n for (var i = 0; i < resAssigns.length; i++) {\r\n var resAssign = resAssigns[i];\r\n let raw = ConfigLoadManager.GetConfig(resAssign.url);\r\n let keyMap = thisA['keyMap'] as { [key: string]: string };\r\n if (keyMap !== undefined) {\r\n let keys = Object.keys(keyMap);\r\n keys.forEach(_k => {\r\n let k = `\"${_k}\"`;\r\n let v = `\"${keyMap[_k]}\"`;\r\n raw = raw.replace(new RegExp(k, 'gm'), v);\r\n });\r\n let arrayData = JSON.parse(raw) as any[][];\r\n let keyVs = arrayData[0];\r\n let data = [];\r\n for (let i = 1; i < arrayData.length; i++) {\r\n let oneData = {};\r\n for (let j = 0; j < keyVs.length; j++) {\r\n oneData[keyVs[j]] = arrayData[i][j];\r\n }\r\n data.push(oneData);\r\n }\r\n thisA[resAssign.key] = data;\r\n } else {\r\n thisA[resAssign.key] = JSON.parse(raw);\r\n }\r\n }\r\n thisA['_res_assign'] = null;\r\n }\r\n}\r\n\r\nexport function res_assign(url: string) {\r\n ConfigLoadManager.PushUrls(url);\r\n return function (target: any, key: string) {\r\n target['_res_assign'] = target['_res_assign'] || [];\r\n var v = target['_res_assign'] as { key: string, url: string }[];\r\n v.push({ key: key, url: url })\r\n }\r\n}","import { _decorator, AssetManager, assetManager, BufferAsset } from 'cc';\nimport { AB } from \"../core/utils/AB\";\n\nexport class ConfigLoadManager {\n private static urlsLoad: string[] = [];\n public static PushUrls(url: string) {\n // ConfigLoadManager.urlsLoad.push(url);\n }\n public static Utf8ArrayToStr(e: Uint8Array): string {\n var r, a, t, n;\n var o, i;\n r = \"\";\n t = e.length;\n a = 0;\n while (a < t) {\n n = e[a++];\n switch (n >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n r += String.fromCharCode(n);\n break;\n case 12:\n case 13:\n o = e[a++];\n r += String.fromCharCode((n & 31) << 6 | o & 63);\n break;\n case 14:\n o = e[a++];\n i = e[a++];\n r += String.fromCharCode((n & 15) << 12 | (o & 63) << 6 | (i & 63) << 0);\n break\n }\n }\n return r\n };\n public static loaded = false;\n static map: { [key: string]: string } = {};\n public static LoadConfig(completed: (e: Error) => void) {\n // console.log('load configs', this.urlsLoad)\n this.loaded = false;\n assetManager.loadBundle('net_configs', (err: Error, bundle: AssetManager.Bundle) => {\n\n if (err == null) {\n bundle.load(this.urlsLoad, BufferAsset, (err: Error, assets: BufferAsset[]) => {\n if (err == null) {\n assets.forEach(a => {\n let zb = AB.inflate(a['_buffer']);\n let by = this.Utf8ArrayToStr(new Uint8Array(zb));\n this.map[a.name] = by;\n })\n } else {\n console.error(err)\n }\n this.loaded = true;\n bundle.releaseAll();\n completed(err);\n });\n } else {\n completed(err)\n }\n });\n }\n public static GetConfig(name: string) {\n let asset = this.map[name];\n if (asset == null) {\n console.warn('没有加载config:' + name);\n return null;\n }\n delete this.map[name];\n return asset;\n }\n}","import { Vec3 } from 'cc';\nimport { Asset } from 'cc';\nimport { assetManager } from 'cc';\nimport { Vec2 } from 'cc';\nimport { resources, JsonAsset } from 'cc';\nimport { GameModleComp } from '../game/GameModle';\nimport { Logger } from '../../core/common/log/Logger';\n\nexport enum ConfigFileType {\n OBJ = \"object\",\n List = \"list\"\n}\n\nexport default class ConfigManager {\n private myConfigInfos = new Map();\n private myConfig: object = {};\n private allLoadedCallBack;\n private isLoginResult:boolean;\n baseDir: string = \"config/\";\n\n private static instance: ConfigManager = null; // 单例实例\n\n // 单例获取接口\n public static GetInstance(): ConfigManager {\n if (this.instance != null)\n return this.instance;\n\n this.instance = new ConfigManager();\n return this.instance;\n }\n\n private constructor() { }\n\n // 初始化的时候,把所有表的类型全部读出来,具体配置动态加载\n public init(callback: Function) {\n assetManager.loadBundle(GameModleComp.getInstance().cdnMapSrc + \"loading\" , (err, bundle)=>{\n if (err) {\n console.error(`Failed to load bundle from loading:`, err);\n return;\n }\n bundle.load(\"config/fileType\" , (err: any, res: JsonAsset)=>{\n if (err) {\n console.log(\"加载配置文件失败:fileType.json, error:\" + err);\n return;\n }\n this.isLoginResult=true;\n let json = res.json;\n this.allLoadedCallBack = callback;\n // 先全部放进myConfigInfos里,在异步load的时候检查是否全部加载完成\n for (const i in json) {\n var value = JSON.stringify({ \"type\": json[i][\"type\"], \"key\": json[i][\"key\"] });\n this.myConfigInfos.set(json[i][\"name\"], value);\n Logger.logView(\"======json[i][name]===\"+json[i][\"name\"] +\" value===\"+value );\n }\n for (const i in json) {\n this.load(json[i][\"name\"], json[i][\"type\"], json[i][\"key\"], () => {this.check_all_loaded()});\n }\n })\n })\n\n\n // resources.load(this.baseDir + \"fileType\", (err: any, res: JsonAsset) => {\n // if (err) {\n // console.log(\"加载配置文件失败:fileType.json, error:\" + err);\n // return;\n // }\n // this.isLoginResult=true;\n // let json = res.json;\n // this.allLoadedCallBack = callback;\n // // 先全部放进myConfigInfos里,在异步load的时候检查是否全部加载完成\n // for (const i in json) {\n // var value = JSON.stringify({ \"type\": json[i][\"type\"], \"key\": json[i][\"key\"] });\n // this.myConfigInfos.set(json[i][\"name\"], value);\n // // console.log(\"======json[i][name]===\"+json[i][\"name\"] +\" value===\"+value );\n // }\n // for (const i in json) {\n // this.load(json[i][\"name\"], json[i][\"type\"], json[i][\"key\"], () => {this.check_all_loaded()});\n // }\n // })\n }\n\n private load(name: string, type: string, key: string, callback:Function) {\n assetManager.loadBundle(GameModleComp.getInstance().cdnMapSrc + \"resources\" , (err, bundle)=>{\n if (err) {\n console.error(`Failed to load bundle from loading:`, err);\n return;\n }\n bundle.load(this.baseDir + name, (err: any, res: JsonAsset) => {\n if (err) {\n console.log(\"加载配置文件失败:fileType.json, error:\" + err);\n return;\n }\n let json = res.json;\n switch (type) {\n case ConfigFileType.OBJ:\n this.myConfig[name] = JSON.stringify(json);\n Logger.logView(this.myConfig[name] + \"----\" + json)\n break;\n case ConfigFileType.List:\n let data = {};\n for (const i in json) {\n data[json[i][key]] = JSON.stringify(json[i]);\n }\n this.myConfig[name] = data;\n break;\n default:\n break;\n }\n callback();\n })\n })\n\n\n // resources.load(this.baseDir + name, (err: any, res: JsonAsset) => {\n // if (err) {\n // console.log(\"加载配置文件失败:fileType.json, error:\" + err);\n // return;\n // }\n // let json = res.json;\n // switch (type) {\n // case ConfigFileType.OBJ:\n // this.myConfig[name] = JSON.stringify(json);\n // break;\n // case ConfigFileType.List:\n // let data = {};\n // for (const i in json) {\n // data[json[i][key]] = JSON.stringify(json[i]);\n // }\n // this.myConfig[name] = data;\n // break;\n // default:\n // break;\n // }\n // callback();\n // })\n }\n\n public check_all_loaded(){\n let loadAll = true;\n for(let name of this.myConfigInfos.keys()){\n if(!(name in this.myConfig)){\n loadAll = false;\n }\n }\n\n if(loadAll == true){\n this.allLoadedCallBack();\n }\n }\n\n public getValue(name: string, key?: any) {\n if (name in this.myConfig) {\n let jsonData = this.myConfig[name];\n var fileType = this.getConfigFileType(name);\n if (fileType == ConfigFileType.OBJ)\n return JSON.parse(jsonData);\n else if (fileType == ConfigFileType.List)\n return JSON.parse(jsonData[key]);\n else\n return {};\n }\n else {\n return {};\n }\n }\n\n public getLoadResult(){\n return this.isLoginResult;\n }\n public SetStartValue(name :string,json:JSON){\n this.myConfig[name] = JSON.stringify(json);\n return this.getValue(\"language\");\n }\n public getConfigFileType(name: string): string {\n var json = JSON.parse(this.myConfigInfos.get(name));\n return json.type;\n }\n \n changeObjToPointArray(arrs:Array>):Array{\n let arr:Array = [];\n for(let i = 0 ; i < arrs.length ; i++){\n let test:Vec3 = new Vec3();\n test.x = arrs[i][0];\n test.y = arrs[i][1];\n arr.push(test);\n }\n return arr;\n\n}\n}","// ! 自动导出,请不要修改\n//\n/**\n * Constant config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from \"../_ConfigInject/Config_Decorator\";\n\n@res_auto_bind()\nexport class ConstantPoxy {\n private static _inst: ConstantPoxy;\n public static get Inst(): ConstantPoxy {\n if (ConstantPoxy._inst == null) {\n ConstantPoxy._inst = new ConstantPoxy();\n }\n return ConstantPoxy._inst;\n }\n private keyMap = {\n _0: \"des\",\n _1: \"TypeInt\",\n _2: \"TypeIntArray\",\n _3: \"TypeFloat\",\n _4: \"TypeFloatArray\",\n _5: \"TypeString\",\n _6: \"TypeStringArray\",\n _7: \"TypeListInt\",\n };\n @res_assign(\"Constant\")\n public datas: Constant[];\n private _map: any;\n private get Map(): Map {\n if (this._map == null) {\n this._map = new Map();\n this.datas.forEach(config => {\n this._map.set(config.des, config);\n });\n }\n return this._map;\n }\n public Get(id: string) {\n // return this.Map.get(id);\n }\n}\n\nexport class Constant {\n // /** 名称 */\n des: string;\n // /** 整形 */\n TypeInt: number;\n // /** 整形数组 */\n TypeIntArray: number[];\n // /** 浮点类型 */\n TypeFloat: number;\n // /** 浮点类型数组 */\n TypeFloatArray: number[];\n // /** 字符串类型 */\n TypeString: string;\n // /** 字符串类型数组 */\n TypeStringArray: string[];\n // /** 复杂数组类型 */\n TypeListInt: number[][];\n}","/*\n 二进制文件:\n*/\n\n// 操作码 8 位\nexport enum OpCode {\n // 空指令,占位用\n NOP = 0x00,\n\n // push 基本数据\n UNDEF = 0x01,\n NULL = 0x02,\n OBJ = 0x03,\n ARR = 0x04,\n TRUE = 0x05,\n FALSE = 0x06,\n\n NUM = 0x07, // 后面跟 64 位 double 数字字面量\n ADDR = 0x08,\n STR = 0x09, // 后面跟 16 位为一个字符长度 0x0000 表示结尾的字符串字面量\n\n // 基本栈操作\n POP = 0x0A,\n // SWP = 0x0B,\n // CLEAN = 0x0C,\n TOP = 0x0D,\n TOP2 = 0x0E,\n\n // 数据存储\n VAR = 0x10,\n LOAD = 0x11,\n OUT = 0x12,\n\n // 分支跳转\n JUMP = 0x20,\n JUMPIF = 0x21,\n JUMPNOT = 0x22,\n\n // 函数\n FUNC = 0x30,\n CALL = 0x31,\n NEW = 0x32,\n RET = 0x33,\n\n // 对象操作\n GET = 0x40,\n SET = 0x41,\n // KEYS = 0x42,\n IN = 0x43, // in\n DELETE = 0x44, // delete\n\n // 表运算\n EQ = 0x50, // ==\n NEQ = 0x51, // !=\n SEQ = 0x52, // ===\n SNEQ = 0x53, // !==\n LT = 0x54, // <\n LTE = 0x55, // <=\n GT = 0x56, // >\n GTE = 0x57, // >=\n\n // 数学运算\n ADD = 0x60, // +\n SUB = 0x61, // -\n MUL = 0x62, // *\n EXP = 0x63, // **\n DIV = 0x64, // /\n MOD = 0x65, // %\n\n // 位运算\n BNOT = 0x70, // ~\n BOR = 0x71, // |\n BXOR = 0x72, // ^\n BAND = 0x73,// &\n LSHIFT = 0x73, // <<\n RSHIFT = 0x75, // >>\n URSHIFT = 0x76,// >>>\n\n // 逻辑运算\n OR = 0x80, // ||\n AND = 0x81, // &&\n NOT = 0x82, // !\n\n // 类型运算\n INSOF = 0x90, // instanceof\n TYPEOF = 0x91, // typeof\n}","import { _decorator } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Logger } from \"../../../core/common/log/Logger\";\r\nimport { sp } from \"cc\";\r\nimport { GebolinView } from \"../../role/GebolinView\";\r\nimport { instantiate } from \"cc\";\r\nimport GameEntry from \"../../modules/GameEntry\";\r\nimport { Vec3 } from \"cc\";\r\nimport { CDQuanView } from \"./CDQuanView\";\r\nimport { SpineGmView } from \"../../modules/game/mainui/SpineGmView\";\r\nimport { GameModleComp } from \"../../game/GameModle\";\r\nimport { BuildView } from \"./BuildView\";\r\nimport { SoundManager } from \"../../core/utils/SoundManager\";\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('CunzhuangView')\r\nexport class CunzhuangView extends Component{\r\n @property(Node)\r\n skeleton :Node = null;\r\n\r\n\r\n \r\n cdQuan : CDQuanView = null;\r\n\r\n private _isOpen: boolean = false;\r\n public get isOpen(): boolean {\r\n return this._isOpen;\r\n }\r\n public set isOpen(value: boolean) {\r\n this._isOpen = value;\r\n this.showOpen();\r\n }\r\n\r\n private _buildId: number = 0;\r\n public get buildId(): number {\r\n return this._buildId;\r\n }\r\n public set buildId(value: number) {\r\n this._buildId = value;\r\n }\r\n\r\n private _cdTime: number = 3;\r\n public get cdTime(): number {\r\n return this._cdTime;\r\n }\r\n public set cdTime(value: number) {\r\n this._cdTime = value;\r\n if(this.cdQuan && this.isOpen){\r\n this.cdQuan.cdTime = value;\r\n }\r\n }\r\n\r\n private isCreating:boolean = false;\r\n\r\n private posV3:Vec3;\r\n private canChusheng:boolean = true;\r\n private isFrist:boolean = false;\r\n private myBuild:BuildView;\r\n onLoad(){\r\n\r\n }\r\n init(v3:Vec3 , time:number, buildId:number , isFrist:boolean , build:BuildView){\r\n this.buildId = buildId;\r\n this.posV3 = v3;\r\n this.cdTime = time;\r\n this.isFrist = isFrist;\r\n this.myBuild = build;\r\n }\r\n\r\n update(dt){\r\n if(!GameModleComp.getInstance().isOpenGame){\r\n return;\r\n }\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n if(!this.isOpen){\r\n return;\r\n }\r\n if(this.isCreating){\r\n return;\r\n }\r\n if(GameModleComp.getInstance().openSpineGm){\r\n if(this.canChusheng && SpineGmView.isCanCreate){\r\n this.isCreating = true;\r\n this.showNewGebolin();\r\n }\r\n }else{\r\n if(this.canChusheng){\r\n this.isCreating = true;\r\n this.showNewGebolin();\r\n }\r\n }\r\n }\r\n private onCd(){\r\n this.canChusheng = true;\r\n }\r\n private showNewGebolin(){\r\n if(GameModleComp.getInstance().openSpineGm){\r\n SpineGmView.isCanCreate = false;\r\n }\r\n this.canChusheng = false;\r\n this.skeleton.getComponent(sp.Skeleton).setAnimation(0 , \"s_village_run\" , false);\r\n if(this.isFrist && this.myBuild){\r\n SoundManager.getInstance().playEffectMusic(\"Burst\");\r\n }\r\n this.skeleton.getComponent(sp.Skeleton).setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case \"s_village_run\":\r\n this.showRole();\r\n this.cdQuan.showAction();\r\n this.skeleton.getComponent(sp.Skeleton).setAnimation(0 , \"s_village_wait\" , false);\r\n this.isCreating = false;\r\n if(this.isFrist && this.myBuild){\r\n SoundManager.getInstance().playEffectMusic(\"Pop\");\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private showRole(){\r\n let gebulin:GebolinView = instantiate(GameEntry.Inst.mapView.nowScene.gebulin).getComponent(GebolinView);\r\n gebulin.setPos(new Vec3(this.node.position.x + this.posV3.x , this.node.position.y + this.posV3.y + 24 , 0));\r\n gebulin.init();\r\n GameEntry.Inst.mapView.nowScene.gebolinLayer.addChild(gebulin.node);\r\n\r\n GameEntry.Inst.mapView.gebolinMap.set(gebulin.roleId , gebulin);\r\n }\r\n\r\n showOpen(){\r\n this.node.active = this.isOpen;\r\n if(this.isOpen){\r\n this.cdQuan.init(this.onCd,this);\r\n this.cdQuan.cdTime = this.cdTime;\r\n }\r\n \r\n }\r\n onCunzhaungCLick(){\r\n Logger.logView(\"村庄点击\");\r\n }\r\n\r\n desTroy(){\r\n this.cdQuan.desTroy();\r\n super.destroy();\r\n }\r\n}","import { Label, Vec3, _decorator, tween, Node, AnimationClip, v3, animation, Animation } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { EffectDamage } from \"../skill/SkillInterface\";\r\nimport { DamageType } from \"../skill/SkillEnum\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('DamageLabelViewComp')\r\nexport class DamageLabelViewComp extends Component {\r\n @property(Node)\r\n num : Node = null;\r\n @property(Label)\r\n putong: Label = null;\r\n @property(Label)\r\n skill: Label = null;\r\n @property(Label)\r\n hit: Label = null;\r\n @property(Label)\r\n miss: Label = null;\r\n reset() {\r\n if(this.num){\r\n let animator = this.num.getComponent(Animation)\r\n animator.resume();\r\n }\r\n }\r\n\r\n show(hit) {\r\n this.putong.node.active = false;\r\n this.skill.node.active = false;\r\n this.hit.node.active = false;\r\n this.miss.node.active = false;\r\n let num: number = Math.ceil((hit.effect as EffectDamage).value);\r\n let str: string = \"\";\r\n if (num > 100000000) {\r\n str = (num / 100000000).toFixed(2) + \"yi\";\r\n } else if (num > 10000) {\r\n str = (num / 10000).toFixed(2) + \"wan\";\r\n } else {\r\n str = Math.floor(num) + \"\";\r\n }\r\n if((hit.effect as EffectDamage).iskill){\r\n this.skill.string = str;\r\n this.skill.node.active = true;\r\n }else{\r\n if((hit.effect as EffectDamage).damageType == DamageType.Block){\r\n this.miss.node.active = true;\r\n }else if((hit.effect as EffectDamage).damageType == DamageType.Critical){\r\n this.hit.string = str;\r\n this.hit.node.active = true;\r\n }else{\r\n this.putong.string = str;\r\n this.putong.node.active = true;\r\n }\r\n }\r\n if(this.num){\r\n let animator = this.num.getComponent(Animation)\r\n animator.play();\r\n }\r\n\r\n // tween(this.node)\r\n // .to(5 / 60, { scale: new Vec3(2, 2, 2) })\r\n // .to(10 / 60, { scale: new Vec3(1.3, 1.3, 1.3) })\r\n // .to(10 / 60, { scale: new Vec3(1.5, 1.5, 1.5) })\r\n // .delay(20 / 60)\r\n // .to(15 / 60, { scale: new Vec3(0, 0, 0) })\r\n // .call(() => {\r\n // })\r\n // .start();\r\n }\r\n}","import { DataManager } from \"./DataManager\";\r\n\r\nexport function data_bind(storageName: string) {\r\n return function (_constructor: T) {\r\n DataManager.RegisterCtor(storageName, _constructor);\r\n return _constructor;\r\n }\r\n}\r\n\r\n/**默认值 */\r\nexport function data_default(defaultV: number | string | boolean) {\r\n return function (target: any, propertyKey: string) {\r\n target['_dft_' + propertyKey] = defaultV;\r\n }\r\n}","// 玩家账号相关信息结构\r\nimport { _decorator, Component, Node } from 'cc';\r\nimport Singleton from '../../core/manager/Singleton';\r\n\r\nexport class dataAccout extends Singleton {\r\n\r\n private _userUid: string;\r\n private _reUserUid: string;\r\n private _accessToken: string;\r\n private _sessionId: string;\r\n private _channelType: string;\r\n private _first: string;\r\n\r\n get userUid():string{\r\n return this._userUid;\r\n }\r\n\r\n get reUserUid():string{\r\n return this._reUserUid;\r\n }\r\n\r\n get accessToken():string{\r\n return this._accessToken;\r\n }\r\n\r\n get sessionId():string{\r\n return this._sessionId;\r\n }\r\n\r\n get channelType():string{\r\n return this._channelType;\r\n }\r\n\r\n get first():string{\r\n return this._first;\r\n }\r\n\r\n // 有单独设置需求的单独写set函数\r\n\r\n\r\n public set_value(valueList) {\r\n if (valueList.userUid != undefined) {\r\n this._userUid = valueList.userUid;\r\n }\r\n if (valueList.reUserUid != undefined) {\r\n this._reUserUid = valueList.reUserUid;\r\n }\r\n if (valueList.accessToken != undefined) {\r\n this._accessToken = valueList.accessToken;\r\n }\r\n if (valueList.sessionId != undefined) {\r\n this._sessionId = valueList.sessionId;\r\n }\r\n if (valueList.channelType != undefined) {\r\n this._channelType = valueList.channelType;\r\n }\r\n if (valueList.first != undefined) {\r\n this._first = valueList.first;\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n","import Singleton from \"../../core/manager/Singleton\";\r\n\r\n// 所有战斗相关buff加成效果\r\nexport class dataBuff extends Singleton {\r\n private _allBuff:buffEffect; // 对所有我方单位生效的buff\r\n private _heroBuff:buffEffect; // 对英雄生效的buff\r\n private _allArmyBuff:buffEffect; // 对全体士兵生效的buff\r\n\r\n private _zhanShiBuff:buffEffect; // 对战士生效的buff\r\n private _faShiBuff:buffEffect; // 对法师生效的buff\r\n private _ciKeBuff:buffEffect; // 对刺客生效的buff\r\n private _paoShouBuff:buffEffect; // 对炮手生效的buff\r\n private _heroSkillCdSub:number; // 英雄cd时间减少万分比\r\n\r\n get allBuff():buffEffect {return this._allBuff;}\r\n get heroBuff():buffEffect {return this._heroBuff;}\r\n get allArmyBuff():buffEffect {return this._allArmyBuff;}\r\n get zhanShiBuff():buffEffect {return this._zhanShiBuff;}\r\n get faShiBuff():buffEffect {return this._faShiBuff;}\r\n get ciKeBuff():buffEffect {return this._ciKeBuff;}\r\n get paoShouBuff():buffEffect {return this._paoShouBuff;}\r\n get heroSkillCdSub():number {return this._heroSkillCdSub==undefined ? 0 : this._heroSkillCdSub}\r\n\r\n set allBuff(value:buffEffect) {this._allBuff = value;}\r\n set heroBuff(value:buffEffect) {this._heroBuff = value;}\r\n set allArmyBuff(value:buffEffect) {this._allArmyBuff = value;}\r\n set zhanShiBuff(value:buffEffect) {this._zhanShiBuff = value;}\r\n set faShiBuff(value:buffEffect) {this._faShiBuff = value;}\r\n set ciKeBuff(value:buffEffect) {this._ciKeBuff = value;}\r\n set paoShouBuff(value:buffEffect) {this._paoShouBuff = value;}\r\n set heroSkillCdSub(value:number) {this._heroSkillCdSub = value;}\r\n}\r\n\r\nexport class buffEffect{\r\n public constructor(){};\r\n\r\n private _atkValue:number; // 增加攻击基础值\r\n private _defValue:number; // 增加防御基础值\r\n private _hpValue:number; // 增加血量基础值\r\n\r\n private _atkRate:number; // 按万分比增加攻击\r\n private _defRate:number; // 按万分比增加防御\r\n private _hpRate:number; // 按万分比增加血量\r\n\r\n private _hurtRate:number; // 伤害加成万分比\r\n private _skillHurtRate:number; // 技能伤害加成万分比\r\n private _baoJiRate:number; // 暴击几率万分比\r\n private _baoJiHurtRate:number; // 暴击伤害加成万分比\r\n private _mingZhongRate:number; // 命中万分比\r\n private _zhiLiaoRate:number; // 治疗系数\r\n\r\n private _deHurtRate:number; // 伤害减免万分比\r\n private _deBaoJiRate:number; // 抗暴万分比\r\n private _deShanBiRate:number; // 闪避几率万分比\r\n private _deJianLiaoRate:number; // 降低止疗效果系数\r\n\r\n get atkValue():number{ return this._atkValue;}\r\n get defValue():number{ return this._defValue;}\r\n get hpValue():number{ return this._hpValue;}\r\n get atkRate():number{ return this._atkRate;}\r\n get defRate():number{ return this._defRate;}\r\n get hpRate():number{ return this._hpRate;}\r\n get hurtRate():number{ return this._hurtRate;}\r\n get skillHurtRate():number{ return this._skillHurtRate;}\r\n get baoJiRate():number{ return this._baoJiRate;}\r\n get baoJiHurtRate():number{ return this._baoJiHurtRate;}\r\n get mingZhongRate():number{ return this._mingZhongRate;}\r\n get zhiLiaoRate():number{ return this._zhiLiaoRate;}\r\n get deHurtRate():number{ return this._deHurtRate;}\r\n get deBaoJiRate():number{ return this._deBaoJiRate;}\r\n get deShanBiRate():number{ return this._deShanBiRate;}\r\n get deJianLiaoRate():number{ return this._deJianLiaoRate;}\r\n\r\n set atkValue(value:number){ this._atkValue=value;}\r\n set defValue(value:number){ this._defValue=value;}\r\n set hpValue(value:number){ this._hpValue=value;}\r\n set atkRate(value:number){ this._atkRate=value;}\r\n set defRate(value:number){ this._defRate=value;}\r\n set hpRate(value:number){ this._hpRate=value;}\r\n set hurtRate(value:number){ this._hurtRate=value;}\r\n set skillHurtRate(value:number){ this._skillHurtRate=value;}\r\n set baoJiRate(value:number){ this._baoJiRate=value;}\r\n set baoJiHurtRate(value:number){ this._baoJiHurtRate=value;}\r\n set mingZhongRate(value:number){ this._mingZhongRate=value;}\r\n set zhiLiaoRate(value:number){ this._zhiLiaoRate=value;}\r\n set deHurtRate(value:number){ this._deHurtRate=value;}\r\n set deBaoJiRate(value:number){ this._deBaoJiRate=value;}\r\n set deShanBiRate(value:number){ this._deShanBiRate=value;}\r\n set deJianLiaoRate(value:number){ this._deJianLiaoRate=value;}\r\n}\r\n\r\n","import { _decorator } from 'cc';\r\nimport { IDataProxy, DataProxy } from \"./DataProxy\";\r\nimport LocalStorage from \"./LocalStorage\";\r\ntype ClassRecorder = new (...args: any[]) => {};\r\n\r\nexport class DataManager {\r\n private static _inst: DataManager;\r\n public static get inst(): DataManager {\r\n if (DataManager._inst == null)\r\n DataManager._inst = new DataManager();\r\n return DataManager._inst;\r\n }\r\n public static storageName2ctorMap: { [key: string]: new (...args: any[]) => {} } = {};\r\n public static ctorName2storageNameMap: { [key: string]: string } = {};\r\n public static RegisterCtor(key: string, ctor: new (...args: any[]) => {}) {\r\n this.storageName2ctorMap[key] = ctor;\r\n this.ctorName2storageNameMap[ctor.name] = key;\r\n }\r\n constructor() {\r\n // Laya.timer.frameLoop(5, this, this.Save);\r\n }\r\n\r\n /**数据获取接口,比如从网络获取 */\r\n public storageGet: (name: string) => any;\r\n /**数据存储接口,比如发送给服务器 */\r\n public storageSet: (name: string, data: any) => void;\r\n dataMap: { [key: string]: IDataProxy } = {};\r\n public GetDataRecorder>(key: string, ctor?: new (...args: any[]) => T): T {\r\n\r\n var storageName = key;\r\n\r\n if (this.dataMap[storageName] != null) {\r\n return this.dataMap[storageName] as T;\r\n }\r\n\r\n var data = null;\r\n if (this.storageGet) {\r\n data = this.storageGet(storageName);\r\n } else {\r\n var r = LocalStorage.getItem(storageName);\r\n if (r == null || r == '') {\r\n data = {};\r\n } else {\r\n data = r;\r\n if (typeof r == 'string') {\r\n data = JSON.parse(r);\r\n }\r\n }\r\n }\r\n var t: T;\r\n if (ctor != undefined) {\r\n t = new ctor(storageName, data) as T;\r\n } else {\r\n t = new DataManager.storageName2ctorMap[storageName](storageName, data) as T;\r\n }\r\n this.dataMap[storageName] = t.proxy;\r\n return t.proxy;\r\n }\r\n\r\n public Clear(name: string) {\r\n delete this.dataMap[name];\r\n LocalStorage.removeItem(name);\r\n }\r\n\r\n public Save() {\r\n var keys = Object.keys(this.dataMap);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var dp = this.dataMap[key];\r\n if (dp.dirty) {\r\n if (this.storageSet) {\r\n this.storageSet(dp.storageName, dp);\r\n } else {\r\n LocalStorage.setItem(dp.storageName, dp, true);\r\n }\r\n dp.ClearDirty();\r\n }\r\n }\r\n }\r\n}","// 玩家数据类接口的控制逻辑\r\n\r\n// 登录完成后获取数据的接口\r\nexport function getDataLogin(){\r\n\r\n}\r\n\r\n// 断线重连后获取数据的接口\r\nexport function getDataReconnect(){\r\n\r\n}","import { DataManager } from \"./DataManager\";\r\n\r\nexport abstract class IDataProxy {\r\n storageName: string;\r\n abstract get data();\r\n abstract ClearDirty();\r\n abstract toJSON();\r\n abstract get dirty();\r\n}\r\n\r\nexport abstract class DataProxy> implements IDataProxy {\r\n public storageName: string;\r\n private _proxy: T;\r\n public get proxy(): T {\r\n return this._proxy;\r\n }\r\n private _data: T;\r\n public get data(): T {\r\n return this._data;\r\n }\r\n private _dirty: boolean;\r\n public get dirty(): boolean {\r\n return this._dirty == null ? false : this._dirty;\r\n }\r\n private __dirtyInvoker: (path: string) => void;\r\n\r\n public ClearDirty() {\r\n this._dirty = false;\r\n }\r\n\r\n toJSON() {\r\n return this._data;\r\n }\r\n\r\n constructor(name: string, data: any) {\r\n this.storageName = name;\r\n this._data = data;\r\n this._proxy = new Proxy(this as any, {\r\n set: (target: T, p: string, v: any) => {\r\n /**内部变量 */\r\n switch (p) {\r\n case '_dirty':\r\n case '_proxy':\r\n case '_data':\r\n target[p] = v;\r\n return true;\r\n }\r\n if (target._data[p] != v) {\r\n if (target._data[p] == null && v instanceof Object) {\r\n var baseData = new BaseData(p, v);\r\n target._data[p] = baseData.proxy;\r\n baseData.__dirtyInvoker = this.dirtyInvoker.bind(this);\r\n this._dirty = true;\r\n try {\r\n this.dirtyInvoker(p);\r\n } catch (_error) {\r\n console.error(_error);\r\n console.error(name, data);\r\n }\r\n\r\n return true;\r\n }\r\n target._data[p] = v;\r\n if (target._data[p] == null) {\r\n delete target._data[p];\r\n }\r\n this._dirty = true;\r\n this.dirtyInvoker(p);\r\n }\r\n return true;\r\n },\r\n get: (target: T, p: string) => {\r\n /**访问代理内部值 */\r\n if (target[p] != null) {\r\n return target[p];\r\n }\r\n if (target._data[p] != null) {\r\n return target._data[p];\r\n }\r\n if ((target._data as any).prototype != null) {\r\n let v = (target._data as any).prototype.p;\r\n if (v instanceof Object) {\r\n var baseData = new BaseData(p, v);\r\n target._data[p] = baseData.proxy;\r\n baseData.__dirtyInvoker = this.dirtyInvoker.bind(this);\r\n }\r\n return target._data[p];\r\n }\r\n if (typeof p == 'string') {\r\n if (target['_dft_' + p] != null) {\r\n return target['_dft_' + p];\r\n }\r\n }\r\n return null;\r\n },\r\n ownKeys: (target: T) => {\r\n var keys = Object.keys(target._data);\r\n for (var i = 0; i < keys.length; i++) {\r\n target[keys[i]] = null;\r\n }\r\n return keys;\r\n },\r\n has: (target: T, p) => {\r\n return p in target._data;\r\n }\r\n });\r\n var keys = Object.keys(this._data);\r\n for (var i = 0; i < keys.length; i++) {\r\n var v = this._data[keys[i]];\r\n if (v instanceof Object) {\r\n var baseData = new BaseData(keys[i], v);\r\n baseData.__dirtyInvoker = this.dirtyInvoker.bind(this);\r\n this._data[keys[i]] = baseData.proxy;\r\n }\r\n }\r\n }\r\n\r\n dirtyInvoker(path: string) {\r\n this._dirty = true;\r\n if (this.__dirtyInvoker) {\r\n this.__dirtyInvoker(this.storageName + '/' + path);\r\n } else {\r\n var storge = DataManager.ctorName2storageNameMap[this._proxy.constructor.name];\r\n // console.log('本地数据', storge, ':' + path, ' 改变');\r\n }\r\n }\r\n}\r\n\r\nclass BaseData extends DataProxy{\r\n\r\n}\r\n\r\n\r\n\r\n","// server相关信息的数据结构\r\nexport class dataServer {\r\n private _gmServerId:number;\r\n private _showName:string;\r\n private _serverIp:string;\r\n private _serverPort:string;\r\n private _serverStatus:number;\r\n private _serverNum:number;\r\n\r\n public constructor(jsonData){\r\n if (jsonData.gmServerId != undefined) {\r\n this._gmServerId = jsonData.gmServerId;\r\n }\r\n if (jsonData.showName != undefined) {\r\n this._showName = jsonData.showName;\r\n }\r\n if (jsonData.serverIp != undefined) {\r\n this._serverIp = jsonData.serverIp;\r\n }\r\n if (jsonData.serverPort != undefined) {\r\n this._serverPort = jsonData.serverPort;\r\n }\r\n if (jsonData.serverStatus != undefined) {\r\n this._serverStatus = jsonData.serverStatus;\r\n }\r\n if (jsonData.serverNum != undefined) {\r\n this._serverNum = jsonData.serverNum;\r\n }\r\n }\r\n\r\n get gmServerId():number{\r\n return this._gmServerId;\r\n }\r\n\r\n get showName():string{\r\n return this._showName;\r\n }\r\n\r\n get serverIp():string{\r\n return this._serverIp;\r\n }\r\n\r\n get serverPort():string{\r\n return this._serverPort;\r\n }\r\n\r\n get serverStatus():number{\r\n return this._serverStatus;\r\n }\r\n get serverNum():number{\r\n return this._serverNum;\r\n }\r\n}\r\n\r\n\r\n","import Singleton from \"../../core/manager/Singleton\";\r\nimport { dataServer } from \"./dataServer\";\r\n\r\nexport class dataServerList extends Singleton{\r\n private _defaultServer:dataServer = null;\r\n private _allServerList: dataServer[] = [];\r\n private _selectServer:dataServer = null;\r\n\r\n get defaultServer(){\r\n return this._defaultServer;\r\n }\r\n\r\n set defaultServer(defaultServer){\r\n this._defaultServer=defaultServer;\r\n }\r\n\r\n get allServerList(){\r\n return this._allServerList;\r\n }\r\n\r\n set allServerList(allServerList){\r\n this._allServerList=allServerList;\r\n }\r\n\r\n get selectServer(){\r\n return this._selectServer;\r\n }\r\n\r\n set selectServer(selectServer){\r\n this._selectServer=selectServer;\r\n }\r\n\r\n}\r\n\r\n\r\n","// 玩家角色相关信息结构\r\nimport { assetManager } from 'cc';\r\nimport { Logger } from '../../../core/common/log/Logger';\r\nimport Singleton from '../../core/manager/Singleton';\r\nimport { Long } from '../../proto/proto';\r\nimport { Pass, PassPoxy } from '../game/proxy/PassPoxy';\r\nimport { MapPoxy, Maps } from '../game/proxy/MapPoxy';\r\nimport { GameModleComp } from '../../game/GameModle';\r\nimport GameEntry from '../GameEntry';\r\nimport { EventManager, EventType } from '../../core/manager/EventManager';\r\nimport { GuideManager } from '../game/guilde/GuideManager';\r\n\r\nexport class dataUser extends Singleton {\r\n\r\n private _unitUID: string; // 玩家实例id\r\n private _unitUIDStr: String; // 玩家实例ID字符串\r\n private _nick: string; // 昵称\r\n private _nickChangeTime: number; // 改名次数\r\n private _nth: number; // 字串\r\n private _userId: string; // 账号id\r\n\r\n private _resId: number; // 头像id\r\n private _frameId: number; // 头像边框\r\n private _gold: number; // 金币\r\n private _coin: number; // 银币\r\n private _diamond: number; // 钻石\r\n private _magic: number; // 矩阵\r\n private _call: number; // 召唤券\r\n private _challenge: number; // 挑战券\r\n private _passId: number = 0; // 通关id\r\n private _star: number; // 星钻\r\n private _power: number; // 战力\r\n\r\n // 有单独获取和设置需求的私有成员单独写get和set方法\r\n get unitUID():string{\r\n return this._unitUID;\r\n }\r\n\r\n get unitUIDStr():String{\r\n return this._unitUIDStr;\r\n }\r\n\r\n get userId():string{\r\n return this._userId;\r\n }\r\n\r\n get nick():string{\r\n return this._nick;\r\n }\r\n\r\n get nth():number{\r\n return this._nth;\r\n }\r\n\r\n get resId():number{\r\n return this._resId;\r\n }\r\n\r\n get frameId():number{\r\n return this._frameId;\r\n }\r\n\r\n get gold():number{\r\n return this._gold;\r\n }\r\n\r\n get coin():number{\r\n return this._coin;\r\n }\r\n\r\n get diamond():number{\r\n return this._diamond;\r\n }\r\n\r\n get magic():number{\r\n return this._magic;\r\n }\r\n\r\n get call():number{\r\n return this._call;\r\n }\r\n\r\n get challenge():number{\r\n return this._challenge;\r\n }\r\n\r\n get passId():number{\r\n return this._passId;\r\n }\r\n\r\n get star():number{\r\n return this._star;\r\n }\r\n\r\n get power():number{\r\n return this._power;\r\n }\r\n\r\n\r\n set unitUID(unitUID:string){\r\n this._unitUID = unitUID;\r\n }\r\n\r\n set unitUIDStr(unitUIDStr:String){\r\n this._unitUIDStr = unitUIDStr;\r\n }\r\n\r\n set nick(nick:string){\r\n this._nick = nick;\r\n }\r\n\r\n set nth(nth:number){\r\n this._nth = nth;\r\n }\r\n\r\n get nickChangeTime():number{\r\n return this._nickChangeTime;\r\n }\r\n set nickChangeTime(nickChangeTime:number){\r\n this._nickChangeTime = nickChangeTime;\r\n }\r\n public up_data(valueList) {\r\n if (valueList.unitUID != undefined) {\r\n this._unitUID = valueList.unitUID;\r\n }\r\n if (valueList.nickName != undefined) {\r\n this._nick = valueList.nickName;\r\n }\r\n if (valueList.nickChangeTime != undefined) {\r\n this._nickChangeTime = valueList.nickChangeTime;\r\n }\r\n if (valueList.userId != undefined) {\r\n this._userId = valueList.userId;\r\n }\r\n\r\n if (valueList.nth != undefined) {\r\n this._nth = valueList.nth;\r\n }\r\n if (valueList.resId != undefined) {\r\n this._resId = valueList.resId;\r\n }\r\n if (valueList.frameId != undefined) {\r\n this._frameId = valueList.frameId;\r\n }\r\n if (valueList.star != undefined) {\r\n this._star = valueList.star;\r\n }\r\n if (valueList.gold != undefined) {\r\n this._gold = valueList.gold;\r\n }\r\n if (valueList.coin != undefined) {\r\n this._coin = valueList.coin;\r\n }\r\n if (valueList.diamond != undefined) {\r\n this._diamond = valueList.diamond;\r\n }\r\n if (valueList.magic != undefined) {\r\n this._magic = valueList.magic;\r\n }\r\n if (valueList.call != undefined) {\r\n this._call = valueList.call;\r\n }\r\n if (valueList.challenge != undefined) {\r\n this._challenge = valueList.challenge;\r\n }\r\n if (valueList.power != undefined) {\r\n this._power = valueList.power;\r\n }\r\n if (valueList.passId != undefined) {\r\n this._passId = valueList.passId;\r\n Logger.logNet(\"收到服务器发送的关卡信息 , 当前关卡:\" + this._passId);\r\n let isNew:boolean = false\r\n if(!GameModleComp.getInstance().selectGuankaId){\r\n isNew = true;\r\n }\r\n GameModleComp.getInstance().selectGuankaId = dataUser.Instance().passId+1\r\n if(!isNew){\r\n GuideManager.getInstance().showGuide();\r\n }\r\n Logger.logNet(\"前端修正关卡 , 当前实际关卡:\" + GameModleComp.getInstance().selectGuankaId);\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let b = assetManager.getBundle(\"mapRes\");\r\n if(b){\r\n let map:Maps = MapPoxy.Inst.getMapById(pass.mapId);\r\n if(GameModleComp.getInstance().loadResource == null){\r\n GameModleComp.getInstance().loadResource = map.mapSource\r\n b.loadDir(\"map/\"+map.mapSource, (err, assets)=> {\r\n Logger.logView(\"datauser 初始化map/\"+map.mapSource+\" 结束\")\r\n });\r\n }\r\n }\r\n EventManager.Inst.event(EventType.SEVER_CHANGE_PASS)\r\n EventManager.Inst.event(EventType.OPEN_ADVANCESHOW_UI)\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n","/**\n * DaySevenProxy config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport {c1052, s1052, c1053, s1053,c1054, s1054, p_reward, p_process, p_task } from '../../../proto/proto';\nimport {res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\n@res_auto_bind()\nexport class DaySevenProxy {\n private static _inst: DaySevenProxy;\n static DaySevenProxy: any;\n public static get Inst(): DaySevenProxy {\n if (DaySevenProxy._inst == null) {\n DaySevenProxy._inst = new DaySevenProxy();\n }\n return DaySevenProxy._inst;\n }\n\n\n public InitSevenTaskAllConfig(){\n this.InitSevenTaskConfig();\n this.InitSevenProcessConfig();\n }\n @res_assign(\"SevenTask\")\n public SevenTaskDataList: SevenTask[];\n public InitSevenTaskConfig() {\n if (this.SevenTaskDataList == null) {\n this.SevenTaskDataList = [];\n }\n let SevenTaskDataConfig = ConfigManager.GetInstance().getValue(\"SevenTask\")\n for (var key in SevenTaskDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SevenTask\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SevenTaskDataList.push(item);\n }\n\n }\n }\n /** 根据day获取SevenTask */\n public GetSevenTaskDatasByDay(day: number) {\n if (this.SevenTaskDataList == null) {\n this.InitSevenTaskConfig();\n }\n let seventask :SevenTask[]=[];\n for(let i=0;i {\n return a.id - b.id\n });\n }\n\n if(DaySevenProxy.Inst.SevenTaskList==undefined){\n DaySevenProxy.Inst.SevenTaskList=[];\n }\n DaySevenProxy.Inst.SevenTaskList.length=0;\n // console.log(\"===================接收是s1052=============s1052.taskInfo====\"+s1052.taskInfo);\n if(s1052.taskInfo!=undefined){\n // for(let i=0;i;/** 奖励列表 */\n}\n// export enum payType {\n// yuanbao = 1,//充值购买元宝\n// zhufu = 2,//祝福\n// libao = 3,//礼包\n// yingxiong = 4,//英雄\n// cunzhaung = 5,//村庄\n// gongchang = 6,//工厂\n// xiangouday = 7,//每日限购\n// xiangouweek = 8//每周限购\n// }\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { instantiate } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { Button } from \"cc\";\nimport { Component } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { Vec3 } from \"cc\";\nimport { SignProxy, SignTotal } from \"../proxy/SignProxy\";\nimport { p_task } from \"../../../proto/proto\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { sp } from \"cc\";\nimport { ProgressBar } from \"cc\";\nimport { RichText } from \"cc\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { DaySevenProxy, SevenProcess, SevenTask } from \"../proxy/DaySevenProxy\";\nimport { TaskProxy } from \"../proxy/TaskProxy\";\nimport { stringDump } from \"../../../../../@types/packages/scene/@types/cce/export/dump/types/string-dump\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport { time } from \"console\";\nimport { Toggle } from \"cc\";\nimport { CommonMsgProxy } from \"../proxy/CommonMsgProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('DaySevenUI')\nexport default class DaySevenUI extends BasePanel {\n\n\n activiData: number;//当前活动是第几天\n\n CurrentDay: number;//当前点击的第几天\n\n LeiJiDay: number;//当前完成任务个数\n\n timeDayCallback: any;\n last: number;\n\n @property(Button) Button_hero: Button | null = null;\n @property(Button) ProgressBar_leiji: Button | null = null;\n \n @property(Node) Panle_item: Node | null = null;\n @property(Node) Label_boxbing: Node | null = null;\n\n @property(Node) Label_jindu: Node | null = null;\n @property(Node) Label_lasttime: Node | null = null;\n @property(Node) ToggleGroup: Node | null = null;\n @property(Node) ToggleGroup1: Node | null = null;\n //任务\n @property(Node) Layout_list: Node | null = null;\n list: Node | null = null;\n prfablist: Node | null = null;\n //累计奖励\n @property(Node) Layout_box: Node | null = null;\n box: Node | null = null;\n prfabbox: Node | null = null;\n\n\n @property(Node) Layout_item: Node | null = null;\n item: Node | null = null;\n prfabitem: Node | null = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_back\") {\n this.close(true)\n } else if (name == \"Toggle_day1\") {\n this.SetIndexDayContent(1);\n }\n else if (name == \"Toggle_day2\") {\n this.SetIndexDayContent(2);\n }\n else if (name == \"Toggle_day3\") {\n this.SetIndexDayContent(3);\n }\n else if (name == \"Toggle_day4\") {\n this.SetIndexDayContent(4);\n }\n else if (name == \"Toggle_day5\") {\n this.SetIndexDayContent(5);\n }\n else if (name == \"Toggle_day6\") {\n this.SetIndexDayContent(6);\n }\n else if (name == \"Toggle_day7\") {\n this.SetIndexDayContent(7);\n } else if (name == \"Button_hero\") {\n let data = DaySevenProxy.Inst.SevenProcessDataList[this.last];\n let serverReward = DaySevenProxy.Inst.SevenProcessList.find(item => item.id == data.id);\n if (serverReward) {\n if (GlobalFunction.ConvertUndefinedToNumber(serverReward.state) == 0 && this.LeiJiDay >= data.num) {\n DaySevenProxy.Inst.SendC1053(data.id);\n return;\n }\n }\n // WindowManager.Instance().open(GameConst.winPath.AdvanceHeroUI, 1002);\n WindowManager.Instance().open(GameConst.winPath.HeroTipsUI, 1002, true);\n } else if (name == \"Button_Mask\") {\n this.Panle_item.active = false;\n }\n }\n start() {\n this.addEvent();\n DaySevenProxy.Inst.SendC1052();\n }\n private addEvent() {\n EventManager.Inst.on(EventType.REFRESH_DAYSEVEN_UI, this, this.RefreshDaySevenUI);\n EventManager.Inst.on(EventType.REFRESH_DAYSEVENLEIJI_UI, this, this.ShowLeiJiReward);\n }\n\n onShow(data: any): void {\n this.CurrentDay = 1;\n }\n\n RefreshDaySevenUI() {\n this.SetIndexDayContent(this.CurrentDay);\n }\n // int32 taskId=1; // 任务id\n // int32 state=2; // 任务状态,1-已接取,2-可领奖,3-条件不满足,4-完成\n // int32 now_content=3; // 当前进度\n // int32 max_content=4; // 最大进度\n\n SetIndexDayContent(index: number) {\n\n this.CurrentDay = index;\n let currentTime = GameModleComp.getInstance().serverTime;\n let tomorrowtime = DaySevenProxy.Inst.SevenEndTime;\n let different = tomorrowtime - currentTime;\n if (different > 0) {\n let times = TimePoxy.Inst.RetunDaySevenTimeDay(different);\n this.activiData = times == 0 ? 1 : times;\n }\n console.log(\"this.activiData====\"+this.activiData);\n let daysevenlist = DaySevenProxy.Inst.GetSevenTaskDatasByDay(this.CurrentDay);\n if(index<=this.activiData){\n this.SortSevenList(daysevenlist);\n }\n this.prfablist = this.list;\n this.Layout_list.removeAllChildren();\n for (let i = 0; i < daysevenlist.length; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prfablist);\n if (itemNode) {\n itemNode.parent = this.Layout_list;\n\n let sevendata = daysevenlist[i];\n let p_task: p_task = DaySevenProxy.Inst.SevenTaskList.find(item => item.taskId == sevendata.id);\n // if (p_task) {\n let itemid = sevendata.item;\n let itemnum = sevendata.itemNum;\n let itemdata = ItemProxy.Inst.GetItemDataByID(itemid);\n //console.log(\"itemid=====\"+itemid+\" itemdata.name===\"+itemdata.lan_name+\" itemnum===\"+itemnum);\n\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_itemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_item = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, itemdata.icon);\n let Label_item = Button_item.getChildByName(\"Label_item\").getComponent(Label);\n Label_item.string = GlobalFunction.ConvertNumberWithUnit(itemnum);\n\n\n let Label_listdec = itemNode.getChildByName(\"Label_listdec\").getComponent(Label);\n let newContent: string[] = [];\n for (let i = 0; i < sevendata.ay_task.length; i++) {\n let type = Number(sevendata.ay_task[i]);\n if (type == 1) {\n newContent.push(GlobalFunction.GetMsg(Number(sevendata.ay_taskNum[i])));\n } else {\n newContent.push(sevendata.ay_taskNum[i]);\n }\n }\n Label_listdec.string = StringUtil.stringAyFormat(sevendata.lan_task, newContent);\n\n let ProgressBars = itemNode.getChildByName(\"ProgressBar_list\");\n ProgressBars.active = index <= this.activiData;\n if(ProgressBars.active && p_task!=undefined){\n let ProgressBar_list = itemNode.getChildByName(\"ProgressBar_list\").getComponent(ProgressBar);\n ProgressBar_list.progress =p_task.now_content / p_task.max_content;\n let Label_list = ProgressBar_list.node.getChildByName(\"Label_list\").getComponent(Label);\n Label_list.string = GlobalFunction.ConvertUndefinedToNumber(p_task.now_content) + \"/\" + GlobalFunction.ConvertUndefinedToNumber(p_task.max_content);\n }\n \n let Sprite_yilingqu = itemNode.getChildByName(\"Sprite_yilingqu\");\n let Button_get = itemNode.getChildByName(\"Button_get\");\n let Button_go = itemNode.getChildByName(\"Button_go\");\n Button_get.active = p_task==undefined?false: p_task.state == 2 && index <= this.activiData;\n Button_go.active =p_task==undefined?false: p_task.state != 2 && p_task.state != 4 && index <= this.activiData;\n Sprite_yilingqu.active =p_task==undefined?false: p_task.state == 4 && index <= this.activiData;\n\n if (Button_get.active) {\n this.bindClickGetEvent(Button_get, p_task.taskId);\n }\n\n if (Button_go.active) {\n this.bindClickGoEvent(Button_go, sevendata.jump_id);\n }\n this.bindClickItemEvent(Button_item, itemid);\n // }\n\n }\n }\n }\n\n\n /**排序 */\n private SortSevenList(sevenlist :SevenTask[]) {\n sevenlist.sort(function (a, b) {\n\n // int32 state=2; // 任务状态,1-已接取,2-可领奖,3-条件不满足,4-完成\n\n const detailA = DaySevenProxy.Inst.SevenTaskList.find(item => item.taskId == a.id), detailB = DaySevenProxy.Inst.SevenTaskList.find(item => item.taskId == b.id);\n \n let state1 = 0;\n let state2 = 0;\n\n if(detailA.state==2){\n state1 = 0;\n }else if(detailA.state==1){\n state1 = 1;\n }else if(detailA.state==4){\n state1 = 2;\n }else if(detailA.state==3){\n state1 = 3;\n }\n if(detailB.state==2){\n state2 = 0;\n }else if(detailB.state==1){\n state2 = 1;\n }else if(detailB.state==4){\n state2 = 2;\n }else if(detailB.state==3){\n state2 = 3;\n }\n if(state1==state2){\n return detailA.taskId -detailB.taskId;\n }else{\n return state1 -state2;\n }\n });\n}\n\n\n /**积累宝箱宝箱 */\n ShowLeiJiReward() {\n this.prfabbox = this.box;\n this.Layout_box.removeAllChildren();\n this.LeiJiDay = DaySevenProxy.Inst.SevenJiDu;\n this.last = DaySevenProxy.Inst.SevenProcessDataList.length - 1;\n for (let i = 0; i < DaySevenProxy.Inst.SevenProcessDataList.length; i++) {\n if (i < DaySevenProxy.Inst.SevenProcessDataList.length - 1) {\n let itemNode = instantiate(this.prfabbox);\n if (itemNode) {\n itemNode.parent = this.Layout_box;\n let data = DaySevenProxy.Inst.SevenProcessDataList[i];\n let Button_box = itemNode.getChildByName(\"Button_box\");\n\n let serverReward = DaySevenProxy.Inst.SevenProcessList.find(item => item.id == data.id);\n if (serverReward) {\n let Sprite_boxwait = Button_box.getChildByName(\"Sprite_boxwait\");\n let Sprite_boxopen = Button_box.getChildByName(\"Sprite_boxopen\");\n let Sprite_boxover = Button_box.getChildByName(\"Sprite_boxover\");\n Sprite_boxwait.active = GlobalFunction.ConvertUndefinedToNumber(serverReward.state) == 0 && this.LeiJiDay < data.num;\n Sprite_boxopen.active = GlobalFunction.ConvertUndefinedToNumber(serverReward.state) == 0 && this.LeiJiDay >= data.num;\n Sprite_boxover.active = GlobalFunction.ConvertUndefinedToNumber(serverReward.state) == 1;\n let openboxSkeleton = Sprite_boxopen.getChildByName(\"e_ui_daysignui_open\").getComponent(sp.Skeleton);\n let Label_box = Button_box.getChildByName(\"Label_box\").getComponent(Label);\n Label_box.string = data.num + \"\";\n let Sprite_boxred = Button_box.getChildByName(\"Sprite_boxred\");\n Sprite_boxred.active = Sprite_boxopen.active;\n if (Sprite_boxwait.active) {\n this.bindClickWaitEvent(Button_box, i);\n }\n if (Sprite_boxopen.active) {\n openboxSkeleton.setAnimation(0, \"e_ui_daysignui_remind\", true);\n this.bindClickOpenEvent(Button_box, i);\n }\n\n }\n\n }\n }\n\n let ProgressBar_leiji = this.ProgressBar_leiji.getComponent(ProgressBar);\n ProgressBar_leiji.progress = this.LeiJiDay / + DaySevenProxy.Inst.SevenTaskDataList.length;\n\n }\n let lastdata = DaySevenProxy.Inst.SevenProcessDataList[this.last];\n let Label_boxbing = this.Label_boxbing.getComponent(Label);\n Label_boxbing.string = lastdata.num + \"\";\n let Label_jindu = this.Label_jindu.getComponent(Label);\n Label_jindu.string = this.LeiJiDay + \"/\" + DaySevenProxy.Inst.SevenTaskDataList.length;\n this.ShowDayDownTime();\n\n // for (let index = 0; index < this.ToggleGroup1.children.length; index++) {\n // let Buttonchild = this.ToggleGroup1.children[index];\n // let child = this.ToggleGroup1.children[index];\n // if (this.activiData >= index + 2) {\n // Buttonchild.active = false;\n // } else {\n // Buttonchild.active = true;\n // this.bindClickToggleEvent(Buttonchild, index + 2);\n // }\n // }\n }\n\n\n //点击toggle\n bindClickToggleEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickToggle\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickToggle(itemnode, itemids) {\n CommonMsgProxy.Inst.ShowCommonMsg(1032);\n }\n\n //点击领取奖励\n bindClickGetEvent(itemnode: Node, taskid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGet\";\n clickEventHandler.customEventData = taskid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickGet(itemnode, taskids) {\n let taskid = Number(taskids);\n DaySevenProxy.Inst.SendC1054(taskid);\n }\n\n\n //点击前往\n bindClickGoEvent(itemnode: Node, jump_id: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGo\";\n clickEventHandler.customEventData = jump_id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickGo(itemnode, jump_id) {\n let jumpid = parseInt(jump_id);\n this.close(true);\n TaskProxy.Inst.TaskJumpFuncation(jumpid);\n\n }\n\n //点击道具\n bindClickItemEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n ShowDayDownTime() {\n let currentTime = GameModleComp.getInstance().serverTime;\n let tomorrowtime = DaySevenProxy.Inst.SevenEndTime;\n let different = tomorrowtime - currentTime;\n let timelabel = this.Label_lasttime.getComponent(Label);\n if (different > 0) {\n timelabel.string = TimePoxy.Inst.ShowDaySevenTimeLabel(different);\n this.timeDayCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = TimePoxy.Inst.ShowDaySevenTimeLabel(different);\n\n } else {\n DaySevenProxy.Inst.SendC1052();\n this.unschedule(this.timeDayCallback);\n timelabel.string = TimePoxy.Inst.ShowDaySevenTimeLabel(0);\n }\n }\n this.schedule(this.timeDayCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowDaySevenTimeLabel(0);\n }\n }\n\n //点击open宝箱\n bindClickOpenEvent(itemnode: Node, index: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickOpenBox\";\n clickEventHandler.customEventData = index + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickOpenBox(itemnode, indexs) {\n let nodes = itemnode.target;\n let openboxSkeleton = nodes.getChildByName(\"Sprite_boxopen\").getChildByName(\"e_ui_daysignui_open\").getComponent(sp.Skeleton);\n let index = parseInt(indexs)\n let data = DaySevenProxy.Inst.SevenProcessDataList[index];\n openboxSkeleton.setAnimation(0, \"e_ui_daysignui_open\", false);\n openboxSkeleton.setCompleteListener((trackEntry) => {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name) {\n case \"e_ui_daysignui_open\":\n DaySevenProxy.Inst.SendC1053(data.id);\n break;\n default:\n break;\n }\n });\n\n }\n\n\n\n //点击wait宝箱\n bindClickWaitEvent(itemnode: Node, index: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickWaitBox\";\n clickEventHandler.customEventData = index + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickWaitBox(itemnode, indexs) {\n let index = parseInt(indexs);\n this.ShowBoxDec(index);\n }\n\n public ShowBoxDec(index: number) {\n //展示\n this.prfabitem = this.item;\n this.Layout_item.removeAllChildren();\n let signtotalConfig = DaySevenProxy.Inst.SevenProcessDataList[index];\n let signtotalServer = DaySevenProxy.Inst.SevenProcessList[index];\n if (!this.Panle_item.active) {\n this.Panle_item.active = true;\n }\n this.Panle_item.position = new Vec3(this.Layout_box.children[index].position.x, this.Panle_item.position.y, 0);\n if (signtotalServer.rewards != undefined) {\n\n for (let index = 0; index < signtotalServer.rewards.length; index++) {\n const element = signtotalServer.rewards[index];\n let itemNode = instantiate(this.prfabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item;\n let itemdata = ItemProxy.Inst.GetItemDataByID(element.id);\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_itemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_item = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, itemdata.icon);\n let Labe_item = Button_item.getChildByName(\"Labe_item\").getComponent(Label);\n Labe_item.string = element.num + \"\";\n this.bindClickDayChildEvent(Button_item, itemdata.itemID);\n }\n }\n } else {\n for (const [key, value] of Array.from(signtotalConfig.kv_reward.entries())) {\n let itemNode = instantiate(this.prfabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item;\n let itemdata = ItemProxy.Inst.GetItemDataByID(Number(key));\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_itemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_item = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, itemdata.icon);\n let Labe_item = Button_item.getChildByName(\"Labe_item\").getComponent(Label);\n Labe_item.string = value;\n this.bindClickDayChildEvent(Button_item, itemdata.itemID);\n }\n }\n }\n\n\n }\n\n bindClickDayChildEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickChildItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickChildItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n this.unschedule(this.timeDayCallback);\n }\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { instantiate } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { Button } from \"cc\";\nimport { Component } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { Vec3 } from \"cc\";\nimport { SignProxy, SignTotal } from \"../proxy/SignProxy\";\nimport { s1022 } from \"../../../proto/proto\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { sp } from \"cc\";\nimport { ProgressBar } from \"cc\";\nimport { RichText } from \"cc\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('DaySignUI')\nexport default class DaySignUI extends BasePanel {\n\n\n SignDayaData: s1022;\n day1: number;\n todaySign: number;\n day2: number;\n rewardDay2: number;\n\n openboxSkeleton: sp.Skeleton;\n\n signtotalList: SignTotal[];\n //small\n @property(Node) Layout_day: Node | null = null;\n day: Node | null = null;\n prfabday: Node | null = null;\n //big\n @property(Node) Layout_itembing: Node | null = null;\n itembing: Node | null = null;\n prfabitembing: Node | null = null;\n\n //leiji\n @property(Node) Layout_box: Node | null = null;\n box: Node | null = null;\n prfabbox: Node | null = null;\n //zhanshi\n @property(Node) Layout_item: Node | null = null;\n item: Node | null = null;\n prfabitem: Node | null = null;\n\n\n\n @property(Node) Panle_item: Node | null = null;\n @property(Button) Button_get: Button | null = null;\n\n\n\n @property(Node) Label_daybig: Node | null = null;\n @property(Node) Label_daylj: Node | null = null;\n @property(Node) ProgressBar_leiji: Node | null = null;\n\n @property(Node) Label_tips: Node | null = null;\n \n\n e_ui_daysignui_bi : Node | null = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_get\") {\n SignProxy.Inst.SendC1023();\n } else if (name == \"Button_Mask\") {\n this.Panle_item.active = false;\n }\n }\n start() {\n this.addEvent();\n SignProxy.Inst.SendC1022();\n }\n private addEvent() {\n\n EventManager.Inst.on(EventType.UPDATE_SIGN_UI, this, this.UpdateSignUI);\n\n }\n\n onShow(data: any): void {\n\n }\n UpdateSignUI(): void {\n // int32 day1=1; // 循环签到的签到天数\n // int32 todaySign=2; // 当天是否已签到,0-没有,1-有\n // int32 day2=3; // 总签到天数\n // int32 rewardDay2=4; // 总签到领奖天数\n this.SignDayaData = SignProxy.Inst.SignDayaServerData;\n this.todaySign = GlobalFunction.ConvertUndefinedToNumber(this.SignDayaData.todaySign);\n if (this.todaySign == 0) {\n this.day1 = GlobalFunction.ConvertUndefinedToNumber(this.SignDayaData.day1) + 1;\n } else {\n this.day1 = GlobalFunction.ConvertUndefinedToNumber(this.SignDayaData.day1);\n }\n this.day2 = GlobalFunction.ConvertUndefinedToNumber(this.SignDayaData.day2);\n this.rewardDay2 = GlobalFunction.ConvertUndefinedToNumber(this.SignDayaData.rewardDay2);\n let signdayList = SignProxy.Inst.SignDayDataList;\n\n this.Label_tips.active=false;\n this.Label_tips.getComponent(Label).string = GlobalFunction.GetMsg(10157);\n this.Label_daylj.getComponent(RichText).string =StringUtil.stringFormat(GlobalFunction.GetMsg(20214),this.day2);\n this.Button_get.getComponent(Sprite).grayscale = this.todaySign == 1;\n this. e_ui_daysignui_bi.active = this.todaySign != 1\n this.prfabday = this.day;\n this.Layout_day.removeAllChildren();\n\n\n //leiji\n // int32 day2=3; // 总签到天数\n // int32 rewardDay2=4; // 总签到领奖天数\n for (let i = 0; i < 7; i++) {\n if (i == 6) {\n this.Label_daybig.getComponent(RichText).string =StringUtil.stringFormat(GlobalFunction.GetMsg(20213),7);\n\n this.prfabitembing = this.itembing;\n this.Layout_itembing.removeAllChildren();\n for (const [key, value] of Array.from(signdayList[i].kv_rewards.entries())) {\n let itemNode = instantiate(this.prfabitembing);\n if (itemNode) {\n itemNode.parent = this.Layout_itembing;\n\n // console.log(\"key===========\" + key + \" value=======\" + value);\n let Button_itembing = itemNode.getChildByName(\"Button_itembing\");\n let itemdata = ItemProxy.Inst.GetItemDataByID(parseInt(key));\n let Sprite_itembingkuang = Button_itembing.getChildByName(\"Sprite_itembingkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itembingkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_itembing = Button_itembing.getChildByName(\"Sprite_itembing\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itembing, itemdata.icon);\n let Label_itenbing = Button_itembing.getChildByName(\"Label_itenbing\").getComponent(Label);\n Label_itenbing.string = value;\n\n this.bindClickDayChildEvent(Button_itembing, itemdata.itemID);\n }\n }\n } else {\n let itemNode = instantiate(this.prfabday);\n if (itemNode) {\n itemNode.parent = this.Layout_day;\n let temid;\n let itemnum;\n\n let Sprite_dayover = itemNode.getChildByName(\"Sprite_dayover\");\n\n if (i + 1 <= this.day1) {\n Sprite_dayover.active = true;\n }\n if (i + 1 == this.day1) {\n Sprite_dayover.active = this.todaySign == 1;\n }\n\n for (const [key, value] of Array.from(signdayList[i].kv_rewards.entries())) {\n temid = key;\n itemnum = value;\n }\n\n let itemdata = ItemProxy.Inst.GetItemDataByID(parseInt(temid));\n let Button_days = itemNode.getChildByName(\"Button_day\");\n\n let Label_day = Button_days.getChildByName(\"Label_day\").getComponent(RichText);\n Label_day.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20213),(i + 1));\n\n let Button_day = Button_days.getChildByName(\"Button_itemkuang\");\n\n let Sprite_itemkuang = Button_day.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_item = Button_day.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, itemdata.icon);\n let Label_iten = Button_day.getChildByName(\"Label_iten\").getComponent(Label);\n Label_iten.string = itemnum;\n this.bindClickDayChildEvent(Button_day, itemdata.itemID);\n\n }\n\n }\n }\n\n\n let leiNum = Math.floor(this.day2 / 10);\n\n this.signtotalList = SignProxy.Inst.SignTotalDataList;\n this.prfabbox = this.box;\n this.Layout_box.removeAllChildren();\n for (let i = 0; i < this.signtotalList.length; i++) {\n let itemNode = instantiate(this.prfabbox);\n if (itemNode) {\n itemNode.parent = this.Layout_box;\n let data = this.signtotalList[i];\n let Button_box = itemNode.getChildByName(\"Button_box\");\n let Label_box = Button_box.getChildByName(\"Label_box\").getComponent(Label);\n\n let currentday = (leiNum * 10) + (i + 1) * 2;\n Label_box.string = currentday + \"\";\n\n let Sprite_boxover = Button_box.getChildByName(\"Sprite_boxover\");\n\n Sprite_boxover.active = currentday <= this.rewardDay2 && this.rewardDay2 != 0;\n let Sprite_boxwait = Button_box.getChildByName(\"Sprite_boxwait\");\n let Sprite_boxopen = Button_box.getChildByName(\"Sprite_boxopen\");\n\n this.openboxSkeleton = Sprite_boxopen.getChildByName(\"e_ui_daysignui_open\").getComponent(sp.Skeleton);\n Sprite_boxwait.active = currentday > this.day2;\n Sprite_boxopen.active = currentday <= this.day2 && this.day2 != 0 && currentday > this.rewardDay2;\n if (Sprite_boxwait.active) {\n this.bindClickWaitEvent(Button_box, i);\n }\n if (Sprite_boxopen.active) {\n\n this.openboxSkeleton.setAnimation(0, \"e_ui_daysignui_remind\", true);\n this.Label_tips.active=true;\n this.bindClickOpenEvent(Button_box, i);\n }\n }\n }\n let ProgressBar_leiji = this.ProgressBar_leiji.getComponent(ProgressBar);\n ProgressBar_leiji.progress = this.day2 / (leiNum * 10 + 10);\n }\n\n\n //点击道具\n bindClickDayChildEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n\n\n //点击open宝箱\n bindClickOpenEvent(itemnode: Node, index: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickOpenBox\";\n clickEventHandler.customEventData = index + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickOpenBox(itemnode, indexs) {\n let nodes = itemnode.target;\n let openboxSkeleton = nodes.getChildByName(\"Sprite_boxopen\").getChildByName(\"e_ui_daysignui_open\").getComponent(sp.Skeleton);\n let index = parseInt(indexs)\n openboxSkeleton.setAnimation(0, \"e_ui_daysignui_open\", false);\n openboxSkeleton.setCompleteListener((trackEntry) => {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name) {\n case \"e_ui_daysignui_open\":\n SignProxy.Inst.SendC1024();\n break;\n default:\n break;\n }\n });\n\n }\n\n\n\n //点击wait宝箱\n bindClickWaitEvent(itemnode: Node, index: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickWaitBox\";\n clickEventHandler.customEventData = index + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickWaitBox(itemnode, indexs) {\n let index = parseInt(indexs);\n this.ShowBoxDec(index);\n }\n\n public ShowBoxDec(index: number) {\n //展示\n this.prfabitem = this.item;\n this.Layout_item.removeAllChildren();\n let signtotal = this.signtotalList[index];\n\n if (!this.Panle_item.active) {\n this.Panle_item.active = true;\n }\n this.Panle_item.position = new Vec3(this.Layout_box.children[index].position.x, this.Panle_item.position.y, 0);\n for (const [key, value] of Array.from(signtotal.kv_rewards.entries())) {\n let itemNode = instantiate(this.prfabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item;\n let itemdata = ItemProxy.Inst.GetItemDataByID(parseInt(key));\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_itemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_item = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, itemdata.icon);\n let Labe_item = Button_item.getChildByName(\"Labe_item\").getComponent(Label);\n Labe_item.string = value;\n this.bindClickDayChildEvent(Button_item, itemdata.itemID);\n }\n }\n\n }\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EquipBigType, SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { Prefab } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport ResHelper from \"../../../core/manager/ResHelper\";\nimport { Color } from \"cc\";\nimport { FunctionForetell, FunctionProxy } from \"../proxy/FunctionProxy\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { TongXingProxy } from \"../proxy/TongXingProxy\";\nimport { CoinType, ItemProxy } from \"../proxy/ItemProxy\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('DayTaskBuyUI')\nexport default class DayTaskBuyUI extends BasePanel {\n\n // timeDayCallback: any;\n @property(Node) Sprite_hero: Node | null = null;\n @property(Node) Label_buy: Node | null = null;\n \n costNum :number;\n @property(Node) Layout_item: Node | null = null;\n item: Node | null = null;\n prefabitem: Node | null = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_Mask\"){\n this.close(true)\n }\n else if (name == \"Button_buy\") {\n GlobalFunction.NotEnouthCostNum(this.costNum,CoinType.xingzhuan,this.node.name,()=>{this.sendChange()},()=>{this.ClosePoup()});\n }\n }\n\n sendChange(){\n TongXingProxy.Inst.SendC1060();//购买通行证\n this.close(true)\n }\nClosePoup(){\n WindowManager.Instance().removeWindow(GameConst.winPath.DayTaskUI,true);\n WindowManager.Instance().removeWindow(GameConst.winPath.DayTaskBuyUI,true);\n}\n onShow(): void {\n let Sprite_hero = this.Sprite_hero.getComponent(Sprite);\n let currentid = TongXingProxy.Inst.TongXingServerData.id;\n let tongxingdata = TongXingProxy.Inst.GetTongXingDataById(currentid);\n GlobalFunction.SetSpriteFrame(Sprite_hero, tongxingdata.iconsmall);\n let Label_buy =this.Label_buy.getComponent(Label);\n Label_buy.string = tongxingdata.cost+\"\";\n this.costNum = tongxingdata.cost;\n this.prefabitem = this.item;\n\n this.Layout_item.removeAllChildren();\n\n\n for (let index=0;index 0) {\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(different);\n this.timePassCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(different);\n\n } else {\n this.unschedule(this.timePassCallback);\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(0);\n }\n }\n this.schedule(this.timePassCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(0);\n }\n }\n ShowDayDownTime() {\n let currentTime = GameModleComp.getInstance().serverTime;\n const days = Math.floor(currentTime / (3600 * 24));\n let tomorrowtime = (days + 1) * (3600 * 24);\n let different = tomorrowtime - currentTime;\n\n let timelabel = this.Label_tasktime.getComponent(Label);\n if (different > 0) {\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(different);\n this.timeDayCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(different);\n\n } else {\n this.unschedule(this.timeDayCallback);\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(0);\n }\n }\n this.schedule(this.timeDayCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowDaySevenTime(0);\n }\n }\n\n UpDataDayTask() {\n this.ShowPassPanel();\n this.ShowTaskPanel();\n }\n ShowTaskPanel() {\n\n // // 通行证任务\n // message p_tx_task{\n // int32 id=1; // 任务id\n // int32 state=2; // 任务状态,1-已接取,2-可领奖,4-完成\n // int32 now_content=3; // 当前进度\n // int32 max_content=4; // 最大进度\n // int32 isAd=5; // 是否看过广告,0没看,1看过\n // }\n\n let tasklist = this.tongXingInfoData.tasks;\n this.SortTaskList(tasklist);\n this.MaxJiFen=0;\n this.prefabtask = this.task;\n this.Layout_task.removeAllChildren();\n for (let i = 0; i < tasklist.length; i++) {\n let itemNode = instantiate(this.prefabtask);\n if (itemNode) {\n itemNode.parent = this.Layout_task;\n let p_tx_task = tasklist[i];\n\n let taskconfig = TongXingProxy.Inst.GetTongXingTaskById(p_tx_task.id);\n this.CurrentJiFen +=p_tx_task.state==4?taskconfig.txScore :0;\n this.MaxJiFen +=taskconfig.txScore;\n // console.log(\"taskconfig.id==\"+taskconfig.id +\"taskconfig.type==\"+taskconfig.type);\n let Sprite_putong = itemNode.getChildByName(\"Sprite_putong\");\n Sprite_putong.active = taskconfig.type == 1;\n let Sprite_teshu = itemNode.getChildByName(\"Sprite_teshu\");\n Sprite_teshu.active = taskconfig.type == 2;\n let Label_item = itemNode.getChildByName(\"Label_item\").getComponent(Label);\n Label_item.string = taskconfig.txScore + \"\";\n let Sprite_tstltle = itemNode.getChildByName(\"Sprite_tstltle\");\n Sprite_tstltle.active = taskconfig.type == 2;\n let Label_dec = itemNode.getChildByName(\"Label_dec\").getComponent(RichText);\n let newContent: string[] = [];\n for (let i = 0; i < taskconfig.ay_task.length; i++) {\n let type = Number(taskconfig.ay_task[i]);\n if (type == 1) {\n newContent.push(GlobalFunction.GetMsg(Number(taskconfig.ay_taskNum[i])));\n } else {\n newContent.push(taskconfig.ay_taskNum[i]);\n }\n }\n let first = StringUtil.stringAyFormat(taskconfig.lan_task, newContent);\n\n let second: string = \"\";\n if (GlobalFunction.ConvertUndefinedToNumber(p_tx_task.now_content) >= GlobalFunction.ConvertUndefinedToNumber(p_tx_task.max_content)) {\n second = \"\"\n } else {\n second = \"\"\n }\n let last = \"(\" + GlobalFunction.ConvertUndefinedToNumber(p_tx_task.now_content) + \"/\" + GlobalFunction.ConvertUndefinedToNumber(p_tx_task.max_content) + \") \" + \"\";\n Label_dec.string =\"\"+ first+ \"\" + second + last;\n\n let lock = itemNode.getChildByName(\"lock\");\n lock.active = this.tongXingInfoData.isBuy==undefined &&taskconfig.type == 2;\n\n let Sprite_yilingqu = itemNode.getChildByName(\"Sprite_yilingqu\");//已领取\n if(taskconfig.type == 2){\n Sprite_yilingqu.active = p_tx_task.state == 4&& !lock.active;\n }else{\n Sprite_yilingqu.active = p_tx_task.state == 4;\n }\n\n let Button_get = itemNode.getChildByName(\"Button_get\");\n\n if(taskconfig.type == 2){\n Button_get.active = p_tx_task.state == 2 && !lock.active;\n }else{\n Button_get.active = p_tx_task.state == 2;\n }\n\n let Button_share = itemNode.getChildByName(\"Button_share\");\n Button_share.active = taskconfig.share==1;\n\n let Button_advertisement = itemNode.getChildByName(\"Button_advert\");\n Button_advertisement.active = p_tx_task.isAd == 1 && !Button_share.active;\n\n let Button_go = itemNode.getChildByName(\"Button_go\");\n if(taskconfig.type == 2){\n Button_go.active = taskconfig.share!=1 && !lock.active &&p_tx_task.state==1;\n\n }else{\n Button_go.active = taskconfig.share!=1 &&p_tx_task.state==1;\n\n }\n if (Button_go.active) {\n this.bindClickGoEvent(Button_go, taskconfig.jump_id);\n }\n\n if (Button_get.active) {\n this.bindClickTaskGetEvent(Button_get, taskconfig.id);\n }\n }\n }\n\n\n\n /**纍計獎勵 */\n let ProgressBar_task = this.ProgressBar_task.getComponent(ProgressBar);\n //ProgressBar_task.progress = this.CurrentJiFen/this.MaxJiFen;\n ProgressBar_task.progress =this.tongXingInfoData.dayExp/(this.MaxJiFen/2);\n\n let taskrewardlist = this.tongXingInfoData.dayRewardList;\n this.prefabtaskitem = this.taskitem;\n this.Layout_taskitem.removeAllChildren();\n for (let i = 0; i < taskrewardlist.length; i++) {\n let itemNode = instantiate(this.prefabtaskitem);\n if (itemNode) {\n itemNode.parent = this.Layout_taskitem;\n let reward = taskrewardlist[i];\n let Process = TongXingProxy.Inst.TongXingProcessDataList[i];\n let Button_taskitem = itemNode.getChildByName(\"Button_taskitem\");\n\n let Sprite_taskitemkuang = Button_taskitem.getChildByName(\"Sprite_taskitemkuang\").getComponent(Sprite);\n let Sprite_taskitem = Button_taskitem.getChildByName(\"Sprite_taskitem\").getComponent(Sprite);\n let Label_taskitem = Button_taskitem.getChildByName(\"Label_taskitem\").getComponent(Label);\n let Sprite_kelingqu = Button_taskitem.getChildByName(\"Sprite_kelingqu\");//可领取\n let Sprite_yilingqu = Button_taskitem.getChildByName(\"Sprite_yilingqu\");//已领取\n Sprite_kelingqu.active=reward.state==undefined &&this.tongXingInfoData.dayExp>=Process.score;\n Sprite_yilingqu.active=reward.state==1;\n let itemid;\n let itemnum;\n if(reward.rewards!=undefined){\n itemid = reward.rewards[0].id;\n itemnum = reward.rewards[0].num;\n }else{\n Process.kv_rewards.forEach((value :string,key :string)=>{\n itemid = key;itemnum=value;\n });\n }\n let itemdata = ItemProxy.Inst.GetItemDataByID(itemid);\n let db = ItemProxy.Inst.GetItemKuangByColor(itemdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_taskitemkuang, db);\n GlobalFunction.SetSpriteFrame(Sprite_taskitem, itemdata.icon);\n Label_taskitem.string = itemnum+\"\";\n if(!Sprite_kelingqu.active){\n this.bindClickItemEvent(Button_taskitem, itemid);\n }else{\n\n this.bindClickTaskGetRewardEvent(Button_taskitem, Process.id);\n }\n }\n }\n\n /**积分 */\n this.prefabtaskjifen = this.taskjifen;\n this.Layout_taskjifen.removeAllChildren();\n for (let i = 0; i < TongXingProxy.Inst.TongXingProcessDataList.length; i++) {\n let itemNode = instantiate(this.prefabtaskjifen);\n if (itemNode) {\n itemNode.parent = this.Layout_taskjifen;\n let Process = TongXingProxy.Inst.TongXingProcessDataList[i];\n let Label_taskjifen = itemNode.getChildByName(\"Label_taskjifen\").getComponent(Label);\n Label_taskjifen.string = Process.score + \"\";\n }\n }\n }\n \n /**通行证 */\n ShowPassPanel() {\n this.tongXingInfoData = TongXingProxy.Inst.TongXingServerData;\n let tongxingdata = TongXingProxy.Inst.GetTongXingDataById(this.tongXingInfoData.id);\n\n let Label_lv = this.Label_lv.getComponent(Label);\n Label_lv.string = this.tongXingInfoData.lv + \"\";\n\n let ProgressBar_exp = this.ProgressBar_exp.getComponent(ProgressBar);\n ProgressBar_exp.progress = GlobalFunction.ConvertUndefinedToNumber(this.tongXingInfoData.exp) / TongXingProxy.Inst.GetCurrenTyLvExpByLv(this.tongXingInfoData.id,this.tongXingInfoData.lv);\n let Label_exp = this.Label_exp.getComponent(Label);\n Label_exp.string = GlobalFunction.ConvertUndefinedToNumber(this.tongXingInfoData.exp) + \"/\" + TongXingProxy.Inst.GetCurrenTyLvExpByLv(this.tongXingInfoData.id,this.tongXingInfoData.lv);\n\n this.Label_lock.getComponent(Label).string = GlobalFunction.GetMsg(10237);\n let Sprite_passicon = this.Sprite_passicon.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_passicon, tongxingdata.iconbing);\n\n this.Button_buy.node.active = this.tongXingInfoData.isBuy == undefined;\n\n\n let passlist = TongXingProxy.Inst.GetCurrenTypeList(this.tongXingInfoData.id);\n this.prefabpass = this.pass;\n this.Layout_pass.removeAllChildren();\n for (let i = 0; i < passlist.length; i++) {\n let itemNode = instantiate(this.prefabpass);\n if (itemNode) {\n itemNode.parent = this.Layout_pass;\n let TongXingLv = passlist[i];\n let left = itemNode.getChildByName(\"left\");\n let Button_letf = left.getChildByName(\"Button_letf\");\n let Sprite_lcokleft = Button_letf.getChildByName(\"Sprite_lcokleft\");\n Sprite_lcokleft.active = TongXingLv.lv > this.tongXingInfoData.lv;\n\n\n let itemid;\n let itemnum;\n TongXingLv.kv_rewards1.forEach((value: string, key: string) => {\n itemid = key; itemnum = value;\n });\n\n\n\n let itemdata = ItemProxy.Inst.GetItemDataByID(itemid);\n let Sprite_itemkuangleft = Button_letf.getChildByName(\"Sprite_itemkuangleft\").getComponent(Sprite);\n let db = ItemProxy.Inst.GetItemKuangByColor(itemdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuangleft, db);\n\n let Sprite_itemleft = Button_letf.getChildByName(\"Sprite_itemleft\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemleft, itemdata.icon);\n\n let Label_left = Button_letf.getChildByName(\"Label_left\").getComponent(Label);\n Label_left.string = itemnum;\n let Sprite_lingquleft = Button_letf.getChildByName(\"Sprite_lingquleft\");//可领取显示\n let Sprite_yilingquleft = Button_letf.getChildByName(\"Sprite_yilingquleft\");//已领取\n Sprite_lingquleft.active = TongXingLv.lv <= this.tongXingInfoData.lv && !TongXingProxy.Inst.IsGetRewardPT(TongXingLv.lv);\n Sprite_yilingquleft.active = TongXingLv.lv <= this.tongXingInfoData.lv && TongXingProxy.Inst.IsGetRewardPT(TongXingLv.lv);\n\n\n let right = itemNode.getChildByName(\"right\");\n let Button_right = right.getChildByName(\"Button_right\");\n\n let itemgjid;\n let itemgjnum;\n TongXingLv.kv_rewards2.forEach((value: string, key: string) => {\n itemgjid = key; itemgjnum = value;\n });\n let itemgjdata = ItemProxy.Inst.GetItemDataByID(itemgjid);\n\n\n let Sprite_lcokright = Button_right.getChildByName(\"Sprite_lcokright\");\n Sprite_lcokright.active = this.tongXingInfoData.isBuy == undefined || TongXingLv.lv > this.tongXingInfoData.lv;\n\n let Sprite_itemkuangright = Button_right.getChildByName(\"Sprite_itemkuangright\").getComponent(Sprite);\n let gjdb = ItemProxy.Inst.GetItemKuangByColor(itemgjdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuangright, gjdb);\n\n\n let Sprite_itemright = Button_right.getChildByName(\"Sprite_itemright\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemright, itemgjdata.icon);\n\n let Label_right = Button_right.getChildByName(\"Label_right\").getComponent(Label);\n Label_right.string = itemgjnum;\n\n let Sprite_lingquright = Button_right.getChildByName(\"Sprite_lingquright\");//可领取显示\n let Sprite_yilingquright = Button_right.getChildByName(\"Sprite_yilingquright\");//已领取\n Sprite_lingquright.active = this.tongXingInfoData.isBuy == 1 && TongXingLv.lv <= this.tongXingInfoData.lv && !TongXingProxy.Inst.IsGetRewardGJ(TongXingLv.lv);\n Sprite_yilingquright.active = this.tongXingInfoData.isBuy == 1 && TongXingLv.lv <= this.tongXingInfoData.lv && TongXingProxy.Inst.IsGetRewardGJ(TongXingLv.lv);\n\n\n let center = itemNode.getChildByName(\"center\");\n let ProgressBar_passlv = center.getChildByName(\"ProgressBar_passlv\").getComponent(ProgressBar);\n let Label_lv = center.getChildByName(\"Label_passlv\").getComponent(Label);\n Label_lv.string = TongXingLv.lv + \"\";\n let lcokcenter = center.getChildByName(\"lcokcenter\");\n lcokcenter.active = TongXingLv.lv > this.tongXingInfoData.lv;\n if (lcokcenter.active) {\n ProgressBar_passlv.progress = 0;\n } else {\n if (TongXingLv.lv == this.tongXingInfoData.lv) {\n ProgressBar_passlv.progress = GlobalFunction.ConvertUndefinedToNumber(this.tongXingInfoData.dayExp) / GlobalFunction.ConvertUndefinedToNumber(this.tongXingInfoData.exp);\n } else {\n ProgressBar_passlv.progress = 1;\n }\n }\n\n if (!Sprite_lingquleft.active) {\n //点击显示普通道具item\n this.bindClickItemEvent(Button_letf, itemid);\n } else {\n //点击领取奖励\n this.bindClickGetLeftRewardEvent(Button_letf,TongXingLv.lv);\n\n }\n if (!Sprite_lingquright.active) {\n //点击显示高级道具item\n this.bindClickItemEvent(Button_right, itemgjid);\n } else {\n //点击领取奖励\n this.bindClickGetRightRewardEvent(Button_right,TongXingLv.lv);\n }\n\n }\n }\n\n this.ShowDayDownTime();\n this.ShowPassDownTime();\n\n }\n\n /**排序 */\n SortTaskList(sevenlist :p_tx_task[]) {\n sevenlist.sort(function (a, b) {\n // int32 state=2; // 任务状态,1-已接取,2-可领奖,4-完成\n // int32 now_content=3; // 当前进度\n // int32 max_content=4; // 最大进度\n // int32 isAd=5; // 是否看过广告,0没看,1看过\n const detailA = a, detailB = b;\n if(TongXingProxy.Inst.TongXingServerData.isBuy==undefined){\n const aa = TongXingProxy.Inst.GetTongXingTaskById(a.id), bb = TongXingProxy.Inst.GetTongXingTaskById(b.id);\n let state1 = 0;\n let state2 = 0;\n if(detailA.state==2 &&aa.type!=2){\n state1 = 0;\n }else if(detailA.state==1&&aa.type!=2){\n state1 = 1;\n }else if(detailA.state==2 &&aa.type==2){\n state1 = 2;\n }\n else if(detailA.state==1&&aa.type==2){\n state1 = 3;\n }\n else if(detailA.state==4&&aa.type==2){\n state1 = 4;\n }\n else if(detailA.state==4&&aa.type!=2){\n state1 = 5;\n }\n\n if(detailB.state==2 &&bb.type!=2){\n state2 = 0;\n }else if(detailB.state==1&&bb.type!=2){\n state2 = 1;\n }\n if(detailB.state==2 &&bb.type==2){\n state2 = 2;\n }\n else if(detailB.state==1&&bb.type==2){\n state2 = 3;\n }\n else if(detailB.state==4&&bb.type==2){\n state2 = 4;\n }\n else if(detailB.state==4&&bb.type!=2){\n state2 = 5;\n }\n \n if(state1==state2){\n return detailA.id -detailB.id;\n }else{\n return state1 -state2;\n }\n\n\n }else{\n let state1 = 0;\n let state2 = 0;\n \n if(detailA.state==2){\n state1 = 0;\n }else if(detailA.state==1){\n state1 = 1;\n }else if(detailA.state==4){\n state1 = 2;\n }else if(detailA.state==3){\n state1 = 3;\n }\n if(detailB.state==2){\n state2 = 0;\n }else if(detailB.state==1){\n state2 = 1;\n }else if(detailB.state==4){\n state2 = 2;\n }else if(detailB.state==3){\n state2 = 3;\n }\n if(state1==state2){\n return detailA.id -detailB.id;\n }else{\n return state1 -state2;\n }\n }\n\n \n\n });\n}\n //通行證 点击普通领取奖励\n bindClickGetLeftRewardEvent(itemnode: Node, level: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGetPutonReward\";\n clickEventHandler.customEventData = level + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickGetPutonReward(itemnode, level) {\n let levels = Number(level);\n TongXingProxy.Inst.SendC1059(levels,2);\n }\n //通行證 点击高级领取奖励\n bindClickGetRightRewardEvent(itemnode: Node, level: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGetGaojiReward\";\n clickEventHandler.customEventData = level + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickGetGaojiReward(itemnode, level) {\n let levels = Number(level);\n TongXingProxy.Inst.SendC1059(levels,3);\n }\n //每日任務 点击积累领取奖励\n bindClickTaskGetRewardEvent(itemnode: Node, taskid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickTaskJLGetReward\";\n clickEventHandler.customEventData = taskid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickTaskJLGetReward(itemnode, taskids) {\n let taskid = Number(taskids);\n TongXingProxy.Inst.SendC1059(taskid,1);\n }\n\n //每日任務 领取奖励\n bindClickTaskGetEvent(itemnode: Node, taskid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickTaskGetReward\";\n clickEventHandler.customEventData = taskid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n \n CallOnclickTaskGetReward(itemnode, taskids) {\n let taskid = Number(taskids);\n TongXingProxy.Inst.SendC1058(taskid);\n }\n //点击前往\n bindClickGoEvent(itemnode: Node, jump_id: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGo\";\n clickEventHandler.customEventData = jump_id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickGo(itemnode, jump_id) {\n let jumpid = Number(jump_id);\n TaskProxy.Inst.TaskJumpFuncation(jumpid);\n this.close(true);\n }\n\n //点击道具\n bindClickItemEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n this.unschedule(this.timePassCallback);\n this.unschedule(this.timeDayCallback);\n this.timePassCallback =null;\n this.timeDayCallback=null;\n }\n clearRes() {\n }\n}\n","import { Color, Canvas, UITransform, instantiate, math, Toggle, TextureCube, _decorator, Component, Button, labelAssembler, game, director, Node, Scene, renderer, CameraComponent, Label, ForwardPipeline, RichText } from 'cc';\r\nconst { ccclass, property } = _decorator;\r\n\r\n@ccclass('internal.DebugViewRuntimeControl')\r\nexport class DebugViewRuntimeControl extends Component {\r\n @property(Node)\r\n compositeModeToggle: Node | null = null;\r\n @property(Node)\r\n singleModeToggle: Node | null = null;\r\n @property(Node)\r\n EnableAllCompositeModeButton: Node | null = null;\r\n\t_single: number = 0;\r\n\r\n private strSingle: string[] = [\r\n 'No Single Debug',\r\n 'Vertex Color',\r\n 'Vertex Normal',\r\n 'Vertex Tangent',\r\n 'World Position',\r\n 'Vertex Mirror',\r\n 'Face Side',\r\n 'UV0',\r\n 'UV1',\r\n 'UV Lightmap',\r\n 'Project Depth',\r\n 'Linear Depth',\r\n\r\n 'Fragment Normal',\r\n 'Fragment Tangent',\r\n 'Fragment Binormal',\r\n 'Base Color',\r\n 'Diffuse Color',\r\n 'Specular Color',\r\n 'Transparency',\r\n 'Metallic',\r\n 'Roughness',\r\n 'Specular Intensity',\r\n 'IOR',\r\n\r\n 'Direct Diffuse',\r\n 'Direct Specular',\r\n 'Direct All',\r\n 'Env Diffuse',\r\n 'Env Specular',\r\n 'Env All',\r\n 'Emissive',\r\n 'Light Map',\r\n 'Shadow',\r\n 'AO',\r\n\r\n 'Fresnel',\r\n 'Direct Transmit Diffuse',\r\n 'Direct Transmit Specular',\r\n 'Env Transmit Diffuse',\r\n 'Env Transmit Specular',\r\n 'Transmit All',\r\n 'Direct Internal Specular',\r\n 'Env Internal Specular',\r\n 'Internal All',\r\n\r\n 'Fog',\r\n ];\r\n private strComposite: string[] = [\r\n 'Direct Diffuse',\r\n 'Direct Specular',\r\n 'Env Diffuse',\r\n 'Env Specular',\r\n 'Emissive',\r\n 'Light Map',\r\n 'Shadow',\r\n 'AO',\r\n\r\n 'Normal Map',\r\n 'Fog',\r\n\r\n 'Tone Mapping',\r\n 'Gamma Correction',\r\n\r\n 'Fresnel',\r\n 'Transmit Diffuse',\r\n 'Transmit Specular',\r\n 'Internal Specular',\r\n 'TT',\r\n ];\r\n private strMisc: string[] = [\r\n 'CSM Layer Coloration',\r\n 'Lighting With Albedo',\r\n ];\r\n\r\n private compositeModeToggleList: Node[] = [];\r\n private singleModeToggleList: Node[] = [];\r\n private miscModeToggleList: Node[] = [];\r\n private textComponentList: RichText[] = [];\r\n private labelComponentList: Label[] = [];\r\n private textContentList: string[] = [];\r\n private hideButtonLabel: Label;\r\n start() {\r\n // get canvas resolution\r\n const canvas = this.node.parent.getComponent(Canvas);\r\n if (!canvas) {\r\n console.error('debug-view-runtime-control should be child of Canvas');\r\n return;\r\n }\r\n\r\n const uiTransform = this.node.parent.getComponent(UITransform);\r\n const halfScreenWidth = uiTransform.width * 0.5;\r\n const halfScreenHeight = uiTransform.height * 0.5;\r\n\r\n let x = -halfScreenWidth + halfScreenWidth * 0.1, y = halfScreenHeight - halfScreenHeight * 0.1;\r\n const width = 200, height = 20;\r\n\r\n // new nodes\r\n const miscNode = this.node.getChildByName('MiscMode');\r\n const buttonNode = instantiate(miscNode);\r\n buttonNode.parent = this.node;\r\n buttonNode.name = 'Buttons';\r\n const titleNode = instantiate(miscNode);\r\n titleNode.parent = this.node;\r\n titleNode.name = 'Titles';\r\n\r\n // title\r\n for (let i = 0; i < 2; i++) {\r\n const newLabel = instantiate(this.EnableAllCompositeModeButton.getChildByName('Label'));\r\n newLabel.setPosition(x + (i > 0 ? 50 + width * 2 : 150), y, 0.0);\r\n newLabel.setScale(0.75, 0.75, 0.75);\r\n newLabel.parent = titleNode;\r\n const labelComponent = newLabel.getComponent(Label);\r\n labelComponent.string = i ? '----------Composite Mode----------' : '----------Single Mode----------';\r\n labelComponent.color = Color.WHITE;\r\n labelComponent.overflow = 0;\r\n this.labelComponentList[this.labelComponentList.length] = labelComponent;\r\n }\r\n\r\n y -= height;\r\n // single\r\n let currentRow = 0;\r\n for (let i = 0; i < this.strSingle.length; i++, currentRow++) {\r\n if (i === this.strSingle.length >> 1) {\r\n x += width;\r\n currentRow = 0;\r\n }\r\n const newNode = i ? instantiate(this.singleModeToggle) : this.singleModeToggle;\r\n newNode.setPosition(x, y - height * currentRow, 0.0);\r\n newNode.setScale(0.5, 0.5, 0.5);\r\n newNode.parent = this.singleModeToggle.parent;\r\n\r\n const textComponent = newNode.getComponentInChildren(RichText);\r\n textComponent.string = this.strSingle[i];\r\n this.textComponentList[this.textComponentList.length] = textComponent;\r\n this.textContentList[this.textContentList.length] = textComponent.string;\r\n\r\n newNode.on(Toggle.EventType.TOGGLE, this.toggleSingleMode, this);\r\n\r\n this.singleModeToggleList[i] = newNode;\r\n }\r\n\r\n x += width;\r\n // buttons\r\n this.EnableAllCompositeModeButton.setPosition(x + 15, y, 0.0);\r\n this.EnableAllCompositeModeButton.setScale(0.5, 0.5, 0.5);\r\n this.EnableAllCompositeModeButton.on(Button.EventType.CLICK, this.enableAllCompositeMode, this);\r\n this.EnableAllCompositeModeButton.parent = buttonNode;\r\n let labelComponent = this.EnableAllCompositeModeButton.getComponentInChildren(Label);\r\n this.labelComponentList[this.labelComponentList.length] = labelComponent;\r\n\r\n const changeColorButton = instantiate(this.EnableAllCompositeModeButton);\r\n changeColorButton.setPosition(x + 90, y, 0.0);\r\n changeColorButton.setScale(0.5, 0.5, 0.5);\r\n changeColorButton.on(Button.EventType.CLICK, this.changeTextColor, this);\r\n changeColorButton.parent = buttonNode;\r\n labelComponent = changeColorButton.getComponentInChildren(Label);\r\n labelComponent.string = 'TextColor';\r\n this.labelComponentList[this.labelComponentList.length] = labelComponent;\r\n\r\n const HideButton = instantiate(this.EnableAllCompositeModeButton);\r\n HideButton.setPosition(x + 200, y, 0.0);\r\n HideButton.setScale(0.5, 0.5, 0.5);\r\n HideButton.on(Button.EventType.CLICK, this.hideUI, this);\r\n HideButton.parent = this.node.parent;\r\n labelComponent = HideButton.getComponentInChildren(Label);\r\n labelComponent.string = 'Hide UI';\r\n this.labelComponentList[this.labelComponentList.length] = labelComponent;\r\n this.hideButtonLabel = labelComponent;\r\n\r\n // misc\r\n y -= 40;\r\n for (let i = 0; i < this.strMisc.length; i++) {\r\n const newNode = instantiate(this.compositeModeToggle);\r\n newNode.setPosition(x, y - height * i, 0.0);\r\n newNode.setScale(0.5, 0.5, 0.5);\r\n newNode.parent = miscNode;\r\n\r\n const textComponent = newNode.getComponentInChildren(RichText);\r\n textComponent.string = this.strMisc[i];\r\n this.textComponentList[this.textComponentList.length] = textComponent;\r\n this.textContentList[this.textContentList.length] = textComponent.string;\r\n\r\n const toggleComponent = newNode.getComponent(Toggle);\r\n toggleComponent.isChecked = i ? true : false;\r\n newNode.on(Toggle.EventType.TOGGLE, i ? this.toggleLightingWithAlbedo : this.toggleCSMColoration, this);\r\n this.miscModeToggleList[i] = newNode;\r\n }\r\n\r\n // composite\r\n y -= 150;\r\n for (let i = 0; i < this.strComposite.length; i++) {\r\n const newNode = i ? instantiate(this.compositeModeToggle) : this.compositeModeToggle;\r\n newNode.setPosition(x, y - height * i, 0.0);\r\n newNode.setScale(0.5, 0.5, 0.5);\r\n newNode.parent = this.compositeModeToggle.parent;\r\n\r\n const textComponent = newNode.getComponentInChildren(RichText);\r\n textComponent.string = this.strComposite[i];\r\n this.textComponentList[this.textComponentList.length] = textComponent;\r\n this.textContentList[this.textContentList.length] = textComponent.string;\r\n\r\n newNode.on(Toggle.EventType.TOGGLE, this.toggleCompositeMode, this);\r\n\r\n this.compositeModeToggleList[i] = newNode;\r\n }\r\n }\r\n\r\n isTextMatched(textUI, textDescription) : boolean {\r\n let tempText = new String(textUI);\r\n const findIndex = tempText.search('>');\r\n if (findIndex === -1) {\r\n return textUI === textDescription;\r\n } else {\r\n tempText = tempText.substr(findIndex + 1);\r\n tempText = tempText.substr(0, tempText.search('<'));\r\n return tempText === textDescription;\r\n }\r\n }\r\n toggleSingleMode(toggle: Toggle) {\r\n const debugView = director.root!.debugView;\r\n const textComponent = toggle.getComponentInChildren(RichText);\r\n for (let i = 0; i < this.strSingle.length; i++) {\r\n if (this.isTextMatched(textComponent.string, this.strSingle[i])) {\r\n debugView.singleMode = i;\r\n }\r\n }\r\n }\r\n toggleCompositeMode(toggle: Toggle) {\r\n const debugView = director.root!.debugView;\r\n const textComponent = toggle.getComponentInChildren(RichText);\r\n for (let i = 0; i < this.strComposite.length; i++) {\r\n if (this.isTextMatched(textComponent.string, this.strComposite[i])) {\r\n debugView.enableCompositeMode(i, toggle.isChecked);\r\n }\r\n }\r\n }\r\n toggleLightingWithAlbedo(toggle: Toggle) {\r\n const debugView = director.root!.debugView;\r\n debugView.lightingWithAlbedo = toggle.isChecked;\r\n }\r\n toggleCSMColoration(toggle: Toggle) {\r\n const debugView = director.root!.debugView;\r\n debugView.csmLayerColoration = toggle.isChecked;\r\n }\r\n enableAllCompositeMode(button: Button) {\r\n const debugView = director.root!.debugView;\r\n debugView.enableAllCompositeMode(true);\r\n for (let i = 0; i < this.compositeModeToggleList.length; i++) {\r\n const toggleComponent = this.compositeModeToggleList[i].getComponent(Toggle);\r\n toggleComponent.isChecked = true;\r\n }\r\n\r\n let toggleComponent = this.miscModeToggleList[0].getComponent(Toggle);\r\n toggleComponent.isChecked = false;\r\n debugView.csmLayerColoration = false;\r\n toggleComponent = this.miscModeToggleList[1].getComponent(Toggle);\r\n toggleComponent.isChecked = true;\r\n debugView.lightingWithAlbedo = true;\r\n }\r\n hideUI(button: Button) {\r\n const titleNode = this.node.getChildByName('Titles');\r\n const activeValue = !titleNode.active;\r\n this.singleModeToggleList[0].parent.active = activeValue;\r\n this.miscModeToggleList[0].parent.active = activeValue;\r\n this.compositeModeToggleList[0].parent.active = activeValue;\r\n this.EnableAllCompositeModeButton.parent.active = activeValue;\r\n titleNode.active = activeValue;\r\n this.hideButtonLabel.string = activeValue ? 'Hide UI' : 'Show UI';\r\n }\r\n\r\n private _currentColorIndex = 0;\r\n private strColor: string[] = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ];\r\n private color: Color[] = [\r\n Color.WHITE,\r\n Color.BLACK,\r\n Color.RED,\r\n Color.GREEN,\r\n Color.BLUE,\r\n ];\r\n changeTextColor(button: Button) {\r\n this._currentColorIndex++;\r\n if (this._currentColorIndex >= this.strColor.length) {\r\n this._currentColorIndex = 0;\r\n }\r\n for (let i = 0; i < this.textComponentList.length; i++) {\r\n this.textComponentList[i].string = this.strColor[this._currentColorIndex] + this.textContentList[i] + '';\r\n }\r\n for (let i = 0; i < this.labelComponentList.length; i++) {\r\n this.labelComponentList[i].color = this.color[this._currentColorIndex];\r\n }\r\n }\r\n\r\n onLoad() {\r\n }\r\n update(deltaTime: number) {\r\n }\r\n}\r\n","import { _decorator } from 'cc';\nexport default class DesMg {\n static encode(str) {\n var bytes = this.utf8Encode(str);\n var key = bytes.slice(0, 8);\n for (var n = 0; n < bytes.length; n++) {\n var a = bytes[n];\n a = a ^ key[n % 8];\n key[n + 8] = a;\n }\n return this.encode_base(key, true);\n }\n static decode(str) {\n var bytes = this.decode_base(str, true);\n var s = bytes.slice(0, 8);\n var t: any = bytes.slice(8, bytes.length);\n for (var n = 0, r = t.length; n < r; n++) {\n var a = t[n];\n a = a ^ s[n % 8];\n t[n] = a;\n }\n return this.utf8Decode(t);\n }\n /**\n * 重写过的base64算法,主要让中间过程已byte方式输出\n * 若不修改_keyStr则为标准Base64编码\n */\n static _keyStr: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n static encode_base(str, isDes) {\n var out = \"\";\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0;\n var bytes = isDes ? str : this.utf8Encode(str);\n while (i < bytes.length) {\n chr1 = bytes[i++];\n chr2 = bytes[i++];\n chr3 = bytes[i++];\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n out = out + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);\n }\n return out;\n }\n static decode_base(str, isDes) {\n\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n str = str.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n var bytes = [];\n while (i < str.length) {\n enc1 = this._keyStr.indexOf(str.charAt(i++));\n enc2 = this._keyStr.indexOf(str.charAt(i++));\n enc3 = this._keyStr.indexOf(str.charAt(i++));\n enc4 = this._keyStr.indexOf(str.charAt(i++));\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n bytes.push(chr1);\n if (enc3 != 64) {\n bytes.push(chr2);\n }\n if (enc4 != 64) {\n bytes.push(chr3);\n }\n }\n if (isDes === true) {\n return bytes;\n }\n var out = this.utf8Decode(bytes);\n return out;\n }\n static utf8Encode(string) {\n string = string.replace(/\\r\\n/g, \"\\n\");\n var bytes = [];\n for (var n = 0; n < string.length; n++) {\n var c = string.charCodeAt(n);\n if (c < 128) {\n bytes.push(c);\n } else if (c > 127 && c < 2048) {\n bytes.push(c(c >> 6) | 192);\n bytes.push((c & 63) | 128);\n } else {\n bytes.push((c >> 12) | 224);\n bytes.push(((c >> 6) & 63) | 128);\n bytes.push((c & 63) | 128);\n }\n }\n return bytes;\n }\n static utf8Decode(bytes) {\n var str = \"\";\n var i = 0;\n var c,\n c1,\n c2,\n c3 = 0;\n while (i < bytes.length) {\n c = bytes[i];\n if (c < 128) {\n str += String.fromCharCode(c);\n i++;\n } else if (c > 191 && c < 224) {\n c2 = bytes[i + 1];\n str += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n i += 2;\n } else {\n c2 = bytes[i + 1];\n c3 = bytes[i + 2];\n str += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n i += 3;\n }\n }\n return str;\n }\n}","import { _decorator } from 'cc';\nexport default class DevTools {\n constructor() {\n if (window['wx']) {\n return;\n }\n // var Gui = window['Gui'];\n // var ui = new Gui({ w: 400, colors: \"#000000\", open: false })\n // ui.add('title', { name: '开发工具' })\n // ui.add('button', { name: \"倍数\", value: ['x1', 'x2', 'x4', 'x10'] }).onChange((v) => {\n // if (v == 'x1')\n // cc.kSpeed(1);\n // else if (v == 'x2')\n // cc.kSpeed(2);\n // else if (v == 'x4') {\n // cc.kSpeed(4);\n // }\n // else if (v == 'x10')\n // cc.kSpeed(10);\n // });\n\n\n // ui.add('slide', { name: 'targetLen', value: 50, max: 300, min: 50 }).onChange((v) => {\n // window['cure'].targetLen = v;\n // });\n\n // ui.add('slide', { name: 'p1Len', value: 200, max: 300, min: 50 }).onChange((v) => {\n // window['cure'].p1Len = v;\n // });\n\n // ui.add('slide', { name: 'p2Len', value: 240, max: 300, min: 50 }).onChange((v) => {\n // window['cure'].p2Len = v;\n // });\n\n // ui.add('slide', { name: 'angle1', value: 120, max: 360, min: 0 }).onChange((v) => {\n // window['cure'].angle1 = v;\n // });\n // ui.add('slide', { name: 'angle2', value: 60, max: 360, min: 0 }).onChange((v) => {\n // window['cure'].angle2 = v;\n // });\n }\n}","/**\n * 编辑器内资源加载类\n * @author 陈皮皮 (ifaswind)\n * @version 20211205\n * @see EditorAsset.ts https://gitee.com/ifaswind/eazax-ccc/blob/master/misc/EditorAsset.ts\n */\n/** 资源信息 */\n\nimport { _decorator, assetManager, warn } from 'cc';\nimport { EDITOR } from 'cc/env';\ninterface AssetInfo {\n destPath: string;\n hidden: boolean;\n isSubAsset: boolean;\n path: string;\n readonly: boolean;\n type: string;\n url: string;\n uuid: string;\n}\n\nexport default class EditorAsset {\n /**\n * 在编辑器环境中加载 assets 目录下的资源\n * @param path 相对路径,根目录为 assets/,注意带上文件后缀,如:eazax-sine-wave.effect\n * @param assetType 资源类型,如:effect\n * @param callback 加载完成回调\n * @example \n * const path = 'eazax-ccc/resources/effects/eazax-sine-wave.effect';\n * EditorAsset.load(path, 'effect', (err: Error, result: cc.EffectAsset) => {\n * this.effect = result;\n * });\n */\n\n public static load(path: string, assetType: string, callback?: (err: Error, result: T) => void): Promise {\n return new Promise(res => {\n if (!EDITOR) {\n res(null);\n warn('[EditorAsset]', '该函数只在编辑器环境内有效!');\n return;\n }\n Editor.assetdb.queryAssets(`db://assets/${path}`, assetType, (err: Error, results: AssetInfo[]) => {\n if (err) {\n res(null);\n callback && callback(new Error('[EditorAsset] 未知错误!'), null);\n return;\n }\n if (results.length === 0) {\n res(null);\n callback && callback(new Error('[EditorAsset] 未找到指定资源!'), null);\n return;\n }\n if (assetManager && assetManager.loadAny) {\n assetManager.loadAny({ uuid: results[0].uuid, type: assetType }, (_err: Error, _result: T) => {\n res(_result);\n callback && callback(_err, _result);\n });\n } else {\n assetManager.loadAny({ uuid: results[0].uuid, type: assetType }, (_err: Error, _result: T) => {\n res(_result);\n callback && callback(_err, _result);\n });\n }\n });\n });\n }\n}","\r\nimport { Animation, Component, ParticleSystem, _decorator, sp } from 'cc';\r\nimport { EventManager } from '../core/manager/EventManager';\r\nimport { EffectEvent } from './EffectSingleCase';\r\n\r\nconst { ccclass, property } = _decorator;\r\n\r\n/** 动画播放完释放特效 - Animation、ParticleSystem */\r\n@ccclass('EffectFinishedRelease')\r\nexport class EffectFinishedRelease extends Component {\r\n /** 动画最大播放时间 */\r\n private maxDuration: number = 0;\r\n\r\n protected onEnable() {\r\n // SPINE动画\r\n let spine = this.getComponent(sp.Skeleton);\r\n if (spine) {\r\n // 播放第一个动画\r\n let json = (spine.skeletonData.skeletonJson as any).animations;\r\n for (var name in json) {\r\n spine.setCompleteListener(this.onRecovery.bind(this));\r\n if (spine.animation != \"\")\r\n spine.setAnimation(0, spine.animation, true);\r\n else\r\n spine.setAnimation(0, name, true);\r\n break;\r\n }\r\n this.node.children.forEach(nd => {\r\n let spine2 = nd.getComponent(sp.Skeleton);\r\n if (spine2) {\r\n let json = (spine2.skeletonData.skeletonJson as any).animations;\r\n for (var name in json) {\r\n spine2.setCompleteListener(this.onRecovery.bind(this));\r\n if (spine2.animation != \"\")\r\n spine2.setAnimation(0, spine2.animation, true);\r\n else\r\n spine2.setAnimation(0, name, true);\r\n break;\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n // COCOS动画\r\n let anims: Animation[] = this.node.getComponentsInChildren(Animation);\r\n if (anims.length > 0) {\r\n anims.forEach(animator => {\r\n let aniName = animator.defaultClip?.name;\r\n if (aniName) {\r\n let aniState = animator.getState(aniName);\r\n if (aniState) {\r\n let duration = aniState.duration;\r\n this.maxDuration = duration > this.maxDuration ? duration : this.maxDuration;\r\n }\r\n }\r\n animator.play();\r\n });\r\n\r\n this.scheduleOnce(() => {\r\n anims.forEach(animator => {\r\n animator.resume();\r\n })\r\n this.onRecovery.bind(this)\r\n }, this.maxDuration);\r\n }\r\n // 粒子动画\r\n else if (ParticleSystem) {\r\n let particles: ParticleSystem[] = this.node.getComponentsInChildren(ParticleSystem);\r\n particles.forEach(particle => {\r\n particle.clear();\r\n particle.stop();\r\n particle.play()\r\n\r\n let duration: number = particle.duration;\r\n this.maxDuration = duration > this.maxDuration ? duration : this.maxDuration;\r\n });\r\n this.scheduleOnce(this.onRecovery.bind(this), this.maxDuration);\r\n }\r\n }\r\n }\r\n\r\n private onRecovery() {\r\n if (this.node.parent) EventManager.Inst.event(EffectEvent.Put,EffectEvent.Put, this.node);\r\n }\r\n}\r\n","import { NodePool } from \"cc\";\r\nimport { Prefab } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { EventDispatcher } from \"../LayaCode/EventDispatcher\";\r\nimport { EventManager } from \"../core/manager/EventManager\";\r\nimport { Node } from \"cc\";\r\nimport { EffectFinishedRelease } from \"./EffectFinishedRelease\";\r\nimport { sp } from \"cc\";\r\nimport { Animation } from \"cc\";\r\nimport { ParticleSystem } from \"cc\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\n\r\n/** 效果数据 */\r\nclass EffectData extends Component {\r\n type: string = null!;\r\n}\r\n\r\n/** 特效参数 */\r\nexport interface IEffectParams {\r\n /** 初始位置 */\r\n pos?: Vec3,\r\n /** 是否播放完成后删除 */\r\n isPlayFinishedRelease?: boolean\r\n}\r\n\r\n/** 动画特效对象池管理器 */\r\nexport class EffectSingleCase {\r\n private static _instance: EffectSingleCase;\r\n static get instance(): EffectSingleCase {\r\n if (this._instance == null) {\r\n this._instance = new EffectSingleCase();\r\n }\r\n return this._instance;\r\n }\r\n\r\n\r\n /** 全局动画播放速度 */\r\n private _speed: number = 1;\r\n get speed(): number {\r\n return this._speed;\r\n }\r\n set speed(value: number) {\r\n this._speed = value;\r\n this.effects_use.forEach((value: Boolean, key: Node) => {\r\n this.setSpeed(key);\r\n });\r\n }\r\n\r\n /** 不同类型的对象池集合 */\r\n private effects: Map = new Map();\r\n private effects_use: Map = new Map();\r\n\r\n constructor() {\r\n EventManager.Inst.on(EffectEvent.Put, this , this.onHandler);\r\n }\r\n\r\n private onHandler(event: string, args: any) {\r\n if (event == EffectEvent.Put) {\r\n this.put(args as Node);\r\n }\r\n }\r\n\r\n /** 加载资源并现实特效 */\r\n loadAndShow(name: string, parent?: Node, params?: IEffectParams): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n var np = this.effects.get(name);\r\n if (np == undefined) {\r\n ResHelper.load(name, Prefab, (err: Error | null, prefab: Prefab) => {\r\n if (err) {\r\n // game/content/skill/hit/animation\r\n console.error(`名为【${name}】的特效资源加载失败`);\r\n return;\r\n }\r\n try {\r\n var node = this.show(name, parent, params);\r\n resolve(node);\r\n }\r\n catch {\r\n Logger.logView('loadAndShow特效节点出错');\r\n }\r\n\r\n });\r\n }\r\n else {\r\n var node = this.show(name, parent, params);\r\n resolve(node);\r\n }\r\n });\r\n }\r\n\r\n /** 预加载资源特效 */\r\n preLoad(name: string): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n var np = this.effects.get(name);\r\n if (np == undefined) {\r\n ResHelper.load(name, Prefab, (err: Error | null, prefab: Prefab) => {\r\n if (err) {\r\n // game/content/skill/hit/animation\r\n console.error(`名为【${name}】的特效资源加载失败`);\r\n resolve(false);\r\n return;\r\n }\r\n\r\n var np = this.effects.get(name);\r\n if (np == null) {\r\n np = new NodePool();\r\n this.effects.set(name, np);\r\n }\r\n resolve(true);\r\n\r\n });\r\n }\r\n else {\r\n resolve(true);\r\n }\r\n });\r\n }\r\n\r\n /** \r\n * 显示预制对象 \r\n * @param name 预制对象名称\r\n * @param parent 父节点\r\n * @param pos 位置\r\n */\r\n show(name: string, parent?: Node, params?: IEffectParams): Node {\r\n var np = this.effects.get(name);\r\n if (np == null) {\r\n np = new NodePool();\r\n this.effects.set(name, np);\r\n }\r\n\r\n var node: Node;\r\n if (np.size() == 0) {\r\n node = ResHelper.createPrefabNode(name) as Node;\r\n node.addComponent(EffectData).type = name;\r\n if (params && params.isPlayFinishedRelease) {\r\n node.addComponent(EffectFinishedRelease);\r\n }\r\n }\r\n else {\r\n node = np.get()!;\r\n node.getComponent(EffectFinishedRelease);\r\n }\r\n this.setSpeed(node);\r\n\r\n if (params && params.pos)\r\n node.position = params.pos;\r\n\r\n if (parent) {\r\n // Logger.logNet('showeffsingleCase parent', parent);\r\n // Logger.logNet('showeffsingleCase node', node);\r\n if (params && params.pos){\r\n node.active = true;\r\n }else{\r\n node.active = false;\r\n }\r\n node.parent = parent;\r\n }\r\n\r\n // 记录缓冲池中放出的节点\r\n this.effects_use.set(node, true);\r\n\r\n return node;\r\n }\r\n\r\n /**\r\n * 回收对象\r\n * @param name 预制对象名称\r\n * @param node 节点\r\n */\r\n put(node: Node) {\r\n if (!node) return;\r\n var name = node.getComponent(EffectData)!.type;\r\n var np = this.effects.get(name);\r\n if (np) {\r\n // 回收使用的节点\r\n this.effects_use.delete(node);\r\n\r\n // 回到到池中\r\n np.put(node);\r\n }\r\n }\r\n\r\n /**\r\n * 清除对象池数据\r\n * @param name 参数为空时,清除所有对象池数据;指定名时,清楚指定数据\r\n */\r\n clear(name?: string) {\r\n if (name) {\r\n var np = this.effects.get(name)!;\r\n np.clear();\r\n }\r\n else {\r\n this.effects.forEach(np => {\r\n np.clear();\r\n });\r\n this.effects.clear();\r\n }\r\n }\r\n\r\n /** 设置动画速度 */\r\n private setSpeed(node: Node) {\r\n // SPINE动画\r\n let spine = node.getComponent(sp.Skeleton);\r\n if (spine) {\r\n spine.timeScale = this.speed;\r\n }\r\n else {\r\n // COCOS动画\r\n let anims: Animation[] = node.getComponentsInChildren(Animation);\r\n if (anims.length > 0) {\r\n anims.forEach(animator => {\r\n let aniName = animator.defaultClip?.name;\r\n if (aniName) {\r\n let aniState = animator.getState(aniName);\r\n if (aniState) {\r\n aniState.speed = this.speed;\r\n }\r\n }\r\n });\r\n }\r\n // 粒子动画\r\n else if (ParticleSystem) {\r\n let particles: ParticleSystem[] = node.getComponentsInChildren(ParticleSystem);\r\n particles.forEach(particle => {\r\n particle.simulationSpeed = this.speed;\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** 特效管理模块事件 */\r\nexport enum EffectEvent {\r\n /** 回收节点 */\r\n Put = \"EffectEvent_Put\"\r\n}","import { _decorator } from 'cc';\nvar _key = 0;\n\nexport class EncryptIntNumber {\n public static _arraySize = 3;\n private static _isInited = false;\n private _values: number[];\n private _index = 0;\n constructor() {\n this._values = new Array(EncryptIntNumber._arraySize);\n if (!EncryptIntNumber._isInited) {\n _key = Math.round(Math.random() * Number.MAX_SAFE_INTEGER);\n EncryptIntNumber._isInited = true;\n }\n }\n get value() {\n return _key ^ this._values[this._index];\n }\n\n set value(v: number) {\n this._index++;\n if (this._index >= EncryptIntNumber._arraySize) {\n this._index = 0;\n }\n this._values[this._index] = v ^ _key;\n }\n}","import { _decorator, Texture2D, Label, Node, Sprite, ProgressBar, Button, sys, assetManager, game } from 'cc';\nconst { ccclass, property } = _decorator;\nimport { PREVIEW } from 'cc/env';\n\nimport GameConst from \"../../core/common/GameConst\";\nimport BasePanel from \"../../core/component/BasePanel\";\nimport MsgHints from \"../../core/component/MsgHints\";\nimport WindowManager, { UILayer } from \"../../core/manager/WindowManager\";\nimport { GameManager } from \"../GameManager\";\nimport { v3 } from 'cc';\nimport { v2 } from 'cc';\nimport { Vec3 } from 'cc';\nimport { clamp01 } from 'cc';\nimport { resources } from 'cc';\nimport { EventManager, EventType } from '../../core/manager/EventManager';\nimport { GebolinView } from '../../role/GebolinView';\nimport { instantiate } from 'cc';\nimport ConfigManager from '../../_config/ConfigManager';\nimport { GlobalFunction } from '../game/common/GlobalFunction';\nimport { GameModleComp } from '../../game/GameModle';\nimport { dataUser } from '../gameData/dataUser';\nimport { Pass, PassPoxy } from '../game/proxy/PassPoxy';\nimport { MapPoxy, Maps } from '../game/proxy/MapPoxy';\nimport { Logger } from '../../../core/common/log/Logger';\nimport { Prefab } from 'cc';\nimport GameEntry from '../GameEntry';\nimport { BossComeUiViewComp } from '../../item/BossComeUiViewComp';\nimport { Story } from '../game/proxy/StoryPoxy';\nimport { StoryUIViewComp } from '../game/mainui/StoryUIViewComp';\ndeclare var GameGlobal: any;\nconst wx = window['wx'];\n\n@ccclass('EnterUI')\nexport default class EnterUI extends BasePanel {\n onBtnClicked(e: any, name: string) {\n switch (name) {\n case 'Button_clean':\n // WindowManager.Instance().open(GameConst.winPath.KeFuLoadingUI, null, true);\n break;\n case 'Button_age':\n // WindowManager.Instance().open(GameConst.winPath.Age12LoadingUI, null, true);\n break;\n }\n }\n isNew = true;\n @property(Node) Label_num: Node | null = null;\n @property(Node) ProgressBar_exp: Node = null; // 进度条\n @property(Node) Label_dec: Node = null; // 描述文本 \n onShow(data: any) {\n\n // 获取已加载的分包\n let resourceBundle = assetManager.bundles.get(\"resources\");\n resourceBundle = assetManager.getBundle(\"resources\");\n resourceBundle = assetManager.resources;\n // 获取某个指定文件夹下的所有资源信息\n const resourcePaths = resourceBundle.getDirWithPath(\"./\");\n const maxLen = resourcePaths.length;\n // 设置进度相关\n let lbl_versionstring = this.Label_num.getComponent(Label);\n let decstring = this.Label_dec.getComponent(Label);\n let loadBarNode = this.ProgressBar_exp.getComponent(ProgressBar);\n decstring.string = \"\"\n // loadBarNode.progress = 0;\n let loadCount = 0;\n let aniTipsInfo = ['Loading', 'Loading.', 'Loading..', 'Loading...','Loading....'];\n let aniTipsIndex = 0;\n // for (let i = 0; i < maxLen; ++i) {\n // const path = resourcePaths[i].path;\n // resources.preload(path,\n // (completedCount: number, totalCount: number, item) => {\n // // console.log(\"progress:\", completedCount, totalCount);\n // },\n // (err: Error | null, data: any) => {\n // if (err) {\n // return console.error(\"preload failed: \" + err.message + \"——path:\"+path);\n // }\n // aniTipsIndex++;\n // if (aniTipsIndex >= aniTipsInfo.length) {\n // aniTipsIndex = 0;\n // }\n // decstring.string = aniTipsInfo[aniTipsIndex];\n // // 加载进度改变\n // loadCount++;\n\n // // console.log(\"===============loadCount================\"+loadCount +\" maxLen=====\"+maxLen);\n // // decstring.string = `加载${path}`\n // loadBarNode.progress = clamp01(loadCount / maxLen);\n // //console.log(`预加载的资源:${path}, 进度${loadBarNode.progress}`);\n // if (loadCount >= maxLen) {\n decstring.string = \"complete\";\n // }\n // }\n // );\n // }\n lbl_versionstring.string = \"v\" + GameConst.LocalVersion;\n\n if (window['wx'] != null) {\n let version = window['__wxConfig'].envVersion;\n switch (version) {\n case 'develop':\n lbl_versionstring.string += ' dev';\n break;\n case 'trial':\n lbl_versionstring.string += ' tri';\n break;\n case 'release':\n lbl_versionstring.string += ' pro';\n break;\n default:\n break;\n }\n lbl_versionstring.string += ' ' + wx.getSystemInfoSync().SDKVersion;\n } else {\n if (PREVIEW) {\n lbl_versionstring.string += ' pre'\n }\n }\n\n // this.sp_bar.fillRange = 0;\n }\n\n logoAni() {\n // cc.tween(this.node_ji).to(0.2, { y: this.node_ji_target.y, scale: 1, width: this.node_ji_target.width, height: this.node_ji_target.height }, { easing: 'sineOut' }).start();\n // cc.tween(this.node_logo).delay(0.2).to(0.2, { y: this.node_logo_target.y }, { easing: 'backOut' }).call(() => {\n // this.node_loading.active = true;\n // this.node_tips.active = true;\n // }).start();\n }\n\n protected onLoad(): void {\n // if (PREVIEW || sys.platform == sys.Platform.WECHAT_GAME) {\n // WindowManager.Instance().open(GameConst.winPath.LoadingKefuWin)\n // }\n }\n protected onDestroy(): void {\n\n }\n\n onHide(): void {\n // if (this.remoteBG != null) {\n // // cc.assetManager.releaseAsset(this.remoteBG)\n // this.remoteBG.destroy();\n // this.remoteBG = null;\n // }\n }\n private changeUi(){\n this.node.active = false;\n //BossComeUiViewComp\n let bossCome:StoryUIViewComp = instantiate(GameEntry.Inst.storyPrefab).getComponent(StoryUIViewComp);\n let laye:Node = WindowManager.Instance().getLayer(UILayer.最顶层);\n laye.addChild(bossCome.node);\n WindowManager.Instance().open(GameConst.winPath.MainUI)\n .then(() => {\n WindowManager.Instance().removeWindow(GameConst.winPath.EnterUI, true);\n })\n \n EventManager.Inst.event(EventType.LOGIN_OVER_LOAD_MAP);\n }\n private isOPen:boolean = false;\n private isCoontServer:boolean = false;\n private isLoginend:boolean = false;\n protected update(dt: number): void {\n if(!this.isOPen){\n if(GameModleComp.getInstance().selectGuankaId && !this.isCoontServer){\n console.log(\"enterUI 中获取到服务器链接成功\");\n this.isCoontServer = true;\n GameModleComp.getInstance().starTime();\n let pass:Pass = PassPoxy.Inst.getPassById( GameModleComp.getInstance().selectGuankaId);\n let map:Maps = MapPoxy.Inst.getMapById(pass.mapId);\n let bundle = assetManager.getBundle(\"spineRes\");\n bundle.loadDir(\"spineRes\", (err, assets)=> {\n Logger.logView(\"enterui spineRes/spineRes\"+ \"初始化完成\");\n let b = assetManager.getBundle(\"mapRes\");\n b.loadDir(\"map/\"+map.mapSource, (err, assets)=> {\n console.log(\"enterui map/\"+map.mapSource + \"初始化完成\");\n let re = assetManager.getBundle(\"resources\");\n re.loadDir(\"prefabs/\", (err, assets)=> {\n console.log(\"enterui prefabs\" + \"初始化完成\");\n this.isLoginend = true;\n this.isOPen = true;\n });\n });\n });\n }\n }else{\n if(this.Label_dec.getComponent(Label).string == \"complete\"){\n if(this.isLoginend && this.isCoontServer){\n console.log(\"资源加载完成,服务器链接完成,进入mainUi\")\n this.changeUi();\n }\n }\n }\n }\n\n btn_wx_auth: Button | null = null;\n clearRes() {\n if (wx) {\n wx.showModal({\n title: '提示',\n content: '是否要清理缓存重新进入游戏?',\n success: function (res) {\n if (res.confirm) {\n wx.clearStorage()\n // TODO 3.x弃用了, 需要替代方案\n // audioEngine.stopAll() \n assetManager.releaseAll()\n game.restart()\n MsgHints.show(\"清理成功,请重启游戏\")\n } else {\n\n }\n }\n })\n }\n }\n}","// ! 自动导出,请不要修改\n//\n/**\n* Entity config配置文件\n* ! 自动导出,不要修改和直接引用\n*/\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from \"../_ConfigInject/Config_Decorator\";\n\n@res_auto_bind()\nexport class EntityPoxy {\n private static _inst: EntityPoxy;\n public static get Inst(): EntityPoxy {\n if (EntityPoxy._inst == null) {\n EntityPoxy._inst = new EntityPoxy();\n }\n return EntityPoxy._inst;\n }\n private keyMap = {\n _0: \"ID\",\n _1: \"Desc\",\n _2: \"NameId\",\n _3: \"DescId\",\n _4: \"Type\",\n _5: \"FxOffset\",\n _6: \"FxSpawnAlertScale\",\n _7: \"MatResourceId\",\n _8: \"Scale\",\n _9: \"drop_id\",\n _10: \"ColliderRadius\",\n _11: \"NavmeshPriority\",\n _12: \"ThroughWall\",\n _13: \"MaxHp\",\n _14: \"Ap\",\n _15: \"MoveSpeed\",\n _16: \"MoveSpeedLimit\",\n _17: \"Mass\",\n _18: \"WeaponId\",\n _19: \"FirePosOffset\",\n _20: \"SpinId\",\n _21: \"spineskin\",\n _22: \"ControllerId\",\n _23: \"ControllerParam\",\n _24: \"ComponentParam\",\n _25: \"Remote\",\n _26: \"IdleStartIndex\",\n _27: \"IdleEndIndex\",\n _28: \"DeathStartIndex\",\n _29: \"DeathEndIndex\",\n _30: \"OnDeathWeaponId\",\n _31: \"JellyRate\",\n _32: \"DeadTime\",\n _33: \"BlockID\",\n _34: \"BlockCount\",\n _35: \"UnlockZBetweenBossAndPlayer\",\n _36: \"BlockRange1\",\n _37: \"BlockRange2\",\n _38: \"DeathSoundId\",\n };\n @res_assign(\"Entity\")\n public datas: Entity[];\n private _map: any;\n private get Map(): Map {\n if (this._map == null) {\n this._map = new Map();\n this.datas.forEach(config => {\n this._map.set(config.ID, config);\n });\n }\n return this._map;\n }\n public Get(id: number) {\n return this.Map.get(id);\n }\n}\n\nexport class Entity {\n // /** 编号 */\n ID: number;\n // /** 描述(不生成) */\n Desc: string;\n // /** 多语言名称ID */\n NameId: number;\n // /** 多语言描述ID */\n DescId: number;\n // /** 0,玩家角色|1,基础小怪|2,精英怪物|3,Boss|4,Boss围栏|5,障碍类怪物 */\n Type: number;\n // /** 精英特殊标记坐标修正|posx|posz|scale */\n FxOffset: number[];\n // /** 带Controller的Boss类怪物刷新的缩放修正(不填或者填0时默认为1) */\n FxSpawnAlertScale: number;\n // /** 材质球 */\n MatResourceId: number;\n // /** 缩放 */\n Scale: number;\n // /** 关联掉落Drop-Item */\n drop_id: number[];\n // /** 碰撞盒大小 */\n ColliderRadius: number;\n // /** 优先级,范围为1-99,越小越高。 */\n NavmeshPriority: number;\n // /** 当地图边缘锁定时,是否可以穿过墙体 */\n ThroughWall: boolean;\n // /** 血量 */\n MaxHp: number;\n // /** 攻击力 */\n Ap: number;\n // /** 移动速度 */\n MoveSpeed: number;\n // /** 移动速度上限 */\n MoveSpeedLimit: number;\n // /** 角色质量|(影响受力击退,被作为除数不能为0)| */\n Mass: number;\n // /** 武器Id */\n WeaponId: number[];\n // /** 开火位置偏移||0 - X偏移|1 - Z偏移 */\n FirePosOffset: number[];\n // /** Spin资源id(Resouces表格) */\n SpinId: number;\n // /** 默认皮肤 */\n spineskin: string;\n // /** AI控制器Id */\n ControllerId: number;\n // /** AI控制器参数 */\n ControllerParam: any;\n // /** 组件参数Index:4 死亡召唤Index:2 加速移动Index:3 召唤Index:1 护盾 ShieldValue抵挡攻击次数Index:5 boss绿色野猪一边打一边掉落 目前不会出现这种怪物 没有做 */\n ComponentParam: any[];\n // /** 资源是否放在服务器上 */\n Remote: number;\n // /** Idle动作起始帧 */\n IdleStartIndex: number;\n // /** Idle动作结束帧 */\n IdleEndIndex: number;\n // /** 死亡动作起始帧 */\n DeathStartIndex: number;\n // /** 死亡动作结束帧 */\n DeathEndIndex: number;\n // /** 死亡发射武器ID */\n OnDeathWeaponId: number;\n // /** 果冻动画比例|缩放比例|时间比例|0是没有果冻动画 */\n JellyRate: number[];\n // /** 自动销毁时间(秒) */\n DeadTime: number;\n // /** boss使用的路障id */\n BlockID: number;\n // /** 刷新的路障数量 */\n BlockCount: number;\n // /** 自由模式时BOSS在人物的固定高度位置 */\n UnlockZBetweenBossAndPlayer: number;\n // /** 路障范围|环形:|Radius|矩形:|x|y */\n BlockRange1: number[];\n // /** 路障范围|环形:|min|max|矩形:|xmin|xmax|ymin|ymax */\n BlockRange2: number;\n // /** 死亡音效 */\n DeathSoundId: number;\n}","import { _decorator } from \"cc\";\r\nimport * as exp from \"constants\";\r\n\r\nconst { ccclass } = _decorator;\r\n@ccclass('Enum')\r\nexport class Enum{\r\n\r\n}\r\nexport enum AllRoleTypeEnum{\r\n None,\r\n Friend,\r\n Enemy,\r\n All,\r\n EndValue\r\n}\r\nexport enum RoleTypeEnum{\r\n GeBuLin,\r\n Hero,\r\n Monster\r\n}\r\n\r\nexport enum AttType{\r\n /**占位*/\r\n None = \"None\",\r\n /**攻击力*/\r\n atkValue = \"atkValue\",\r\n /**防御力*/\r\n defValue = \"defValue\",\r\n /**血量*/\r\n hpValue = \"hpValue\",\r\n /**暴击率*/\r\n baoJiRate = \"baoJiRate\",\r\n /**暴击伤害*/\r\n baoJiHurtRate = \"baoJiHurtRate\",\r\n /**抗暴*/\r\n deBaoJiRate = \"deBaoJiRate\",\r\n /**攻击加成*/\r\n atkRate = \"atkRate\",\r\n /**防御加成*/\r\n defRate = \"defRate\",\r\n /**血量加成*/\r\n hpRate = \"hpRate\",\r\n /**伤害加成*/\r\n hurtRate = \"hurtRate\",\r\n /**伤害减免*/\r\n deHurtRate = \"deHurtRate\",\r\n /**闪避*/\r\n deShanBiRate = \"deShanBiRate\",\r\n /**命中率*/\r\n mingZhongRate = \"mingZhongRate\",\r\n /**技能伤害加成*/\r\n skillHurtRate = \"skillHurtRate\",\r\n /**治疗/护盾加成*/\r\n zhiLiaoRate = \"zhiLiaoRate\",\r\n /**降治疗*/\r\n deJianLiaoRate = \"deJianLiaoRate\",\r\n /**血量上限*/\r\n HpMax = \"HpMax\",\r\n \r\n /**暴击率增量*/\r\n baoJiRateAdd = \"baoJiRateAdd\",\r\n /**爆伤增量*/\r\n baoJiHurtRateAdd = \"baoJiHurtRateAdd\",\r\n /**攻速增量*/\r\n atkSpeedAdd = \"atkSpeedAdd\",\r\n\r\n /**结束占位*/\r\n EndValue = \"EndValue\",\r\n}\r\n\r\nexport enum HeroAiType{\r\n None , \r\n ToFight,\r\n ToMove,\r\n Fight,\r\n EndValue\r\n}\r\n\r\nexport enum SkillEType{\r\n JiNengLengQue = 1,\r\n DanTiMuBiao = 2,\r\n YuanXingMuBiao = 3,\r\n SanXingMuBiao = 4,\r\n FangXingMuBiao = 5,\r\n ZhiXianMuBiao = 6,\r\n HuiTan = 7,\r\n GongJiCiShu = 8,\r\n NCiShangHai=9,\r\n ZhiXianXuLi = 10,\r\n ShangHai = 101,\r\n XuanYun = 102,\r\n GongSuJian=103,\r\n GongSuJia = 104,\r\n BaoJiJia = 105,\r\n BaoShangJia = 106,\r\n BingDong = 107,\r\n JiTui = 108,\r\n BossDan = 201,\r\n BossYuan = 202,\r\n BossFnag = 203\r\n \r\n}\r\n/***地图类型*/\r\nexport enum FightMapEnum{\r\n None,\r\n /**关卡副本,常规地图*/\r\n GuanQiaMap,\r\n /**超时空大盗*/\r\n DaDaoMap,\r\n /**失落宝库*/\r\n BaoKuMap,\r\n /**暗网军火商*/\r\n JunHuoMap,\r\n /**基因编辑诊所*/\r\n JiYinMap,\r\n /**PvP副本地图*/\r\n PvpMap,\r\n}\r\n\r\n/**副本类型*/\r\nexport enum PveTypeEnum{\r\n None,\r\n /**超时空大盗*/\r\n DaDao,\r\n /**失落宝库*/\r\n BaoKu,\r\n /**暗网军火商*/\r\n JunHuo,\r\n /**基因编辑诊所*/\r\n JiYin,\r\n EndValue,\r\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\n// import { TitleData, TitleProxy, titleStyle } from \"../proxy/TitleProxy\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { HeroEquipProxy } from \"../proxy/HeroEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { p_ci_tiao, p_hero_equip } from \"../../../proto/proto\";\nimport { RichText } from \"cc\";\nconst { ccclass, property } = _decorator;\n \n@ccclass('EquiptDecUI')\nexport default class EquiptDecUI extends BasePanel {\n heroequipserver :p_hero_equip;\n citiaoList?: p_ci_tiao[];\n bufflist: number[];//攻击防御血量\n \n //普通\n @property(Node) Layout_putong: Node | null = null;\n putong: Node | null = null;\n prefabputong: Node | null = null;\n \n //特殊\n @property(Node) Layout_teshu: Node | null = null;\n teshu: Node | null = null;\n prefabteshu: Node | null = null;\n \n @property(Node) Sprite_itemkuang: Node | null = null;\n @property(Node) Sprite_item: Node | null = null;\n @property(Node) Label_lv: Node | null = null;\n @property(Node) Label_item: Node | null = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n let pos = data;\n this.heroequipserver = HeroEquipProxy.Inst.GotHeroEquipByPos(pos);\n let herodata = HeroEquipProxy.Inst.GetHeroEquipByID( this.heroequipserver.eqId);\n this.citiaoList = this.heroequipserver.ciTiaoList;\n let Sprite_itemkuang = this.Sprite_itemkuang.getComponent(Sprite);\n let Sprite_item = this.Sprite_item.getComponent(Sprite);\n let Label_lv = this.Label_lv.getComponent(Label);\n let Label_item = this.Label_item.getComponent(RichText);\n \n let icon_item = SoldierEquipProxy.Inst.GetSoldierEquipKuang(herodata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang,icon_item);\n GlobalFunction.SetSpriteFrame(Sprite_item,herodata.icon);\n Label_lv.string =GlobalFunction.ShowLV( this.heroequipserver.lv);\n Label_item.string =HeroEquipProxy.Inst.GetHeroEquipNameByHeroId(herodata.equipId);\n if (this.bufflist == undefined) {\n this.bufflist = [];\n }\n this.bufflist.length = 0;\n this.bufflist.push(this.heroequipserver.atk);\n this.bufflist.push(this.heroequipserver.def);\n this.bufflist.push(this.heroequipserver.hp);\n this.ShowRenYiItemList();\n }\n\n public ShowRenYiItemList(){\n\n //品质\n this.prefabputong = this.putong;\n this.Layout_putong.removeAllChildren();\n for (let i = 0; i < this.bufflist.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabputong);\n if (itemNode) {\n itemNode.parent = this.Layout_putong;\n let Label_numpt = itemNode.getChildByName(\"Label_numpt\").getComponent(Label);\n let Label_decpt = itemNode.getChildByName(\"Label_decpt\").getComponent(Label);\n Label_decpt.string = GlobalFunction.GotBuffDecByFuffType(i+1,1);\n Label_numpt.string = GlobalFunction.ConvertUndefinedToNumber(this.bufflist[i])+\"\";\n }\n }\n\n\n //特殊\n this.prefabteshu = this.teshu;\n this.Layout_teshu.removeAllChildren();\n\n if(this.citiaoList!=undefined){\n for (let i = 0; i < this.citiaoList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabteshu);\n if (itemNode) {\n itemNode.parent = this.Layout_teshu;\n let citiao = this.citiaoList[i];\n let equipbuffdata = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiao.id);\n\n \n // console.log(\"heroEquipBuff.id===\"+equipbuffdata.libraryid +\" heroEquipBuff.type==\"+equipbuffdata.type +\" effect==\"+equipbuffdata.effect);\n let Label_numpt = itemNode.getChildByName(\"Label_numts\").getComponent(RichText);\n let Label_decpt = itemNode.getChildByName(\"Label_dects\").getComponent(RichText);\n Label_decpt.string =GlobalFunction.GotBuffColorName(equipbuffdata.color, GlobalFunction.GotBuffDecByFuffType(equipbuffdata.type,equipbuffdata.effect));\n Label_numpt.string =GlobalFunction.GotBuffColorName(equipbuffdata.color,GlobalFunction.ConvertExtremelyNumber(GlobalFunction.ConvertUndefinedToNumber(citiao.v)));\n }\n }\n }\n }\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n clearRes() {\n }\n}\n","/**\n * Event 是事件类型的集合。一般当发生事件时,Event 对象将作为参数传递给事件侦听器。\n */\n\nimport { _decorator } from 'cc';\nexport class Laya_Event {\n /** 一个空的 Event 对象。用于事件派发中转使用。*/\n static EMPTY: Laya_Event = new Laya_Event();\n /** 定义 mousedown 事件对象的 type 属性值。*/\n static MOUSE_DOWN: string = \"mousedown\";\n /** 定义 mouseup 事件对象的 type 属性值。*/\n static MOUSE_UP: string = \"mouseup\";\n /** 定义 click 事件对象的 type 属性值。*/\n static CLICK: string = \"click\";\n /** 定义 rightmousedown 事件对象的 type 属性值。*/\n static RIGHT_MOUSE_DOWN: string = \"rightmousedown\";\n /** 定义 rightmouseup 事件对象的 type 属性值。*/\n static RIGHT_MOUSE_UP: string = \"rightmouseup\";\n /** 定义 rightclick 事件对象的 type 属性值。*/\n static RIGHT_CLICK: string = \"rightclick\";\n /** 定义 mousemove 事件对象的 type 属性值。*/\n static MOUSE_MOVE: string = \"mousemove\";\n /** 定义 mouseover 事件对象的 type 属性值。*/\n static MOUSE_OVER: string = \"mouseover\";\n /** 定义 mouseout 事件对象的 type 属性值。*/\n static MOUSE_OUT: string = \"mouseout\";\n /** 定义 mousewheel 事件对象的 type 属性值。*/\n static MOUSE_WHEEL: string = \"mousewheel\";\n /** 定义 mouseover 事件对象的 type 属性值。*/\n static ROLL_OVER: string = \"mouseover\";\n /** 定义 mouseout 事件对象的 type 属性值。*/\n static ROLL_OUT: string = \"mouseout\";\n /** 定义 doubleclick 事件对象的 type 属性值。*/\n static DOUBLE_CLICK: string = \"doubleclick\";\n /** 定义 change 事件对象的 type 属性值。*/\n static CHANGE: string = \"change\";\n /** 定义 changed 事件对象的 type 属性值。*/\n static CHANGED: string = \"changed\";\n /** 定义 resize 事件对象的 type 属性值。*/\n static RESIZE: string = \"resize\";\n /** 定义 added 事件对象的 type 属性值。*/\n static ADDED: string = \"added\";\n /** 定义 removed 事件对象的 type 属性值。*/\n static REMOVED: string = \"removed\";\n /** 定义 display 事件对象的 type 属性值。*/\n static DISPLAY: string = \"display\";\n /** 定义 undisplay 事件对象的 type 属性值。*/\n static UNDISPLAY: string = \"undisplay\";\n /** 定义 error 事件对象的 type 属性值。*/\n static ERROR: string = \"error\";\n /** 定义 complete 事件对象的 type 属性值。*/\n static COMPLETE: string = \"complete\";\n /** 定义 loaded 事件对象的 type 属性值。*/\n static LOADED: string = \"loaded\";\n /** 定义 loaded 事件对象的 type 属性值。*/\n static READY: string = \"ready\";\n /** 定义 progress 事件对象的 type 属性值。*/\n static PROGRESS: string = \"progress\";\n /** 定义 input 事件对象的 type 属性值。*/\n static INPUT: string = \"input\";\n /** 定义 render 事件对象的 type 属性值。*/\n static RENDER: string = \"render\";\n /** 定义 open 事件对象的 type 属性值。*/\n static OPEN: string = \"open\";\n /** 定义 message 事件对象的 type 属性值。*/\n static MESSAGE: string = \"message\";\n /** 定义 close 事件对象的 type 属性值。*/\n static CLOSE: string = \"close\";\n /** 定义 keydown 事件对象的 type 属性值。*/\n static KEY_DOWN: string = \"keydown\";\n /** 定义 keypress 事件对象的 type 属性值。*/\n static KEY_PRESS: string = \"keypress\";\n /** 定义 keyup 事件对象的 type 属性值。*/\n static KEY_UP: string = \"keyup\";\n /** 定义 frame 事件对象的 type 属性值。*/\n static FRAME: string = \"enterframe\";\n /** 定义 dragstart 事件对象的 type 属性值。*/\n static DRAG_START: string = \"dragstart\";\n /** 定义 dragmove 事件对象的 type 属性值。*/\n static DRAG_MOVE: string = \"dragmove\";\n /** 定义 dragend 事件对象的 type 属性值。*/\n static DRAG_END: string = \"dragend\";\n /** 定义 enter 事件对象的 type 属性值。*/\n static ENTER: string = \"enter\";\n /** 定义 select 事件对象的 type 属性值。*/\n static SELECT: string = \"select\";\n /** 定义 blur 事件对象的 type 属性值。*/\n static BLUR: string = \"blur\";\n /** 定义 focus 事件对象的 type 属性值。*/\n static FOCUS: string = \"focus\";\n /** 定义 visibilitychange 事件对象的 type 属性值。*/\n static VISIBILITY_CHANGE: string = \"visibilitychange\";\n /** 定义 focuschange 事件对象的 type 属性值。*/\n static FOCUS_CHANGE: string = \"focuschange\";\n /** 定义 played 事件对象的 type 属性值。*/\n static PLAYED: string = \"played\";\n /** 定义 paused 事件对象的 type 属性值。*/\n static PAUSED: string = \"paused\";\n /** 定义 stopped 事件对象的 type 属性值。*/\n static STOPPED: string = \"stopped\";\n /** 定义 start 事件对象的 type 属性值。*/\n static START: string = \"start\";\n /** 定义 end 事件对象的 type 属性值。*/\n static END: string = \"end\";\n /** 定义 componentadded 事件对象的 type 属性值。*/\n static COMPONENT_ADDED: string = \"componentadded\";\n /** 定义 componentremoved 事件对象的 type 属性值。*/\n static COMPONENT_REMOVED: string = \"componentremoved\";\n /** 定义 released 事件对象的 type 属性值。*/\n static RELEASED: string = \"released\";\n /** 定义 link 事件对象的 type 属性值。*/\n static LINK: string = \"link\";\n /** 定义 label 事件对象的 type 属性值。*/\n static LABEL: string = \"label\";\n /**浏览器全屏更改时触发*/\n static FULL_SCREEN_CHANGE: string = \"fullscreenchange\";\n /**显卡设备丢失时触发*/\n static DEVICE_LOST: string = \"devicelost\";\n /**世界矩阵更新时触发。*/\n static TRANSFORM_CHANGED: string = \"transformchanged\";\n /**更换动作时触发。*/\n static ANIMATION_CHANGED: string = \"animationchanged\";\n /**拖尾渲染节点改变时触发。*/\n static TRAIL_FILTER_CHANGE: string = \"trailfilterchange\";\n /**物理碰撞开始*/\n static TRIGGER_ENTER: string = \"triggerenter\";\n /**物理碰撞持续*/\n static TRIGGER_STAY: string = \"triggerstay\";\n /**物理碰撞结束*/\n static TRIGGER_EXIT: string = \"triggerexit\";\n}","/**\r\n * EventDispatcher 类是可调度事件的所有类的基类。\r\n */\r\n/**@private */\r\n/**@private handler对象池*/\r\n/**\r\n * @override\r\n */\r\n/**\r\n * 从对象池内创建一个Handler,默认会执行一次回收,如果不需要自动回收,设置once参数为false。\r\n * @param caller\t执行域(this)。\r\n * @param method\t回调方法。\r\n * @param args\t\t(可选)携带的参数。\r\n * @param once\t\t(可选)是否只执行一次,如果为true,回调后执行recover()进行回收,默认为true。\r\n * @return 返回创建的handler实例。\r\n */\r\n\r\nimport { _decorator } from 'cc';\r\nimport { Handler } from \"./Handler\"\r\nclass EventHandler extends Handler {\r\n protected static _pool: any[] = [];\r\n constructor(caller: any, method: Function, args: any[], once: boolean) {\r\n super(caller, method, args, once);\r\n }\r\n recover(): void {\r\n if (this._id > 0) {\r\n this._id = 0;\r\n EventHandler._pool.push(this.clear());\r\n }\r\n }\r\n static create(caller: any, method: Function, args: any[] = null, once: boolean = true): Handler {\r\n if (EventHandler._pool.length) return EventHandler._pool.pop().setTo(caller, method, args, once);\r\n return new EventHandler(caller, method, args, once);\r\n }\r\n}\r\n\r\nexport class EventDispatcher {\r\n /**@private */\r\n static MOUSE_EVENTS: any = { \"rightmousedown\": true, \"rightmouseup\": true, \"rightclick\": true, \"mousedown\": true, \"mouseup\": true, \"mousemove\": true, \"mouseover\": true, \"mouseout\": true, \"click\": true, \"doubleclick\": true };\r\n /**@private */\r\n private _events: any;\r\n //[IF-JS]Object.defineProperty(EventDispatcher.prototype, \"_events\", {enumerable: false,writable:true});\r\n /**\r\n * 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。\r\n * @param\ttype 事件的类型。\r\n * @return 如果指定类型的侦听器已注册,则值为 true;否则,值为 false。\r\n */\r\n hasListener(type: string): boolean {\r\n var listener: any = this._events && this._events[type];\r\n return !!listener;\r\n }\r\n\r\n /**\r\n * 派发事件。\r\n * @param type\t事件类型。\r\n * @param data\t(可选)回调数据。注意:如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如:[p1,p2,p3,...] ;如果需要回调单个参数 p ,且 p 是一个数组,则需要使用结构如:[p],其他的单个参数 p ,可以直接传入参数 p。\r\n * @return 此事件类型是否有侦听者,如果有侦听者则值为 true,否则值为 false。\r\n */\r\n event(type: string, data: any = null): boolean {\r\n if (!this._events || !this._events[type]) return false;\r\n\r\n var listeners: any = this._events[type];\r\n if (listeners.run) {\r\n if (listeners.once) delete this._events[type];\r\n data != null ? listeners.runWith(data) : listeners.run();\r\n } else {\r\n for (var i: number = 0, n: number = listeners.length; i < n; i++) {\r\n var listener: Handler = listeners[i];\r\n if (listener) {\r\n (data != null) ? listener.runWith(data) : listener.run();\r\n }\r\n if (!listener || listener.once) {\r\n listeners.splice(i, 1);\r\n i--;\r\n n--;\r\n }\r\n }\r\n if (listeners.length === 0 && this._events) delete this._events[type];\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * 使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知。\r\n * @param type\t\t事件的类型。\r\n * @param caller\t事件侦听函数的执行域。\r\n * @param listener\t事件侦听函数。\r\n * @param args\t\t(可选)事件侦听函数的回调参数。\r\n * @return 此 EventDispatcher 对象。\r\n */\r\n on(type: string, caller: any, listener: Function, args: any[] = null): EventDispatcher {\r\n return this._createListener(type, caller, listener, args, false);\r\n }\r\n\r\n /**\r\n * 使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知,此侦听事件响应一次后自动移除。\r\n * @param type\t\t事件的类型。\r\n * @param caller\t事件侦听函数的执行域。\r\n * @param listener\t事件侦听函数。\r\n * @param args\t\t(可选)事件侦听函数的回调参数。\r\n * @return 此 EventDispatcher 对象。\r\n */\r\n once(type: string, caller: any, listener: Function, args: any[] = null): EventDispatcher {\r\n return this._createListener(type, caller, listener, args, true);\r\n }\r\n\r\n /**@internal */\r\n _createListener(type: string, caller: any, listener: Function, args: any[], once: boolean, offBefore: boolean = true): EventDispatcher {\r\n //移除之前相同的监听\r\n offBefore && this.off(type, caller, listener, once);\r\n\r\n //使用对象池进行创建回收\r\n var handler: Handler = EventHandler.create(caller || this, listener, args, once);\r\n this._events || (this._events = {});\r\n\r\n var events: any = this._events;\r\n //默认单个,每个对象只有多个监听才用数组,节省一个数组的消耗\r\n if (!events[type]) events[type] = handler;\r\n else {\r\n if (!events[type].run) events[type].push(handler);\r\n else events[type] = [events[type], handler];\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * 从 EventDispatcher 对象中删除侦听器。\r\n * @param type\t\t事件的类型。\r\n * @param caller\t事件侦听函数的执行域。\r\n * @param listener\t事件侦听函数。\r\n * @param onceOnly\t(可选)如果值为 true ,则只移除通过 once 方法添加的侦听器。\r\n * @return 此 EventDispatcher 对象。\r\n */\r\n off(type: string, caller: any, listener: Function, onceOnly: boolean = false): EventDispatcher {\r\n if (!this._events || !this._events[type]) return this;\r\n var listeners: any = this._events[type];\r\n if (listeners != null) {\r\n if (listeners.run) {\r\n if ((!caller || listeners.caller === caller) && (listener == null || listeners.method === listener) && (!onceOnly || listeners.once)) {\r\n delete this._events[type];\r\n listeners.recover();\r\n }\r\n } else {\r\n var count: number = 0;\r\n for (var i: number = 0, n: number = listeners.length; i < n; i++) {\r\n var item: Handler = listeners[i];\r\n if (!item) {\r\n count++;\r\n continue;\r\n }\r\n if (item && (!caller || item.caller === caller) && (listener == null || item.method === listener) && (!onceOnly || item.once)) {\r\n count++;\r\n listeners[i] = null;\r\n item.recover();\r\n }\r\n }\r\n //如果全部移除,则删除索引\r\n if (count === n) delete this._events[type];\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n /**\r\n * 从 EventDispatcher 对象中删除指定事件类型的所有侦听器。\r\n * @param type\t(可选)事件类型,如果值为 null,则移除本对象所有类型的侦听器。\r\n * @return 此 EventDispatcher 对象。\r\n */\r\n offAll(type: string = null): EventDispatcher {\r\n var events: any = this._events;\r\n if (!events) return this;\r\n if (type) {\r\n this._recoverHandlers(events[type]);\r\n delete events[type];\r\n } else {\r\n for (var name in events) {\r\n this._recoverHandlers(events[name]);\r\n }\r\n this._events = null;\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * 移除caller为target的所有事件监听\r\n * @param\tcaller caller对象\r\n */\r\n offAllCaller(caller: any): EventDispatcher {\r\n if (caller && this._events) {\r\n for (var name in this._events) {\r\n this.off(name, caller, null);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n private _recoverHandlers(arr: any): void {\r\n if (!arr) return;\r\n if (arr.run) {\r\n arr.recover();\r\n } else {\r\n for (var i: number = arr.length - 1; i > -1; i--) {\r\n if (arr[i]) {\r\n arr[i].recover();\r\n arr[i] = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 检测指定事件类型是否是鼠标事件。\r\n * @param\ttype 事件的类型。\r\n * @return\t如果是鼠标事件,则值为 true;否则,值为 false。\r\n */\r\n isMouseEvent(type: string): boolean {\r\n return EventDispatcher.MOUSE_EVENTS[type] || false;\r\n }\r\n}\r\n","/**\r\n* \r\n* @param testScene \r\n* @param missionID \r\n* @param type \r\n* @param challengeID \r\n* @param trailMainID \r\n*/\r\n\r\nimport { _decorator } from 'cc';\r\nimport { EventDispatcher } from \"../../LayaCode/EventDispatcher\";\r\nexport enum EventType {\r\n OPEN_DRAWER_MENU = \"OPEN_DRAWER_MENU\",\r\n GameShow = \"GameShow\",\r\n GameHide = \"GameHide\",\r\n BattleTime = \"BattleTime\",\r\n BattlePause = \"BattlePause\",\r\n battleTimeScale = \"battleTimeScale\",\r\n OPEN_BATTLE = \"OPEN_BATTLE\",\r\n OPEN_DAILY_CHALLENGE = \"OPEN_DAILY_CHALLENGE\",\r\n OPEN_SHOP = \"OPEN_SHOP\",\r\n OPEN_CHALLENGE = \"OPEN_CHALLENGE\",\r\n OPEN_TALENT = \"OPEN_TALENT\",\r\n OPEN_WEAPON = \"OPEN_WEAPON\",\r\n AddBattleTime = 'AddBattleTime',\r\n AddExp = \"AddExp\",\r\n CreateEnemy = 'CreateEnemy',\r\n SHOW_RWARD = 'SHOW_RWARD',\r\n SHOW_RWARD_BAG = 'SHOW_RWARD_BAG',\r\n LEVEL_UP = \"LEVEL_UP\",\r\n START_GUILD = \"START_GUILD\",\r\n JUMP_WATERMELON_GIFT = \"JUMP_WATERMELON_GIFT\",\r\n JoystickStart = 'JoystickStart',\r\n JoystickMove = \"JoystickMove\",\r\n JoystickStop = \"JoystickStop\",\r\n GOTOBATTLE = \"GOTOBATTLE\",\r\n GOTO_GAME_MAIN_STATE = \"GOTO_GAME_MAIN_STATE\",\r\n HTTP_TIME_OUT = \"HTTP_TIME_OUT\",\r\n NICKNAME_CHANGE = \"NICKNAME_CHANGE\",\r\n HEAD_IMG_CHANGE = \"HEAD_IMG_CHANGE\",\r\n SKIN_CHANGE = \"SKIN_CHANGE\",\r\n TILE_CHANGE = \"TILE_CHANGE\",\r\n CHANGE_CHAPTER = \"CHANGE_CHAPTER\", //切换章节\r\n ITEM_COUNT_CHANGE = 'ITEM_COUNT_CHANGE', //货币改变\r\n EQUIP_WEAR_STATE_CHANGE = 'EQUIP_WEAR_STATE_CHANGE', //装备/卸下\r\n EQUIP_UPGRADE = 'EQUIP_UPGRADE', //装备升级\r\n COMBINE_EQUIP = \"COMBINE_EQUIP\", //合成装备\r\n ACCESSORY_WEAR_STATE_CHANGE = 'ACCESSORY_WEAR_STATE_CHANGE', //装备/卸下\r\n ACCESSORY_UPGRADE = 'ACCESSORY_UPGRADE', //装备升级\r\n COMBINE_ACCESSORY = \"COMBINE_ACCESSORY\", //合成装备\r\n EQUIP_REDUCE_LEVEL = \"EQUIP_REDUCE_LEVEL\", //装备降级\r\n EQUIP_REDUCE_QUALITY = \"EQUIP_REDUCE_QUALITY\", //装备降品\r\n TALENT_UPGRADE = \"TALENT_UPGRADE\", //天赋升级\r\n SHOW_ITEM_TIP = \"SHOW_ITEM_TIP\", //道具简介TIPS\r\n SHOW_TIP = \"SHOW_TIP\", //显示文字\r\n RechargeGiftDraw = \"RechargeGiftDraw\",\r\n BOUGHT_GIFT_PUSH = \"BOUGHT_GIFT_PUSH\", //购买推送礼包\r\n SHOW_NEW_EQUIP_TIP = \"SHOW_NEW_EQUIP_TIP\",\r\n REFRESH_EQUIPMENTS = \"REFRESH_EQUIPMENTS\",\r\n APRIL_REFRESH_ITE = \"APRIL_REFRESH_ITE\",\r\n REFRESH_WEAPON_PLAYER_SKIN = \"REFRESH_WEAPON_PLAYER_SKIN\",\r\n\r\n\r\n \r\n /**修改MainUI*/\r\n CHANGE_REMOVE_MAIN_UI = \"CHANGE_REMOVE_MAIN_UI\",\r\n\r\n\r\n\r\n /**加载结束加载地图资源*/\r\n LOGIN_OVER_LOAD_MAP = \"login_over_load_map\",\r\n /**切换新的关卡*/\r\n CHANGE_NEW_PASS = \"CHANGE_NEW_PASS\",\r\n /**服务器修正关卡*/\r\n SEVER_CHANGE_PASS = \"SEVER_CHANGE_PASS\",\r\n /**BOSS入场*/\r\n BOSS_IN_MAP = \"BOSS_IN_MAP\",\r\n /**新的场景建筑解锁*/\r\n NEW_BUILD_OPEN = \"NEW_BUILD_OPEN\",\r\n /**村庄升级*/\r\n VILLAGE_LEVEL_UP = \"VILLAGE_LEVEL_UP\",\r\n /**武将改变*/\r\n HERO_LIST_CHANG = \"HERO_LIST_CHANG\",\r\n /**武将复活*/\r\n FUHUO_WUJIANG_CHANGE = \"FUHUO_WUJIANG_CHANGE\",\r\n /**buff更新*/\r\n ROLE_BUFF_CHANGE = \"ROLE_BUFF_CHANGE\",\r\n /**切换场景地图 关闭界面UI*/\r\n CLOSE_OTHER_UI = \"CLOSE_OTHER_UI\",\r\n /**击杀BOSS失败*/\r\n KILL_BOSS_FAIL = \"KILL_BOSS_FAIL\",\r\n /**UI击杀失败*/\r\n KILL_BOSS_FAIL_UI = \"KILL_BOSS_FAIL_UI\",\r\n /**UI击杀怪物成功*/\r\n KILL_MONSTER_OK_UI = \"KILL_MONSTER_OK_UI\",\r\n /**进入BOSS环节*/\r\n TO_KILL_BOSS_UI = \"TO_KILL_BOSS_UI\",\r\n /**游戏时间改变*/\r\n GAME_TIME_CHANGE = \"GAME_TIME_CHANGE\",\r\n /**BOSS血量改变*/\r\n BOSS_HP_CHANGE = \"BOSS_HP_CHANGE\",\r\n /**BOSS来袭播放结束*/\r\n PLAY_BOSS_COME_END = \"PLAY_BOSS_COME_END\",\r\n\r\n /** shopUI */\r\n REFRESH_SOLDIERSHOP_UI = \"REFRESH_SOLDIERSHOP_UI\",//士兵商城\r\n REFRESH_HEROSHOP_UI = \"REFRESH_HEROSHOP_UI\",//英雄商城\r\n REFRESH_RECHARGE_UI = \"REFRESH_RECHARGE_UI\",//充值商城\r\n REFRESH_LIMIT_UI = \"REFRESH_LIMIT_UI\",//限購商城\r\n EXTRACT_SOLDIEREQUIP_RESULT = \"EXTRACT_SOLDIEREQUIP_RESULT\",//士兵商城抽奖后刷新\r\n /** HeroEquiptUI */\r\n UPDATE_HEROEQUIPLIST_POUP = \"UPDATE_HEROEQUIPLIST_POUP\",//刷新英雄装备界面\r\n UPDATE_MAKEHEROEQUIP_POUP = \"UPDATE_MAKEHEROEQUIP_POUP\",//打造英雄装备刷新\r\n SHOW_MAKEHEROEQUIP_POUP = \"SHOW_MAKEHEROEQUIP_POUP\",//打造英雄装备展示\r\n SHOW_GLODJINGYAN_REFRESH = \"SHOW_GLODJINGYAN_REFRESH\",//展示出售装备播放金币和经验\r\n\r\n /**HeroEquiptContrastUI */\r\n UPDATE_HEROEQUIPCONTRAST_POUP = \"UPDATE_HEROEQUIPCONTRAST_POUP\",//刷新英雄装备对比界面\r\n /**titleUI */\r\n UPDATE_TITLE_UI = \"UPDATE_TITLE_UI\",//刷新titleUI\r\n /**OffineUI */\r\n UPDATE_OFFINE_UI= \"UPDATE_OFFINE_UI\",//刷新OffineUI\r\n /**SignUI */\r\n UPDATE_SIGN_UI= \"UPDATE_SIGN_UI\",//刷新SignUI\r\n /**MainBuffUI */\r\n UPDATE_MAINBUFF_UI= \"UPDATE_MAINBUFF_UI\",//刷新MainBuffUI\r\n /**MainUi */\r\n UPDATE_ZHUFU_MAIN_CHANGE= \"UPDATE_ZHUFU_MAIN_CHANGE\",// 祝福buff状态改变\r\n UPDATE_TASK_MAIN_CHANGE= \"UPDATE_TASK_MAIN_CHANGE\",//任務状态改变\r\n UPDATE_FESTIVALTIME_MAIN_CHANGE= \"UPDATE_FESTIVALTIME_MAIN_CHANGE\",//触发式礼包狀態改变\r\n UPDATE_ALLPOWER_MAIN_CHANGE= \"UPDATE_ALLPOWER_MAIN_CHANGE\",//总战斗力狀態改变\r\n UPDATE_MAIN_REDPOINT_CHANGE= \"UPDATE_MAIN_REDPOINT_CHANGE\",//主界面红点状态改变\r\n UPDATE_MAIN_HREADIMG_CHANGE= \"UPDATE_MAIN_HREADIMG_CHANGE\",//主界面img改變\r\n UPDATE_MAIN_DAYSEVEN_CHANGE= \"UPDATE_MAIN_DAYSEVEN_CHANGE\",//主界面七天樂改變\r\n UPDATE_MAIN_FUNTION_CHANGE = \"UPDATE_MAIN_FUNTION_CHANGE\",//解锁主界面功能按钮\r\n OPEN_ADVANCESHOW_UI = \"OPEN_ADVANCESHOW_UI\",//打开功能解锁提示\r\n /**TaskUi */\r\n UPDATE_TASK_UI= \"UPDATE_TASK_UI\",//刷新taskUI\r\n /**英雄裝備自動升級 */\r\n SHOW_AUTOMAKE_EQUIP= \"SHOW_AUTOMAKE_EQUIP\",//刷新taskUI\r\n /**建筑可领取 */\r\n ON_CAN_GET_REWAR_BUILD= \"ON_CAN_GET_REWAR_BUILD\",\r\n /**建筑领取完成 */\r\n ON_GET_REWAR_BUILD_END= \"ON_GET_REWAR_BUILD_END\",\r\n /**MonthCardUI */\r\n UPDATE_MONTHCARD_UI= \"UPDATE_MONTHCARD_UI\",//刷新月卡UI\r\n /**Festivaltime */\r\n UPDATE_FESTIVALTIME_UI= \"UPDATE_FESTIVALTIME_UI\",//刷新触发式礼包\r\n /**副本入口Dec LoadFbenDecUI */\r\n UPDATE_LOADFUBENDEC_UI= \"UPDATE_LOADFUBENDEC_UI\",//刷新LoadFbenDecUI\r\n /**副本入口 LoadFbenDecUI */\r\n UPDATE_LOADFUBEN_UI= \"UPDATE_LOADFUBEN_UI\",//刷新LoadFbenDecUI\r\n /***副本结束打开副本入口界面*/\r\n OPEN_LOADFUBEN_UI = \"OPEN_LOADFUBEN_UI\" ,\r\n /**AdvanceUI */\r\n UPDATE_ADVANCE_UI= \"UPDATE_ADVANCE_UI\",//刷新AdvanceUI\r\n /**AdvanceUI */\r\n UPDATE_HEROEQUIPUP_UI= \"UPDATE_HEROEQUIPUP_UI\",//刷新UPDATE_HEROEQUIPUP_UI\r\n\r\n /**弹出放置界面*/\r\n SHOW_OFFINE_UI = \"SHOW_OFFINE_UI\",\r\n UPDATE_OFFINE_JOIN= \"UPDATE_OFFINE_JOIN\",//刷新放置獎勵的join按鈕\r\n /**士兵裝備界面*/\r\n REFRESH_SOLDIERS_UI = \"REFRESH_SOLDIERS_UI\",//士兵裝備\r\n REFRESH_SOLDIERSTUJIAN_UI = \"REFRESH_SOLDIERSTUJIAN_UI\",//士兵图鉴\r\n\r\n /**邮件界面*/\r\n REFRESH_MAIL_UI = \"REFRESH_MAIL_UI\",//邮件刷新\r\n REFRESH_MAILDEC_UI = \"REFRESH_MAILDEC_UI\",//邮件DEC刷新\r\n /**技能震屏*/\r\n SHOW_SKILL_ACTION = \"SHOW_SKILL_ACTION\",\r\n /**武将属性改变*/\r\n HERO_ATT_CHANGE = \"HERO_ATT_CHANGE\",\r\n /**哥布林属性改变*/\r\n GEBOLIN_ATT_CHANGE = \"GEBOLIN_ATT_CHANGE\",\r\n /**装扮界面*/\r\n REFRESH_ROLE_UI = \"REFRESH_ROLE_UI\",//头像刷新\r\n REFRESH_ROLEID_UI = \"REFRESH_ROLEID_UI\",//头像ID刷新\r\n /**KINGUI */\r\n REFRESH_KINGIMG_UI = \"REFRESH_KINGIMG_UI\",//king头像刷新\r\n REFRESH_KINGIMGKUANG_UI = \"REFRESH_KINGIMGKUANG_UI\",//king头像刷新\r\n REFRESH_KINGNAME_UI = \"REFRESH_KINGNAME_UI\",//kingName刷新\r\n /**InitMusic */\r\n INIT_MUSIC_SETING = \"INIT_MUSIC_SETING\",//初始化InIt\r\n /**KingNameUi */\r\n CLOSE_KINGNAME_UI = \"CLOSE_KINGNAME_UI\",//关闭kingnameui\r\n /**KinginfoUi */\r\n REFRESH_KINGINFONAME_UI = \"REFRESH_KINGINFONAME_UI\",\r\n /**DaySevenUI */\r\n REFRESH_DAYSEVEN_UI = \"REFRESH_DAYSEVEN_UI\",//刷新7天乐界面\r\n REFRESH_DAYSEVENLEIJI_UI = \"REFRESH_DAYSEVENLEIJI_UI\",//刷新7天乐累计界面\r\n /**DayTaskUI */\r\n REFRESH_TONGXINGZHENG_UI = \"REFRESH_TONGXINGZHENG_UI\",//刷新通行证\r\n /**I平台数据 */\r\n ASK_INFO_PINGTAI = \"ASK_INFO_PINGTAI\",//初始化平台数据\r\n /**--------------------------------------------副本--------------------------------------------------------------------------*/\r\n\r\n /***小偷活动 小偷状态改变*/\r\n THIEF_ACTIVE_TYPE_CHANGE = \"THIEF_ACTIVE_TYPE_CHANGE\",\r\n /***小偷活动 点击收益改变*/\r\n THIEF_CLICK_REWARD_CHANGE = \"THIEF_CLICK_REWARD_CHANGE\",\r\n /***开启副本地图*/\r\n OPEN_PVE_FIGHT_MAP = \"OPEN_PVE_FIGHT_MAP\" ,\r\n /***切换到副本地图*/\r\n CHANGE_TO_PVE_FIGHT_MAP = \"CHANGE_TO_PVE_FIGHT_MAP\" ,\r\n /***副本地图战斗结束*/\r\n PVE_FIGHT_MAP_FIGHT_END = \"PVE_FIGHT_MAP_FIGHT_END\" ,\r\n /**BOSS血量改变*/\r\n COPY_BOSS_HP_CHANGE = \"COPY_BOSS_HP_CHANGE\",\r\n /**哥布林死亡*/\r\n COPY_GEBOLIN_DEAD = \"COPY_GEBOLIN_DEAD\",\r\n /**哥布林死亡*/\r\n COPY_HERO_DEAD = \"COPY_HERO_DEAD\",\r\n /**哥布林死亡*/\r\n COPY_MONSTER_DEAD = \"COPY_MONSTER_DEAD\",\r\n /**副本英雄丢技能了*/\r\n COPY_HERO_BEGIN_SKILL = \"COPY_HERO_BEGIN_SKILL\",\r\n /**副本英雄奖励变更*/\r\n COPY_MAP_REWARD_CHANGE = \"COPY_MAP_REWARD_CHANGE\",\r\n /**副本结算发送*/\r\n COPY_END_SHOW_REWARD = \"COPY_END_SHOW_REWARD\",\r\n /**时常礼包*/\r\n AD_GIFT_REWARD_SHOW = \"AD_GIFT_REWARD_SHOW\",\r\n /**时常礼包*/\r\n AD_FEST_REWARD_SHOW = \"AD_FEST_REWARD_SHOW\",\r\n /**有新的聊天消息*/\r\n HAVE_NEW_CHAT_MSG = \"HAVE_NEW_CHAT_MSG\",\r\n /**boss来袭更新*/\r\n BOSS_LAI_XI_DATA_CHANGE = \"BOSS_LAI_XI_DATA_CHANGE\",\r\n /**boss来袭更新时间*/\r\n BOSS_LAI_XI_TIME_CHANGE = \"BOSS_LAI_XI_TIME_CHANGE\",\r\n\r\n\r\n //--------------------------------------------------新手引导------------------------------------------------------------------------------\r\n /**通过ID开启一个新手引导*/\r\n guideEvent_1006 = \"guideEvent_1006\",\r\n guideEvent_1007 = \"guideEvent_1007\",\r\n uiOpenEvent_1007 = \"uiOpenEvent_1007\",\r\n guideEvent_1008 = \"guideEvent_1008\",\r\n uiOpenEvent_1008 = \"uiOpenEvent_1008\",\r\n guideEvent_1010 = \"guideEvent_1010\",\r\n guideEvent_1011 = \"guideEvent_1011\",\r\n uiOpenEvent_1011 = \"uiOpenEvent_1011\",\r\n guideEvent_1012 = \"guideEvent_1012\",\r\n uiOpenEvent_1012 = \"uiOpenEvent_1012\",\r\n \r\n guideEvent_2006 = \"guideEvent_2006\",\r\n guideEvent_2007 = \"guideEvent_2007\",\r\n uiOpenEvent_2007 = \"uiOpenEvent_2007\",\r\n\r\n guideEvent_3002 = \"guideEvent_3002\",\r\n guideEvent_3003 = \"guideEvent_3003\",\r\n uiOpenEvent_3003 = \"uiOpenEvent_3003\",\r\n guideEvent_3004 = \"guideEvent_3004\",\r\n uiOpenEvent_3004 = \"uiOpenEvent_3004\",\r\n\r\n guideEvent_4003 = \"guideEvent_4003\",\r\n guideEvent_4004 = \"guideEvent_4004\",\r\n uiOpenEvent_4004 = \"uiOpenEvent_4004\",\r\n guideEvent_4005 = \"guideEvent_4005\",\r\n uiOpenEvent_4005 = \"uiOpenEvent_4005\",\r\n guideEvent_4006 = \"guideEvent_4006\",\r\n uiOpenEvent_4006 = \"uiOpenEvent_4006\",\r\n guideEvent_4007 = \"guideEvent_4007\",\r\n guideEvent_4008 = \"guideEvent_4008\",\r\n uiOpenEvent_4008 = \"uiOpenEvent_4008\",\r\n guideEvent_4009 = \"guideEvent_4009\",\r\n uiOpenEvent_4009 = \"uiOpenEvent_4009\",\r\n\r\n \r\n guideEvent_5002 = \"guideEvent_5002\",\r\n guideEvent_5003 = \"guideEvent_5003\",\r\n uiOpenEvent_5003 = \"uiOpenEvent_5003\",\r\n guideEvent_5005 = \"guideEvent_5005\",\r\n uiOpenEvent_5005 = \"uiOpenEvent_5005\",\r\n guideEvent_5006 = \"guideEvent_5006\",\r\n uiOpenEvent_5006 = \"uiOpenEvent_5006\",\r\n\r\n\r\n guideEvent_7004 = \"guideEvent_7004\",\r\n \r\n guideEvent_8004 = \"guideEvent_8004\",\r\n \r\n guideEvent_9002 = \"guideEvent_9002\",\r\n guideEvent_9003 = \"guideEvent_9003\",\r\n uiOpenEvent_9003 = \"uiOpenEvent_9003\",\r\n guideEvent_9004 = \"guideEvent_9004\",\r\n uiOpenEvent_9004 = \"uiOpenEvent_9004\",\r\n\r\n guideEvent_10002 = \"guideEvent_10002\",\r\n uiOpenEvent_10002 = \"uiOpenEvent_10002\",\r\n guideEvent_10003 = \"guideEvent_10003\",\r\n uiOpenEvent_10003 = \"uiOpenEvent_10003\",\r\n guideEvent_10004 = \"guideEvent_10004\",\r\n uiOpenEvent_10004 = \"uiOpenEvent_10004\",\r\n guideEvent_10005 = \"guideEvent_10005\",\r\n guideEvent_10006 = \"guideEvent_10006\",\r\n uiOpenEvent_10006 = \"uiOpenEvent_10006\",\r\n guideEvent_10008 = \"guideEvent_10008\",\r\n uiOpenEvent_10008 = \"uiOpenEvent_10008\",\r\n guideEvent_10009 = \"guideEvent_10009\",\r\n uiOpenEvent_10009 = \"uiOpenEvent_10009\",\r\n guideEvent_10010 = \"guideEvent_10010\",\r\n uiOpenEvent_10010 = \"uiOpenEvent_10010\",\r\n guideEvent_10011 = \"guideEvent_10011\",\r\n uiOpenEvent_10011 = \"uiOpenEvent_10011\",\r\n\r\n\r\n\r\n\r\n \r\n CLOSE_ALL_UI = \"CLOSE_ALL_UI\",\r\n GUIDE_TS_2005 = \"GUIDE_TS_2005\",\r\n GUIDE_TS_10001 = \"GUIDE_TS_10001\",\r\n GUIDE_TS_10003 = \"GUIDE_TS_10003\",\r\n GUIDE_TS_10007 = \"GUIDE_TS_10007\",\r\n}\r\n\r\nexport class EventManager {\r\n private static inst: EventManager = null;\r\n public static get Inst(): EventManager {\r\n if (this.inst === null) {\r\n this.inst = new EventManager();\r\n }\r\n return this.inst;\r\n }\r\n ed: EventDispatcher;\r\n constructor() {\r\n this.ed = new EventDispatcher();\r\n }\r\n public event(name: string, ...args: any[]) {\r\n this.ed.event(name as any, args);\r\n }\r\n public on(name: string, caller: any, listener: Function): void {\r\n this.ed.on(name as any, caller, listener);\r\n }\r\n public off(name: string, caller: any, listener: Function): void {\r\n this.ed.off(name as any, caller, listener);\r\n }\r\n public offAll(name: string) {\r\n this.ed.offAll(name);\r\n }\r\n public offAllCaller(_this: any) {\r\n this.ed.offAllCaller(_this);\r\n }\r\n public HasListener(name: string) {\r\n return this.ed.hasListener(name);\r\n }\r\n}","import { Component, tween, Vec3, _decorator } from \"cc\";\r\nimport TextMeshPro from \"./TextMeshPro\";\r\nimport TmpUtils from \"./utils/TmpUtils\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n\r\n@ccclass\r\nexport default class Example1 extends Component {\r\n\r\n @property(TextMeshPro)\r\n text1: TextMeshPro = null;\r\n\r\n @property(TextMeshPro)\r\n text2: TextMeshPro = null;\r\n\r\n @property(TextMeshPro)\r\n text3: TextMeshPro = null;\r\n\r\n protected start(): void {\r\n this.anim1();\r\n this.anim3();\r\n\r\n this.scheduleOnce(() => {\r\n for (let i = 0; i < this.text2.string.length; i++) {\r\n let result: Vec3[] = this.text2.getPosVertices(i);\r\n this._initPos.push(result);\r\n }\r\n }, 0);\r\n }\r\n\r\n protected update(dt: number): void {\r\n this._time += dt;\r\n this.anim2();\r\n }\r\n\r\n private _time = 0;\r\n public _fScale: number = 1;\r\n public _xOffset: number = 0;\r\n private async anim1(): Promise {\r\n await TmpUtils.waitCmpt(this, 1);\r\n this.text1.string = \"这 是 一 段 测 试 文 字aaagghjsa;dzxmc;\";\r\n this.text1.updateRenderData(true);\r\n for (let i = 0; i < this.text1.string.length; i++) {\r\n this.text1.setVisible(i, false);\r\n }\r\n for (let i = 0; i < this.text1.string.length; i++) {\r\n this.text1.setVisible(i, true);\r\n if (!this.text1.isVisible(i)) {\r\n continue;\r\n }\r\n let result: Vec3[] = this.text1.getPosVertices(i);\r\n let center = new Vec3();\r\n center.x = (result[0].x + result[1].x + result[2].x + result[3].x) / 4;\r\n center.y = (result[0].y + result[1].y + result[2].y + result[3].y) / 4;\r\n this._xOffset = -30;\r\n\r\n let updateCall = () => {\r\n let copy: Vec3[] = [];\r\n copy.push(result[0].clone());\r\n copy.push(result[1].clone());\r\n copy.push(result[2].clone());\r\n copy.push(result[3].clone());\r\n for (let j = 0; j < 4; j++) {\r\n let delta: Vec3 = new Vec3();\r\n Vec3.subtract(delta, copy[j], center);\r\n delta.multiplyScalar(this._fScale).add(new Vec3(this._xOffset, 0));\r\n Vec3.add(copy[j], center, delta);\r\n }\r\n this.text1.setPosVertices(i, copy as any);\r\n }\r\n\r\n tween(this)\r\n .to(0.05, { _fScale: 2, _xOffset: -15 }, { onUpdate: updateCall })\r\n .to(0.05, { _fScale: 1, _xOffset: 0 }, { onUpdate: updateCall })\r\n .start();\r\n await TmpUtils.waitCmpt(this, 0.1);\r\n }\r\n }\r\n\r\n private _initPos: Vec3[][] = [];\r\n private anim2(): void {\r\n if (this._initPos.length <= 0) {\r\n return;\r\n }\r\n for (let i = 0; i < this.text2.string.length; i++) {\r\n if (!this.text2.isVisible(i)) {\r\n continue;\r\n }\r\n let result = [];\r\n for (let j = 0; j < 4; j++) {\r\n result.push(this._initPos[i][j].clone());\r\n result[j].y += Math.sin(0.5 * i + this._time * 5) * 10;\r\n }\r\n this.text2.setPosVertices(i, result as any);\r\n }\r\n }\r\n\r\n public alpha: number = 0;\r\n private async anim3(): Promise {\r\n await TmpUtils.waitCmpt(this, 1);\r\n this.text3.string = \"这 是 一 段 测 试 文 字aaagghjsa;dzxmc;\";\r\n this.text3.updateRenderData(true);\r\n for (let i = 0; i < this.text3.string.length; i++) {\r\n this.text3.setVisible(i, false);\r\n }\r\n let time = 0.1;\r\n for (let i = 0; i < this.text3.string.length; i++) {\r\n this.text3.setVisible(i, true);\r\n if (!this.text3.isVisible(i)) {\r\n continue;\r\n }\r\n this.text3.setVisible(i, false);\r\n let result = this.text3.getColorExtraVertices(i);\r\n this.alpha = 0;\r\n tween(this)\r\n .to(time / 2, { alpha: 255 }, {\r\n onUpdate: () => {\r\n result[0].a = this.alpha;\r\n result[2].a = this.alpha;\r\n this.text3.setColorExtraVertices(i, result);\r\n }\r\n })\r\n .call(() => {\r\n this.alpha = 0;\r\n })\r\n .to(time / 2, { alpha: 255 }, {\r\n onUpdate: () => {\r\n result[1].a = this.alpha;\r\n result[3].a = this.alpha;\r\n this.text3.setColorExtraVertices(i, result);\r\n }\r\n })\r\n .start();\r\n\r\n await TmpUtils.waitCmpt(this, time);\r\n }\r\n }\r\n}\r\n","\nimport { _decorator } from 'cc';\nimport {c1029, s1029, c1030, s1030,c1031, p_reward, p_cf_gift } from '../../../proto/proto';\nimport {res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport { GameModleComp } from '../../../game/GameModle';\n@res_auto_bind()\nexport class FestivalTimeProxy {\n private static _inst: FestivalTimeProxy;\n public static get Inst(): FestivalTimeProxy {\n if (FestivalTimeProxy._inst == null) {\n FestivalTimeProxy._inst = new FestivalTimeProxy();\n }\n return FestivalTimeProxy._inst;\n }\n @res_assign(\"ChuFaGift\")\n public ChuFaGiftDataList: ChuFaGift[];\n public InitPayInfoConfig() {\n if (this.ChuFaGiftDataList == null) {\n this.ChuFaGiftDataList = [];\n }\n let ChuFaGiftDataConfig = ConfigManager.GetInstance().getValue(\"ChuFaGift\")\n for (var key in ChuFaGiftDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"ChuFaGift\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.ChuFaGiftDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取payinfo */\n public GetChufaInfoDataByID(id: number) {\n if (id == undefined) return undefined;\n if (this.ChuFaGiftDataList == null) {\n this.InitPayInfoConfig();\n }\n let data: ChuFaGift = this.ChuFaGiftDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n } \n\n\n /***==========================服务器数据存储============================== */\n public FestivalGiftList :p_cf_gift[];//触发礼包信息\n\n public SendC1029(){\n //触发礼包信息,有变化后端会主动推送\n var c1029: c1029 = {};\n send2client(\"c1029\", c1029);\n }\n\n\n public SendC1030(type:number){\n //触发礼包购买\n // int32 type=1; // 购买的礼包类型\n // console.log(\"==============发送====c1030=============\");\n var c1030: c1030 = {type:type};\n send2client(\"c1030\", c1030);\n }\n\n\n public SendC1031(type:number) {\n //int32 type=1; // 资源类型:1-金币,2-矩阵,3-召唤券\n var c1031: c1031 = {type:type};\n send2client(\"c1031\", c1031);\n }\n\n}\n\n// /**触发礼包信息,有变化后端会主动推送 */\nexport function do_s1029(s1029: s1029){\n // console.log(\"===================接收是1029===================rewards=\"+s1029.giftList);\n if(FestivalTimeProxy.Inst.FestivalGiftList!=undefined){\n FestivalTimeProxy.Inst.FestivalGiftList.length=0\n }\n FestivalTimeProxy.Inst.FestivalGiftList = s1029.giftList;\n if(s1029.giftList && s1029.giftList.length>0){\n if(GameModleComp.getInstance().isOpenGame){\n // GlobalFunction.CloseALlLayer();\n EventManager.Inst.event(EventType.AD_FEST_REWARD_SHOW , true);\n WindowManager.Instance().open(GameConst.winPath.FestivalTimeUI, null, true);\n EventManager.Inst.event(EventType.UPDATE_FESTIVALTIME_UI);\n }\n }else{\n EventManager.Inst.event(EventType.AD_FEST_REWARD_SHOW , false); \n }\n}\n\n/**触发礼包购买 */\nexport function do_s1030(s1030: s1030){\n\n // int32 result=1; // 0-成功,1失败\n // repeated p_reward rewards=2; // 获得的奖励\n // console.log(\"===================接收是s1030============礼包购买========\");\n if(s1030.result==undefined){\n if(s1030.rewards &&s1030.rewards.length>0)\n var data = new BoxData\n {\n data.rewards = s1030.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n\n}\n\nexport class ChuFaGift{\n id: number;\n chaozhi: number;\n cost: number;\n lan_name: string;\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { p_cf_gift, s1220 } from \"../../../proto/proto\";\nimport { OffineProxy } from \"../proxy/OffineProxy\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { Sprite } from \"cc\";\nimport { CoinType, ItemProxy } from \"../proxy/ItemProxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { Button } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Component } from \"cc\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { MonthCardProxy } from \"../proxy/MonthCardProxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { ChuFaGift, FestivalTimeProxy } from \"../proxy/FestivalTimeProxy\";\nimport { EventTouch } from \"cc\";\nimport { Prefab } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('FestivalTimeUI')\nexport default class FestivalTimeUI extends BasePanel {\n\n index :number=0;\n giftData :p_cf_gift;\n @property(Node) Label_zhekou: Node | null = null;\n @property(Node) Label_time: Node | null = null;\n\n @property(Node) Layout_item: Node | null = null;\n @property(Node)\n item: Node | null = null;\n prefabitem: Node | null = null;\n\n @property(Node) Sprite_buy: Node | null = null;\n @property(Node) Label_buy: Node | null = null;\n\n @property(Node) ScrollView_Toggle: Node | null = null;\n\n @property(Prefab) Toggle_one: Prefab = null;\n\n @property(Node) ToggleGroup_Toggle : Node = null;\n @property(Node) Button_buy : Node = null;\n @property(Node) lightNode : Node = null;\n\n timeCardCallback: any;\n\n timeSuperCardCallback: any;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_buy\") {\n this.onBuyClick();\n // this.close(true)\n }\n }\n start() {\n\n this.addEvent();\n }\n\n private addEvent() {\n\n EventManager.Inst.on(EventType.UPDATE_FESTIVALTIME_UI, this, this.UpdateFestivalUI);\n }\n onShow(data: any): void {\n this.UpdateFestivalUI();\n }\n\n ShowGiftTime() {\n if (this.timeCardCallback) {\n this.unschedule(this.timeCardCallback);\n }\n let startTime = GameModleComp.getInstance().serverTime;\n let secondTime = this.giftData.endTime;\n let different = secondTime - startTime;\n let timelabel = this.Label_time.getComponent(Label);\n if (different > 0) {\n timelabel.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20093),TimePoxy.Inst.ShowTimeLabelNumberAll(different)) ;\n this.timeCardCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20093),TimePoxy.Inst.ShowTimeLabelNumberAll(different)) ;\n } else {\n this.unschedule(this.timeDayCallback);\n timelabel.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20093),TimePoxy.Inst.ShowTimeLabelNumberAll(different)) ;\n }\n }\n this.schedule(this.timeCardCallback, 1.0);\n } else {\n timelabel.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20093),TimePoxy.Inst.ShowTimeLabelNumberAll(0)) ;\n }\n }\n\n \n\n /**刷新界面 */\n UpdateFestivalUI() {\n if(FestivalTimeProxy.Inst.FestivalGiftList.length <= 0){\n this.close(true);\n }\n this.Button_buy.getComponent(Sprite).grayscale = false;\n this.giftData = FestivalTimeProxy.Inst.FestivalGiftList[this.index];\n if(this.giftData==undefined)return;\n let fest:ChuFaGift = FestivalTimeProxy.Inst.GetChufaInfoDataByID(this.giftData.id);\n let Label_zhekou = this.Label_zhekou.getComponent(Label);\n Label_zhekou.string = fest.chaozhi + \"%\";\n this.ScrollView_Toggle.active = FestivalTimeProxy.Inst.FestivalGiftList!=undefined &&FestivalTimeProxy.Inst.FestivalGiftList.length>=1;\n \n this.ShowGiftTime();//倒计时\n let Label_buy = this.Label_buy.getComponent(Label);\n Label_buy.string =GlobalFunction.ConvertNumberWithUnit(this.giftData.cost);\n\n\n\n this.prefabitem = this.item;\n this.Layout_item.removeAllChildren();\n for (let i = 0; i < this.giftData.rewards.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item;\n let reward = this.giftData.rewards[i];\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n if (itemdata) {\n\n let Button_item = itemNode.getChildByName(\"Button_item\")\n let Sprite_herositemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_herositem = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositem, itemdata.icon);\n let Label_herositem = Button_item.getChildByName(\"Label_itemnum\").getComponent(Label);\n Label_herositem.string = GlobalFunction.ConvertNumberWithUnit(reward.num);\n\n this.bindClickDayChildEvent(Button_item, itemdata.itemID);\n }\n }\n }\n\n this.ToggleGroup_Toggle.removeAllChildren();\n for (let i = 0; i < FestivalTimeProxy.Inst.FestivalGiftList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode1 = instantiate(this.Toggle_one);\n if (itemNode1) {\n itemNode1.parent = this.ToggleGroup_Toggle;\n let libao = FestivalTimeProxy.Inst.FestivalGiftList[i];\n let fest:ChuFaGift = FestivalTimeProxy.Inst.GetChufaInfoDataByID(libao.id);\n if (fest) {\n\n let Label_one:Label = itemNode1.getChildByName(\"Label_one\").getComponent(Label);\n Label_one.string = fest.lan_name;\n itemNode1[\"libaoId\"] = libao.id;\n itemNode1[\"libaoIndex\"] = i;\n // this.bindClickDayChildEvent(itemNode, libao.id);\n itemNode1.on(Node.EventType.TOUCH_END , this.onBtnClick , this);\n let Checkmark_one:Sprite = itemNode1.getChildByName(\"Checkmark_one\").getComponent(Sprite);\n if(i == this.index){\n Checkmark_one.node.active = true;\n }else{\n Checkmark_one.node.active = false;\n }\n }\n }\n }\n if(FestivalTimeProxy.Inst.FestivalGiftList.length > 3){\n this.lightNode.active = true;\n }else{\n this.lightNode.active = false;\n }\n }\n private onBtnClick(e:EventTouch){\n \n let node:Node = e.currentTarget;\n this.index = node[\"libaoIndex\"];\n this.UpdateFestivalUI();\n }\n private onBuyClick(){\n this.close(true);\n let key = this.node.name + \"buy_festival\";\n let giftData:p_cf_gift = FestivalTimeProxy.Inst.FestivalGiftList[this.index];\n GlobalFunction.NotEnouthCostNum(giftData.cost, CoinType.xingzhuan,key, () => { this.BuySuccessSend(giftData)});\n }\n\n private BuySuccessSend( giftData:p_cf_gift){\n this.Button_buy.getComponent(Sprite).grayscale = true;\n FestivalTimeProxy.Inst.SendC1030(giftData.type)\n this.close(true);\n }\n\n //点击道具\n bindClickDayChildEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n // if(this.timeDayCallback){\n // this.unschedule(this.timeDayCallback);\n // }\n }\n clearRes() {\n }\n}\n","import { _decorator, Component, Enum, Widget, view, sys, Canvas } from 'cc';\r\nconst { ccclass, property, executeInEditMode, menu, requireComponent } = _decorator;\r\nimport { EDITOR, JSB } from 'cc/env';\r\n\r\nexport enum FitUIPlatform { ANDROID, IOS, OTHER }\r\nexport enum FitUIOrientation { HORIZONTAL, VERTICAL }\r\nconst IsH = function () { return this.orientation == FitUIOrientation.HORIZONTAL };\r\nconst IsV = function () { return this.orientation == FitUIOrientation.VERTICAL };\r\n\r\n@ccclass('FitUI')\r\n@menu(\"公用组件/FitUI\") @executeInEditMode @requireComponent(Widget)\r\nexport default class FitUI extends Component {\r\n // Orientation\r\n @property({ displayName: \"适配方向\", type: Enum(FitUIOrientation) })\r\n orientation: FitUIOrientation = FitUIOrientation.VERTICAL;\r\n // Android\r\n @property({ displayName: \"安卓设备\", type: Enum(FitUIPlatform) })\r\n get a() { return FitUIPlatform.ANDROID; }\r\n @property({ displayName: \"left\", visible: IsH })\r\n left: boolean = false;\r\n @property({ displayName: \"right\", visible: IsH })\r\n right: boolean = false;\r\n @property({ displayName: \"top\", visible: IsV })\r\n top: boolean = false;\r\n @property({ displayName: \"bottom\", visible: IsV })\r\n bottom: boolean = false;\r\n // IOS\r\n @property({ displayName: \"苹果设备\", type: Enum(FitUIPlatform) })\r\n get i() { return FitUIPlatform.IOS; }\r\n @property({ displayName: \"left\", visible: IsH })\r\n iLeft: boolean = false;\r\n @property({ displayName: \"right\", visible: IsH })\r\n iRight: boolean = false;\r\n @property({ displayName: \"top\", visible: IsV })\r\n iTop: boolean = false;\r\n @property({ displayName: \"bottom\", visible: IsV })\r\n iBottom: boolean = false;\r\n // OTHER\r\n @property({ displayName: \"其它设备\", type: Enum(FitUIPlatform) })\r\n get o() { return FitUIPlatform.OTHER; }\r\n @property({ displayName: \"left\", visible: IsH })\r\n oLeft: boolean = false;\r\n @property({ displayName: \"right\", visible: IsH })\r\n oRight: boolean = false;\r\n @property({ displayName: \"top\", visible: IsV })\r\n oTop: boolean = false;\r\n @property({ displayName: \"bottom\", visible: IsV })\r\n oBottom: boolean = false;\r\n\r\n onLoad() {\r\n EDITOR && this.getComponents(FitUI).length > 2 && this.destroy();\r\n (!EDITOR) && this.applySettings();\r\n }\r\n\r\n private applySettings() {\r\n let size = view.getVisibleSize()\r\n let nPlatform = sys.platform;\r\n let tSize = size.width / size.height;\r\n tSize = this.orientation == FitUIOrientation.VERTICAL ? tSize : 1 / tSize;\r\n let dSize = 0.5; // 只有全面屏需要适配\r\n if (tSize >= dSize) {\r\n this.updateFitStrategy(true, true);\r\n return;\r\n } else {\r\n this.orientation == FitUIOrientation.VERTICAL && this.updateFitStrategy(true, false);\r\n this.orientation == FitUIOrientation.HORIZONTAL && this.updateFitStrategy(false, true);\r\n }\r\n // nPlatform = cc.sys.IPHONE;\r\n let aRule = { top: this.top, left: this.left, right: this.right, bottom: this.bottom };\r\n let iRule = { top: this.iTop, left: this.iLeft, right: this.iRight, bottom: this.iBottom };\r\n let oRule = { top: this.oTop, left: this.oLeft, right: this.oRight, bottom: this.oBottom };\r\n switch (nPlatform) {\r\n case sys.Platform.ANDROID:\r\n this.fitPhone(aRule);\r\n break;\r\n case sys.Platform.IOS:\r\n this.fitPhone(iRule);\r\n break;\r\n default: // 非原生\r\n if (!JSB) {\r\n switch (sys.os) {\r\n case sys.OS.IOS:\r\n this.fitPhone(iRule);\r\n break;\r\n case sys.OS.ANDROID:\r\n this.fitPhone(aRule);\r\n break;\r\n default: // 无法识别,按OTHER处理\r\n this.fitPhone(oRule)\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n\r\n private fitPhone(rule: { top: boolean, left: boolean, right: boolean, bottom: boolean }) {\r\n // 分辨率 375 x 812 \r\n let size = view.getVisibleSize();\r\n let height = this.orientation == FitUIOrientation.VERTICAL ? size.height : size.width\r\n let liuhaiHeight = height * 44 / 1422; // 顶部刘海\r\n let bottomHeight = height * 34 / 1422; // 底部安全区域\r\n // 适配\r\n switch (this.orientation) {\r\n case FitUIOrientation.VERTICAL:\r\n rule.top && this.updateWidget(\"top\", liuhaiHeight);\r\n rule.bottom && this.updateWidget(\"bottom\", bottomHeight);\r\n break;\r\n case FitUIOrientation.HORIZONTAL:\r\n rule.left && this.updateWidget(\"left\", bottomHeight);\r\n rule.right && this.updateWidget(\"right\", liuhaiHeight);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n\r\n private updateWidget(orientation: string, delta: number) {\r\n let widget = this.getComponent(Widget);\r\n if (widget) {\r\n if (!widget[`default_${orientation}`]) {\r\n widget[`default_${orientation}`] = widget[`${orientation}`];\r\n }\r\n widget[`${orientation}`] = widget[`default_${orientation}`] + delta;\r\n }\r\n }\r\n\r\n\r\n private updateFitStrategy(fitWidth: boolean, fitHeight: boolean) {\r\n // TODO canvas.fitWidth没了,不知道怎么做\r\n // // console.log(fitWidth, fitHeight);\r\n // let canvas = this.node.getComponent(Canvas);\r\n // if (canvas) {\r\n // canvas.fitWidth = fitWidth;\r\n // canvas.fitHeight = fitHeight;\r\n // // console.log(\"updateFitStrategy\", canvas);\r\n // canvas[`applySettings`]();\r\n // }\r\n }\r\n // update (dt) {}\r\n}","/**\r\n * 自定义帧动画 自己驱动\r\n */\r\nimport { _decorator, SpriteFrame, Component, Sprite, v3, CCInteger } from 'cc';\r\nconst { ccclass, property } = _decorator;\r\n\r\nclass FrameInfo {\r\n frame: SpriteFrame\r\n offsetX: number = 0\r\n offsetY: number = 0\r\n}\r\n\r\n@ccclass('FrameAnimation')\r\nexport class FrameAnimation extends Component {\r\n /**播放速率*/\r\n protected _frameRate: number = 10;\r\n /**是否正在播放*/\r\n protected _isPlaying: boolean;\r\n protected _currentFrame: number;\r\n protected _startFrame: number;\r\n protected _endFrame: number;\r\n protected _totalFrames: number;\r\n /**循环记数*/\r\n protected _loopCount: number;\r\n /**循环次数*/\r\n protected _loops: number;\r\n public image: Sprite;\r\n protected frames: FrameInfo[];\r\n public static UPDATE: string = \"update\";\r\n public static COMPLETE: string = \"complete\";\r\n private _cacheAnimations = {}\r\n\r\n onLoad() {\r\n this.image = this.node.getComponent(Sprite)\r\n // this.image.node.anchorX=0\r\n //this.image.node.anchorY=1\r\n }\r\n\r\n createAnimation(frames, name: string) {\r\n this._cacheAnimations[name] = frames\r\n }\r\n\r\n setAnimations(cache) {\r\n this._cacheAnimations = cache;\r\n }\r\n\r\n /**\r\n *开始播放 从1开始\r\n * \r\n */\r\n public play(startFrame: number, aniName: string, loopCount: number = -1): void {\r\n // if (!this._isPlaying) {\r\n this._isPlaying = true;\r\n this.frames = this._cacheAnimations[aniName]\r\n if (this.frames == null) {\r\n //cc.warn('找不到动画' + aniName)\r\n this._isPlaying = false\r\n return\r\n }\r\n this._currentFrame = this._startFrame = startFrame\r\n this._totalFrames = this.frames.length\r\n this._loops = loopCount\r\n this._loopCount = 0\r\n this.animate()\r\n this.unscheduleAllCallbacks()\r\n this.schedule(this.onTimer.bind(this), 1 / this._frameRate)\r\n // }\r\n }\r\n\r\n /**\r\n *停止播放 \r\n * \r\n */\r\n public stop(): void {\r\n if (this._isPlaying) {\r\n this._isPlaying = false;\r\n this.unscheduleAllCallbacks()\r\n this._loopCount = 0;\r\n }\r\n }\r\n\r\n /**\r\n *跳转到帧停止播放 \r\n * @param frame\r\n * \r\n */\r\n public gotoAndStop(frame: number): void {\r\n this.goto(frame);\r\n this.stop();\r\n }\r\n\r\n /**\r\n *跳转到帧\r\n * @param frame 帧\r\n * \r\n */\r\n protected goto(f: number): void {\r\n if (f < this._startFrame)\r\n f = this._startFrame;\r\n else if (f > this._endFrame)\r\n f = this._endFrame;\r\n this._currentFrame = f;\r\n\r\n this.animate();\r\n }\r\n\r\n /**\r\n *设置bitmapdata \r\n * \r\n */\r\n protected animate(): void {\r\n if (this.frames && this.image && this.image.spriteFrame != this.frames[this._currentFrame - 1].frame) {\r\n this.image.spriteFrame = this.frames[this._currentFrame - 1].frame;\r\n this.image.node.setPosition(v3(this.frames[this._currentFrame - 1].offsetX, this.frames[this._currentFrame - 1].offsetY, 0));\r\n this.node.emit(FrameAnimation.UPDATE)\r\n }\r\n }\r\n\r\n /**\r\n *播放头下移一帧 \r\n * \r\n */\r\n public nextFrame(): void {\r\n this.stop();\r\n this.goto(this._currentFrame + 1);\r\n }\r\n\r\n /**\r\n *播放头后退一帧 \r\n * \r\n */\r\n public prevFrame(): void {\r\n this.stop();\r\n this.goto(this._currentFrame - 1);\r\n }\r\n\r\n /**\r\n *timer处理 \r\n * @param e\r\n */\r\n public onTimer(): void {\r\n this._currentFrame++;\r\n if (this._currentFrame > this._totalFrames) {\r\n this._loopCount++;\r\n if (this._loopCount == this._loops && this._loops > 0) {\r\n this.node.emit(FrameAnimation.COMPLETE)\r\n this.stop();\r\n return;\r\n }\r\n this._currentFrame = this._startFrame;\r\n }\r\n this.animate();\r\n }\r\n\r\n /**\r\n *是否正在播放动画 \r\n * @return \r\n * \r\n */\r\n public isPlaying(): boolean {\r\n return this._isPlaying;\r\n }\r\n\r\n /**\r\n *播放帧频 \r\n * @return \r\n * \r\n */\r\n public get frameRate(): number {\r\n return this._frameRate;\r\n }\r\n\r\n @property(CCInteger)\r\n public set frameRate(value: number) {\r\n if (value > 0) {\r\n this._frameRate = value;\r\n }\r\n }\r\n}","import { _decorator } from 'cc';\r\nimport { FsmBase } from \"./FsmBase\";\r\nimport { FsmState } from \"./FsmState\";\r\nimport { FsmStatenNameMap } from \"./FsmStateNameMap\";\r\nimport { IFsm } from \"./IFsm\";\r\nimport { IFsmState } from \"./IFsmState\";\r\nimport { Logger } from '../../../core/common/log/Logger';\r\n\r\nexport class Fsm implements FsmBase, IFsm {\r\n debug: boolean;\r\n debugStyle: string = 'color:green';\r\n name: string;\r\n private owner: T;\r\n private currentState: FsmState;\r\n currentStateTime = 0;\r\n private states: { [key: string]: FsmState } = {};\r\n public static Create(name: string, owner: T, states: FsmState[], debug?: boolean, debugStyle?: string): Fsm {\r\n var fsm = new Fsm();\r\n fsm.name = name;\r\n fsm.owner = owner;\r\n fsm.debug = debug;\r\n fsm.debugStyle = debugStyle || fsm.debugStyle;\r\n states.forEach(state => {\r\n let name = state.stateName;\r\n fsm.states[name] = state;\r\n state._OnInit(fsm);\r\n })\r\n return fsm;\r\n }\r\n get Name(): string {\r\n return this.name;\r\n }\r\n get Owner(): T {\r\n return this.owner;\r\n }\r\n get CurrentState(): FsmState {\r\n return this.currentState;\r\n }\r\n get CurrentStateName(): string {\r\n return this.currentState.stateName\r\n }\r\n get CurrentStateTime(): number {\r\n return this.currentStateTime;\r\n }\r\n Start(startState: typeof IFsmState, ...params: any[]): void {\r\n var state = this.GetState(startState);\r\n if (state == null) {\r\n Logger.logView(startState)\r\n throw new Error(`${FsmStatenNameMap.GetStateNameByType(startState)} is not in Fsm{${this.name}}`);\r\n }\r\n this.currentState = state;\r\n this.currentStateTime = 0;\r\n if (this.debug) {\r\n Logger.logView(`==========fsm:${this.name} start ${this.currentState.stateName}==========`)\r\n }\r\n state.OnEnter(...params);\r\n }\r\n HasState(stateType: typeof IFsmState): boolean {\r\n var stateName = FsmStatenNameMap.GetStateNameByType(stateType);\r\n if (stateName == null) return false;\r\n return this.states[stateName] != null;\r\n }\r\n GetState(stateType: typeof IFsmState): FsmState {\r\n var stateName = FsmStatenNameMap.GetStateNameByType(stateType);\r\n if (stateName == null) return null;\r\n return this.states[stateName];\r\n }\r\n ChangeState(stateType: typeof IFsmState, ...params: any[]) {\r\n var state = this.GetState(stateType);\r\n if (state == null) {\r\n throw new Error(`${state.constructor.name} is not in Fsm{${this.name}}`);\r\n }\r\n if (this.currentState != null) {\r\n this.currentState.actived = false;\r\n if (this.debug) {\r\n Logger.logView(`==========fsm:${this.name} exit ${this.currentState.stateName}==========`)\r\n }\r\n this.currentState.RemoveAllEventTrigger();\r\n this.currentState.OnLeave();\r\n this.currentState.ClearTags();\r\n }\r\n this.currentStateTime = 0;\r\n this.currentState = state;\r\n state.actived = true;\r\n if (this.debug) {\r\n Logger.logView(`==========fsm:${this.name} enter ${this.currentState.stateName}==========`)\r\n }\r\n state.OnEnter(...params);\r\n }\r\n ExitCurrentState(): void {\r\n if (this.currentState != null) {\r\n if (this.debug) {\r\n Logger.logView(`==========fsm:${this.name} exit ${this.currentState.stateName}==========`)\r\n }\r\n this.currentState.RemoveAllEventTrigger();\r\n this.currentState.OnLeave();\r\n this.currentState.ClearTags();\r\n }\r\n }\r\n GetAllStates(): FsmState[] {\r\n var states: FsmState[] = [];\r\n var keys = Object.keys(this.states);\r\n keys.forEach(key => {\r\n states.push(this.states[key]);\r\n })\r\n return states;\r\n }\r\n /**\r\n * \r\n * @param dt 秒\r\n * @returns \r\n */\r\n OnUpdate(dt: number) {\r\n if (this.currentState == null) {\r\n return;\r\n }\r\n this.currentStateTime += dt;\r\n this.currentState.OnUpdate(dt);\r\n }\r\n Destroy() {\r\n var keys = Object.keys(this.states);\r\n keys.forEach(key => {\r\n this.states[key].OnDestroy();\r\n })\r\n }\r\n data: { [key: string]: any } = {};\r\n HasData(name: string): boolean {\r\n return this.data[name] != null;\r\n }\r\n GetData(name: string) {\r\n return this.data[name];\r\n }\r\n SetData(name: string, value: any) {\r\n this.data[name] = value;\r\n }\r\n RemoveData(name: string) {\r\n delete this.data[name];\r\n }\r\n}","import { _decorator } from 'cc';\nimport { IFsm } from \"./IFsm\";\nimport { IFsmState } from \"./IFsmState\";\n\nexport class FsmBase {\n name: string;\n currentStateTime = 0;\n ChangeState(state: typeof IFsmState) { }\n OnUpdate(elapseSeconds: number) { }\n}","/**\n * 不用这个创建和驱动状态机\n */\n\nimport { _decorator } from 'cc';\nimport Singleton from \"../manager/Singleton\";\nimport { Fsm } from \"./Fsm\";\nimport { FsmBase } from \"./FsmBase\";\nimport { FsmState } from \"./FsmState\";\nimport { IFsm } from \"./IFsm\";\n\nexport class FsmManager extends Singleton {\n private fsms: Map = new Map();\n public Update(elapseSeconds: number) {\n this.fsms.forEach(fsm => {\n fsm.OnUpdate(elapseSeconds);\n })\n }\n public CreateFsm(name: string, owner: T, states: FsmState[], debug?: boolean): IFsm {\n var key = name;\n if (this.fsms.has(key)) {\n throw new Error(`Already exist FSM:${key}`);\n }\n var fsm = Fsm.Create(name, owner, states);\n fsm.debug = debug;\n this.fsms.set(key, fsm);\n return fsm;\n }\n public RemoveFsm(name: string) {\n if (this.fsms.has(name)) {\n this.fsms.delete(name);\n }\n }\n}","import { FsmStatenNameMap } from \"./FsmStateNameMap\";\r\nimport { IFsmState } from \"./IFsmState\";\r\n\r\n/**\r\n * 注册状态机\r\n * @param name 状态机名字\r\n * @returns \r\n */\r\nexport function add_state_map(name:string) {\r\n return function (_constructor: T) {\r\n var newConstructor = class T extends _constructor {\r\n constructor(...args: Array) {\r\n super(...args);\r\n this.stateName = name;\r\n FsmStatenNameMap.RegisterState(this.stateName, newConstructor);\r\n }\r\n }\r\n return newConstructor;\r\n }\r\n}","import { EventManager } from \"../manager/EventManager\";\r\nimport { add_state_map } from \"./FsmState_Decorator\";\r\nimport { IFsm } from \"./IFsm\";\r\nimport { IFsmState } from \"./IFsmState\";\r\n\r\nexport abstract class FsmState extends IFsmState {\r\n fsm: IFsm;\r\n constructor() {\r\n super();\r\n }\r\n public _OnInit(fsm: IFsm) {\r\n this.fsm = fsm;\r\n this.OnInit();\r\n }\r\n protected taskTag: Map;\r\n actived: boolean = false;\r\n /**状态机初始化时调用 */\r\n abstract OnInit()\r\n /**进入状态机时调用 */\r\n abstract OnEnter(...params: any[]);\r\n /** */\r\n abstract OnUpdate(dt: number);\r\n /**离开状态机时调用 */\r\n abstract OnLeave();\r\n /**销毁状态机时调用 */\r\n abstract OnDestroy();\r\n\r\n protected AddEventTrigger(eventName: string, listener: Function) {\r\n EventManager.Inst.on(eventName, this, listener);\r\n }\r\n\r\n protected RemoveEventTrigger(eventName: string, listener: Function) {\r\n EventManager.Inst.off(eventName, this, listener);\r\n }\r\n\r\n public RemoveAllEventTrigger() {\r\n EventManager.Inst.offAllCaller(this);\r\n }\r\n\r\n /**添加一个任务标记 */\r\n protected AddTaskTag(tagName: string) {\r\n if (this.taskTag == null) {\r\n this.taskTag = new Map();\r\n this.taskTag.set(tagName, false);\r\n } else {\r\n if (this.taskTag.has(tagName)) {\r\n console.error('重复的task tag:', tagName);\r\n return;\r\n }\r\n this.taskTag.set(tagName, false);\r\n }\r\n }\r\n \r\n /**标记一个任务完成 */\r\n protected FlagTaskDone(tagName: string) {\r\n if (this.taskTag.has(tagName)) {\r\n this.taskTag.set(tagName, true);\r\n } else {\r\n console.error('无效的task tag:', tagName);\r\n }\r\n }\r\n\r\n /**检测某个任务是否完成 */\r\n protected CheckTaskIsDone(tagName: string) {\r\n if (this.taskTag.has(tagName)) {\r\n return this.taskTag.get(tagName);\r\n } else {\r\n console.error('无效的task tag:', tagName);\r\n }\r\n }\r\n\r\n /**检车是否所有任务完成 */\r\n protected CheckAllTaskDone() {\r\n /**没有任务,默认全部完成 */\r\n if (this.taskTag == null) return true;\r\n let done = true;\r\n this.taskTag.forEach(v => {\r\n done = done && v;\r\n });\r\n return done;\r\n }\r\n\r\n public finishTask(taskName:string){\r\n this.FlagTaskDone(taskName);\r\n }\r\n\r\n public ClearTags(){\r\n if(this.taskTag != null){\r\n this.taskTag.clear();\r\n }\r\n }\r\n\r\n public ChangeState(state: typeof IFsmState, ...params: any[]) {\r\n this.fsm.ChangeState(state, ...params);\r\n }\r\n\r\n public get Owner() {\r\n return this.fsm.Owner;\r\n }\r\n}","import { _decorator } from 'cc';\nimport { IFsmState } from \"./IFsmState\";\n\nexport class FsmStatenNameMap {\n private static stateNames: string[] = [];\n private static stateTypes: any[] = [];\n public static RegisterState(name: string, T: typeof IFsmState) {\n var index = this.stateNames.indexOf(name);\n if (index > -1) {\n if (this.stateTypes[index] !== T) {\n console.error(name, ' 注册重复', T);\n }\n }\n this.stateNames.push(name);\n this.stateTypes.push(T);\n index = this.stateNames.indexOf(name);\n }\n public static IsStateInstance(t: IFsmState, T: typeof IFsmState) {\n return this.stateNames.indexOf[t.stateName] == this.stateTypes.indexOf(T);\n }\n public static GetStateNameByType(stateType: typeof IFsmState): string {\n return this.stateNames[this.stateTypes.indexOf(stateType)];\n }\n}","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport Point from '../../../map/road/Point';\nimport { Vec2 } from 'cc';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { GameModleComp } from '../../../game/GameModle';\nimport { c1624, p_fuben, s1624,c1623, s1623 } from '../../../proto/proto';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\n@res_auto_bind()\nexport class FuBenExpPoxy {\n private static _inst: FuBenExpPoxy;\n public static get Inst(): FuBenExpPoxy {\n if (FuBenExpPoxy._inst == null) {\n FuBenExpPoxy._inst = new FuBenExpPoxy();\n }\n return FuBenExpPoxy._inst;\n }\n @res_assign(\"FuBenExp\")\n public fuBenExpList: FuBenExp[];\n public InitFuBenExpConfig() {\n if (!this.fuBenExpList) {\n this.fuBenExpList = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"FuBenExp\")) {\n let achieveitem = ConfigManager.GetInstance().getValue(\"FuBenExp\")[key];\n if (achieveitem) {\n for (var keys in achieveitem) {\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys, achieveitem[keys]);\n }\n this.fuBenExpList.push(achieveitem);\n }\n }\n return this.fuBenExpList;\n }\n public GetFuBenExpByID(id: number): FuBenExp {\n if (!this.fuBenExpList) {\n this.InitFuBenExpConfig();\n }\n return this.fuBenExpList.find(element => element.ID == id);\n }\n public GetFuBenExpListByFuBenID(fubenid: number): number {\n if (!this.fuBenExpList) {\n this.InitFuBenExpConfig();\n }\n let count=0;\n for(let i=0;i element.fubenID == id && element.lv == Lv);\n return list;\n }\n\n public GetFuBenReward(fubenid: number, lv: number, hp: number) {\n let fubenexp = this.GetFuBenExpByIdAndExp(fubenid, lv);\n let rewarddata = fubenexp.kv_reward5;\n // let hpnumber = hp;\n // if (hpnumber > fubenexp.hp4) {\n // rewarddata = fubenexp.kv_reward5;\n // } else if (hpnumber > fubenexp.hp3) {\n // rewarddata = fubenexp.kv_reward4;\n // }\n // else if (hpnumber > fubenexp.hp2) {\n // rewarddata = fubenexp.kv_reward3;\n // }\n // else if (hpnumber >fubenexp.hp1) {\n // rewarddata = fubenexp.kv_reward2;\n // }\n return rewarddata;\n }\n \n\n /***==========================发送消息给服务器========================= */\n SendC1623(id:number,lv:number) { /**副本信息 */\n var c1623: c1623 = {id:id,lv:lv};\n send2client(\"c1623\", c1623);\n }\n SendC1624() { /**副本信息 */\n var c1624: c1624 = {};\n send2client(\"c1624\", c1624);\n }\n /***==========================服务器数据存储============================== */\n public p_fubenList :p_fuben[];\n}\n\n\n/**副本信息 */\nexport function do_s1624(s1624: s1624) {\n // int32 id=1; // 副本id\n // int32 lv=2; // 副本等级\n // int32 adMax=3; // 最大广告次数\n // int32 adNum=4; // 剩余广告次数\n // int32 per=5; // 当前等级上次挑战通关万分比\n FuBenExpPoxy.Inst.p_fubenList = s1624.fuben_info;\n EventManager.Inst.event(EventType.UPDATE_LOADFUBEN_UI);\n EventManager.Inst.event(EventType.UPDATE_LOADFUBENDEC_UI);\n}\n\n/**扫荡副本 */\nexport function do_s1623(s1623: s1623) {\n // console.log(\"================================s1623========s1623.result==========================\"+s1623.result);\n\n if(s1623.result==undefined){\n var data = new BoxData\n {\n data.rewards = s1623.rewards;//传奖励列表\n };\n \n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n FuBenExpPoxy.Inst.SendC1624();\n }\n\n}\nexport class FuBenExp {\n /** expId */\n ID: number;\n /** 副本ID */\n fubenID: number;\n /**等级*/\n lv: number;\n /**解锁关卡*/\n pass: number;\n /** 怪物 */\n monster: number;\n /** 倒计时 */\n time: number;\n /** 阶段1_血 */\n hp1: number;\n /**阶段1_奖励 */\n kv_reward1: Map;\n /** 阶段1_血 */\n hp2: number;\n /**阶段1_奖励 */\n kv_reward2: Map;\n /** 阶段1_血 */\n hp3: number;\n /**阶段1_奖励 */\n kv_reward3: Map;\n /** 阶段1_血 */\n hp4: number;\n /**阶段1_奖励 */\n kv_reward4: Map;\n /** 阶段1_血 */\n hp5: number;\n /**阶段1_奖励 */\n kv_reward5: Map;\n}\n\nexport enum FuBenTageType {\n None = 0,\n First = 1,\n Second = 2,\n Three = 3,\n Four = 4,\n Five = 5\n}","\r\nimport ConfigManager from '../../../_config/ConfigManager';\r\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\r\nimport GameConst from '../../../core/common/GameConst';\r\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\r\nimport WindowManager from '../../../core/manager/WindowManager';\r\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\r\nimport { PveTypeEnum } from '../../../enum/Enum';\r\nimport { GameModleComp } from '../../../game/GameModle';\r\nimport { c1652, s1621, s1622, s1651, s1652 } from '../../../proto/proto';\r\nimport { GlobalFunction } from '../common/GlobalFunction';\r\nimport { XiaoTou, XiaoTouPoxy } from './XiaoTouPoxy';\r\n@res_auto_bind()\r\nexport class FuBenProxy{\r\n private static _inst: FuBenProxy;\r\n public static get Inst(): FuBenProxy {\r\n if (FuBenProxy._inst == null) {\r\n FuBenProxy._inst = new FuBenProxy();\r\n }\r\n return FuBenProxy._inst;\r\n }\r\n /***==========================副本============================== */\r\n public FuBenDataList: FuBen[];\r\n @res_assign(\"FuBen\")\r\n public InitCampConfig() {/***建筑升级属性配置表 */\r\n if (!this.FuBenDataList) {\r\n\r\n this.FuBenDataList = [];\r\n }\r\n for (var key in ConfigManager.GetInstance().getValue(\"FuBen\")) {\r\n let item = ConfigManager.GetInstance().getValue(\"FuBen\")[key];\r\n if (item) {\r\n for (var keys in item) {\r\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\r\n }\r\n this.FuBenDataList.push(item);\r\n }\r\n }\r\n\r\n return this.FuBenDataList;\r\n }\r\n public GetFubenById(fubenId: number): FuBen {\r\n if (!this.FuBenDataList) {\r\n this.InitCampConfig();\r\n }\r\n return this.FuBenDataList.find(element => element.fubenID == fubenId );\r\n\r\n }\r\n\r\n\r\n\r\n /**小偷活动是否开启*/\r\n private _thiefIsOpen: boolean = false;\r\n public get thiefIsOpen(): boolean {\r\n return this._thiefIsOpen;\r\n }\r\n public set thiefIsOpen(value: boolean) {\r\n this._thiefIsOpen = value;\r\n }\r\n /**小偷活动ID*/\r\n public _thiefId: number = 0;\r\n public get thiefId(): number {\r\n return this._thiefId;\r\n }\r\n public set thiefId(value: number) {\r\n this._thiefId = value;\r\n }\r\n /**小偷活动消失时间*/\r\n public _thiefEndTime: number = 0;\r\n public get thiefEndTime(): number {\r\n return this._thiefEndTime;\r\n }\r\n /**小偷活动最大点击数*/\r\n private _thiefMaxClick: number = 0;\r\n public get thiefMaxClick(): number {\r\n return this._thiefMaxClick;\r\n }\r\n public set thiefMaxClick(value: number) {\r\n this._thiefMaxClick = value;\r\n }\r\n /**小偷活动剩余最大点击数*/\r\n private _thiefHaveClick: number = 0;\r\n public get thiefHaveClick(): number {\r\n return this._thiefHaveClick;\r\n }\r\n public set thiefHaveClick(value: number) {\r\n this._thiefHaveClick = value;\r\n }\r\n /**小偷活动单次点击收益*/\r\n private _thiefOnceReward: number = 0;\r\n public get thiefOnceReward(): number {\r\n return this._thiefOnceReward;\r\n }\r\n public set thiefOnceReward(value: number) {\r\n this._thiefOnceReward = value;\r\n }\r\n /**小偷活动本次点击收益*/\r\n private _thiefThisReward: number = 0;\r\n public get thiefThisReward(): number {\r\n return this._thiefThisReward;\r\n }\r\n public set thiefThisReward(value: number) {\r\n this._thiefThisReward = value;\r\n }\r\n\r\n \r\n SendC1652() {\r\n var c1652: c1652 = {};\r\n send2client(\"c1652\", c1652);\r\n }\r\n\r\n}\r\n\r\nexport class FuBen {\r\n fubenID: number;\r\n lan_name: string;\r\n icon: string;\r\n pass: number;\r\n map: string;\r\n ay_item :string[];\r\n item:number;\r\n itemnum:number;\r\n advert:number;\r\n}\r\n\r\n/**小偷活动推送 */\r\nexport function do_s1651(s1651: s1651) {\r\n // console.log(\"================================s1651========s1651.result==========================\" + s1651);\r\n if(s1651.id != undefined && Number(s1651.id) != 0){\r\n //小偷出现\r\n let xiaotou:XiaoTou = XiaoTouPoxy.Inst.GetXiaoTouById(s1651.id)\r\n FuBenProxy.Inst._thiefId = s1651.id;\r\n FuBenProxy.Inst._thiefEndTime = s1651.endTime;//Number(xiaotou.aliveTime);\r\n FuBenProxy.Inst.thiefMaxClick = s1651.clickMax;\r\n FuBenProxy.Inst.thiefHaveClick = s1651.click;\r\n FuBenProxy.Inst.thiefOnceReward = s1651.goldClick;\r\n FuBenProxy.Inst.thiefIsOpen = true;\r\n // console.log(\"服务器开启小偷活动\")\r\n EventManager.Inst.event(EventType.THIEF_ACTIVE_TYPE_CHANGE , true);\r\n }else{\r\n //小偷消失\r\n FuBenProxy.Inst._thiefEndTime = 0;\r\n FuBenProxy.Inst.thiefMaxClick = 0;\r\n FuBenProxy.Inst.thiefHaveClick = 0;\r\n FuBenProxy.Inst.thiefOnceReward = 0;\r\n FuBenProxy.Inst.thiefIsOpen = false;\r\n // console.log(\"服务器关闭小偷活动\")\r\n EventManager.Inst.event(EventType.THIEF_ACTIVE_TYPE_CHANGE , false);\r\n }\r\n}\r\n/**小偷活动点击推送 */\r\nexport function do_s1652(s1652: s1652) {\r\n // console.log(\"================================s1652========s1652.result==========================\" + s1652);\r\n if(Number(s1652.result) == 1){\r\n //小偷点击失败\r\n }else{\r\n //小偷点击收益成功\r\n FuBenProxy.Inst.thiefHaveClick = s1652.clickMax;\r\n FuBenProxy.Inst.thiefThisReward = s1652.gold;\r\n EventManager.Inst.event(EventType.THIEF_CLICK_REWARD_CHANGE , s1652.gold);\r\n }\r\n\r\n}\r\n\r\n/**进入副本*/\r\nexport function do_s1621(s1621:s1621){\r\n if(Number(s1621.result) == 1){\r\n //失败\r\n }else{\r\n //成功\r\n EventManager.Inst.event(EventType.OPEN_PVE_FIGHT_MAP,GameModleComp.getInstance().transPveData);\r\n }\r\n}\r\n\r\n/**结束副本*/\r\nexport function do_s1622(s1622:s1622){\r\n // console.log(\"=======1622=====================结束副本====================\"+s1622.result);\r\n EventManager.Inst.event(EventType.COPY_END_SHOW_REWARD,s1622);\r\n}\r\n\r\nexport class FuBenOpenData{\r\n fubenId:number;\r\n fubenType:PveTypeEnum;\r\n fubenExpId:number;\r\n /**1:道具进入 2:广告进入*/\r\n openType:number;\r\n}\r\n","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport Point from '../../../map/road/Point';\nimport { Vec2 } from 'cc';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { s1406 } from '../../../proto/proto';\nimport { GameModleComp } from '../../../game/GameModle';\n@res_auto_bind()\nexport class FuBenSoldiersPoxy {\n private static _inst: FuBenSoldiersPoxy;\n public static get Inst(): FuBenSoldiersPoxy {\n if (FuBenSoldiersPoxy._inst == null) {\n FuBenSoldiersPoxy._inst = new FuBenSoldiersPoxy();\n }\n return FuBenSoldiersPoxy._inst;\n }\n @res_assign(\"FuBenSoldiers\")\n public datas: FuBenSoldiers[]; \n public get datasAchieve(){\n if(!this.datas){\n this.datas =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"FuBenSoldiers\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"FuBenSoldiers\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.datas.push(achieveitem);\n }\n\n }\n return this.datas;\n }\n public getMapById(id:number):FuBenSoldiers{\n if(this.datas){\n return this.datas.find(element=>element.id==id); \n }else{\n \n this.datas = this.datasAchieve;\n return this.datas.find(element=>element.id==id); \n }\n }\n}\nexport class FuBenSoldiers {\n id: number;\n soldiers: number;\n village: number;\n}","import { sp } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('FuhuoFloorViewComp')\r\nexport class FuhuoFloorViewComp extends Component{\r\n @property({\r\n type: sp.Skeleton,\r\n displayName: \"FuhuoFloor\",\r\n })\r\n fuhuo: sp.Skeleton = null!;\r\n reset(): void {\r\n this.node.destroy();\r\n }\r\n\r\n onLoad(): void {\r\n this.fuhuo.setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case \"e_c_hero_fuhuo\":\r\n this.reset();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 播放动画\r\n * @param id \r\n */\r\n playAni() {\r\n this.fuhuo.setAnimation(0, \"e_c_hero_fuhuo\", false);\r\n }\r\n}","import { sp } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { p_hero, p_hero_sz } from \"../proto/proto\";\r\nimport { HeroProxy } from \"../modules/game/proxy/HeroProxy\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { instantiate } from \"cc\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nimport { Vec3 } from \"cc\";\r\nimport { HeroModle } from \"../role/HeroModle\";\r\nimport { pid } from \"process\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('FuhuoTopViewComp')\r\nexport class FuhuoTopViewComp extends Component{\r\n @property({\r\n type: sp.Skeleton,\r\n displayName: \"FuhuoTop\",\r\n })\r\n fuhuo: sp.Skeleton = null!;\r\n \r\n private posArr:Array = [];\r\n private heroId:number;\r\n private playEnd:boolean = false;\r\n\r\n reset(): void {\r\n this.node.destroy();\r\n }\r\n\r\n onLoad(): void {\r\n this.fuhuo.setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case \"e_c_hero_fuhuo\":\r\n this.playEnd = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n update(dt){\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n if(this.playEnd){\r\n this.playEnd = false;\r\n this.showHero();\r\n this.reset();\r\n }\r\n }\r\n /**\r\n * 播放动画\r\n * @param id \r\n */\r\n playAni() {\r\n this.fuhuo.setAnimation(0, \"e_c_hero_fuhuo\", false);\r\n }\r\n\r\n initHero(posArr:Array , heroId:number){\r\n this.posArr = posArr;\r\n this.heroId = heroId;\r\n }\r\n private showHero(){\r\n let pId:string = null;\r\n let heroMap:Array = HeroProxy.Inst.szHeros;\r\n for(let i = 0 ; i < heroMap.length ; i++){\r\n if(heroMap[i].heroId != \"0\"){\r\n let szHero:p_hero = HeroProxy.Inst.GetSeverHeroByUId(heroMap[i].heroId);\r\n let localId:number = szHero.localId;\r\n if(localId == this.heroId){\r\n pId = heroMap[i].heroId;\r\n }\r\n }\r\n }\r\n if(pId && !GameEntry.Inst.mapView.heroMap.get(this.heroId)){\r\n let gebulin:HeroView = instantiate(GameEntry.Inst.mapView.nowScene.hero).getComponent(HeroView);\r\n gebulin.setPos(MapRoadUtils.AStarToPoint(new Vec3(Number(this.posArr[0]) , Number(this.posArr[1]) , 0)));\r\n gebulin.init();\r\n gebulin.pId = pId;\r\n gebulin.setHeroId(this.heroId);\r\n GameEntry.Inst.mapView.nowScene.heroLayer.addChild(gebulin.node);\r\n GameEntry.Inst.mapView.heroMap.set((gebulin.modle as HeroModle).hero.id , gebulin);\r\n }\r\n }\r\n}","// ! 自动导出,请不要修改\n//\n/**\n * FunctionCfg config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from \"../_ConfigInject/Config_Decorator\";\n\n@res_auto_bind()\nexport class FunctionCfgPoxy {\n private static _inst: FunctionCfgPoxy;\n public static get Inst(): FunctionCfgPoxy {\n if (FunctionCfgPoxy._inst == null) {\n FunctionCfgPoxy._inst = new FunctionCfgPoxy();\n }\n return FunctionCfgPoxy._inst;\n }\n private keyMap = {\n _0: \"id\",\n _1: \"name\",\n _2: \"unlock_type\",\n _3: \"unlock_lv\",\n _4: \"unlock_condition\",\n _5: \"functionLanguageId\",\n _6: \"lockLanguageId\",\n _7: \"args\",\n _8: \"unlock_show\",\n _9: \"target_node\",\n _10: \"resrouceName\",\n };\n @res_assign(\"FunctionCfg\")\n public datas: FunctionCfg[];\n private _map: any;\n private get Map(): Map {\n if (this._map == null) {\n this._map = new Map();\n this.datas.forEach(config => {\n this._map.set(config.id, config);\n });\n }\n return this._map;\n }\n public Get(id: number) {\n return this.Map.get(id);\n }\n}\n\nexport class FunctionCfg {\n // /** 功能Id */\n id: number;\n // /** 功能名称 */\n name: string;\n // /** 解锁类型0.等级解锁1.通过关卡解锁2.游玩一次主线解锁3.达到指定波次4.获得一件装备5.注册天数 */\n unlock_type: number;\n // /** 解锁参数 */\n unlock_lv: number;\n // /** 解锁条件描述 */\n unlock_condition: string;\n // /** 功能名称多语言id */\n functionLanguageId: number;\n // /** 解锁描述多语言id */\n lockLanguageId: number;\n // /** 参数 */\n args: string[];\n // /** 是否有解锁动画|0^无|1^有| */\n unlock_show: number;\n // /** 入口节点名字 */\n target_node: string;\n // /** 资源名称 */\n resrouceName: string;\n}","import { _decorator } from 'cc';\nexport class FunctionOpenData {\n private static _int: FunctionOpenData = null;\n public static get Int() {\n if (!this._int)\n this._int = new FunctionOpenData();\n return this._int;\n }\n ShowLevelUpUI: boolean = false;\n //存服务器了\n function_open: number[] = []\n checkShowAni(id: number) {\n return this.function_open.indexOf(id) != -1;\n }\n}\n","/**\n * FunctionForetell config配置文件\n */\nimport { _decorator } from 'cc';\nimport { c1050, s1050, s1051 } from '../../../proto/proto';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { dataUser } from '../../gameData/dataUser';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport { sys } from 'cc';\nimport ListView from '../../../core/component/ListView';\n@res_auto_bind()\nexport class FunctionProxy {\n private static _inst: FunctionProxy;\n public static get Inst(): FunctionProxy {\n if (FunctionProxy._inst == null) {\n FunctionProxy._inst = new FunctionProxy();\n }\n return FunctionProxy._inst;\n }\n @res_assign(\"FunctionForetell\")\n public FunctionDataList: FunctionForetell[];\n public InitFunctionForetellConfig() {\n if (this.FunctionDataList == null) {\n this.FunctionDataList = [];\n }\n let PayInfoDataConfig = ConfigManager.GetInstance().getValue(\"FunctionForetell\")\n for (var key in PayInfoDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"FunctionForetell\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.FunctionDataList.push(item);\n }\n }\n }\n\n /** 根据id获取payinfo */\n public GetFunctionDataByID(id: number) {\n if (this.FunctionDataList == null) {\n this.InitFunctionForetellConfig();\n }\n let data: FunctionForetell = this.FunctionDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n /** 根据main_type获取payinfo */\n public GetFunctionDataByType(lock: number) {\n if (this.FunctionDataList == null) {\n this.InitFunctionForetellConfig();\n }\n let data: FunctionForetell = this.FunctionDataList.find(item => item.lock == lock);\n if (data) {\n return data;\n }\n return null;\n }\n /** 根据id获取payinfo */\n public GetFunctionDataByLevelID(level: number) {\n if (this.FunctionDataList == null) {\n this.InitFunctionForetellConfig();\n }\n let data: FunctionForetell = this.FunctionDataList.find(item => item.level == level);\n if (data) {\n return data;\n }\n return null;\n }\n /** 根据level获取payinfo */\n public GetFunctionDataByLevel(level: number) {\n let FunctionDataLists: FunctionForetell[];\n FunctionDataLists = [];\n if (this.FunctionDataList == null) {\n this.InitFunctionForetellConfig();\n }\n for (let index = 0; index < this.FunctionDataList.length; index++) {\n const element = this.FunctionDataList[index];\n if (element.level == level) {\n FunctionDataLists.push(element);\n }\n }\n return FunctionDataLists;\n }\n\n /** 根据id判断該功能是否開啓 */\n public GetFuntionIsOpen(id: number) {\n let data = this.GetFunctionDataByID(id);\n if (data) {\n return (dataUser.Instance().passId + 1) >= data.level;\n }\n return false;\n }\n\n /** 根据id判断該功能是否已經領取獎勵 */\n public ISFuntionGetReward(id: number) {\n if (FunctionProxy.Inst.FunctionIDList == undefined || FunctionProxy.Inst.FunctionIDList.length == 0) return false;\n let data = FunctionProxy.Inst.FunctionIDList.find(item => item == id);\n if (data) {\n return true;\n }\n return false;\n }\n\n /** 根据關卡判斷是否显示功能解锁提示 */\n public IsFuntionIsOpen() {\n console.log(\"boss打完当前关卡====\"+(dataUser.Instance().passId+1));\n let level = dataUser.Instance().passId + 2;\n let functiondata = FunctionProxy.Inst.GetFunctionDataByLevelID(level);\n if (!functiondata) return false;\n let funkey = \"function_\"+dataUser.Instance().userId + functiondata.id;\n if (sys.localStorage.getItem(funkey)) {\n return false;\n }\n return true;\n }\n /**打開解鎖的功能提示界面 */\n public OpenAdvanceShowUI() {\n console.log(\"修正过后当前关卡====\"+(dataUser.Instance().passId+1));\n let level = dataUser.Instance().passId + 1;\n let functiondata = FunctionProxy.Inst.GetFunctionDataByLevelID(level);\n if (!functiondata) return;\n let funkey = \"function_\"+dataUser.Instance().userId + functiondata.id;\n if (!sys.localStorage.getItem(funkey)) {\n sys.localStorage.setItem(funkey, 1)\n } else {\n return;\n }\n if (functiondata.unlock == 2) {\n WindowManager.Instance().open(GameConst.winPath.AdvanceSoldiersUI);\n } else {\n WindowManager.Instance().open(GameConst.winPath.AdvanceShowUI);\n EventManager.Inst.event(EventType.UPDATE_MAIN_FUNTION_CHANGE);\n }\n\n }\n\n\n /***==========================服务器数据存储============================== */\n public FunctionIDList: number[];//服务器返回-离线信息\n public SendC1050(id: number) {\n //获取所有道具列表\n var c1050: c1050 = { id: id };\n send2client(\"c1050\", c1050);\n }\n}\n\n// /**功能预告领奖 */\nexport function do_s1050(s1050: s1050) {\n Logger.logNet(\"===================接收是1050================功能预告领奖====\" + s1050.result);\n if (s1050.result == undefined) {\n\n if (s1050.rewards && s1050.rewards.length > 0)\n var data = new BoxData\n {\n data.rewards = s1050.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n}\n\n//**同步已领奖的所有功能id列表,上线和有变化时后端主动推 */\nexport function do_s1051(s1051: s1051) {\n Logger.logNet(\"===================接收是1051================同步已领奖的所有功能id列表,上线和有变化时后端主动推====\");\n if (FunctionProxy.Inst.FunctionIDList == undefined) {\n FunctionProxy.Inst.FunctionIDList = [];\n }\n if (s1051.idList != undefined) {\n if (FunctionProxy.Inst.FunctionIDList.length > 0) {\n FunctionProxy.Inst.FunctionIDList.length = 0;\n }\n FunctionProxy.Inst.FunctionIDList = s1051.idList;\n // setTimeout(() => {\n EventManager.Inst.event(EventType.UPDATE_ADVANCE_UI);\n // }, 1000);\n\n }\n}\n\nexport class FunctionForetell {\n /** 功能 ID */\n id: number;\n /** 名字 */\n lan_name: string;\n /**立绘 */\n icon: string;\n /** 内容多语言 */\n lan_content: string;\n /** 类型 */\n main_type: number;\n /** 时间 */\n time: number;\n /** 关卡*/\n level: number;\n /** 解锁*/\n unlock: number;\n /** 士兵*/\n soldiers: number;\n /** 解锁*/\n lock: number;\n /** 奖励 */\n ay_reward: string[];\n\n}","import { CircleCollider2D } from \"cc\";\r\nimport { ccenum, Component, ICollisionEvent, ITriggerEvent, _decorator, Collider2D, Contact2DType, IPhysics2DContact } from \"cc\";\r\nconst { ccclass, property } = _decorator;\r\n/** 碰撞物体类型 */\r\nexport enum CollisionType {\r\n /** 角色类 */\r\n Role,\r\n /** 飞弹类体*/\r\n Ballistic,\r\n /** 墙体类 */\r\n Wall\r\n}\r\nccenum(CollisionType);\r\n\r\n/** 碰撞器与触发器 */\r\n@ccclass('GameCollision2D')\r\nexport class GameCollision2D extends Component {\r\n private Event_TriggerEnter: any = \"onTriggerEnter\";\r\n private Event_TriggerStay: any = \"onTriggerStay\";\r\n private Event_TriggerExit: any = \"onTriggerExit\";\r\n\r\n protected collider: Collider2D = null!;\r\n\r\n @property({ type: CollisionType, tooltip: '碰撞物体类型' })\r\n type: CollisionType = CollisionType.Ballistic;\r\n\r\n onLoad() {\r\n this.collider = this.getComponent(CircleCollider2D)!;\r\n if(this.collider){\r\n this.collider.on(Contact2DType.BEGIN_CONTACT, this.onCollisionEnter, this); //开始碰撞\r\n this.collider.on(Contact2DType.END_CONTACT, this.onCollisionExit, this); //碰撞结束\r\n }\r\n }\r\n\r\n private onTrigger(event: ITriggerEvent) {\r\n switch (event.type) {\r\n case this.Event_TriggerEnter:\r\n this.onTriggerEnter(event);\r\n break;\r\n case this.Event_TriggerStay:\r\n this.onTriggerStay(event);\r\n break;\r\n case this.Event_TriggerExit:\r\n this.onTriggerExit(event);\r\n break;\r\n }\r\n }\r\n\r\n protected onTriggerEnter(event: ITriggerEvent) { }\r\n protected onTriggerStay(event: ITriggerEvent) { }\r\n protected onTriggerExit(event: ITriggerEvent) { }\r\n protected onCollisionEnter(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) { }\r\n protected onCollisionExit(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) { }\r\n}\r\n","import { _decorator, Node } from 'cc';\nimport GameConst from \"../../core/common/GameConst\";\nimport MsgHints from \"../../core/component/MsgHints\";\nimport Utils from \"../../core/utils/Utils\";\nimport { FunctionCfgPoxy } from \"../../_config/FunctionCfg\";\nimport { Language_WnTJTK, Language_WnTJTKPoxy } from \"../../_config/Language_WnTJTK\";\nimport { GameManager } from \"../GameManager\";\nexport function LAN(id: number) {\n return GameConfigHelper.getZh(id).replace(/\"^\"/g, \",\");\n}\nexport function LAN2(id: string) {\n let tmp = Language_WnTJTKPoxy.Inst.datas.find(a => a.strId == id);\n if (!tmp) {\n return \"\"\n }\n return tmp.zh.replace(/\"^\"/g, \",\");\n}\n\nexport class GameConfigHelper {\n private static _language: Map;\n public static get languageMap() {\n if (this._language == null) {\n this._language = new Map();\n Language_WnTJTKPoxy.Inst.datas.forEach(conifg => {\n this._language.set(conifg.ID, conifg);\n });\n }\n return this._language;\n }\n\n public static getZh(id: number): string {\n let tmp = this.languageMap.get(id);\n return tmp ? tmp.zh : \"?\" + id + \"?\";\n }\n\n public static FunctionOpenCheck(node: Node, funcid: number, closeHide: boolean = true): { open: boolean, msg: string } {\n if (GameManager.Instance().isCloseVersion()) {\n let config = FunctionCfgPoxy.Inst.Get(funcid);\n let open = true;\n switch (config.unlock_type) {\n case 0://等级解锁\n open = false; // TODO\n break;\n case 1://通关关卡解锁\n open = false; // TODO\n break\n }\n\n if (closeHide) {\n if (node) node.active = open;\n }\n else {\n node.active = open;\n }\n\n\n let msg = LAN(config.lockLanguageId).replace(\"{0}\", config.unlock_lv + \"\").replace(\"{1}\", LAN(config.functionLanguageId))\n return { open, msg }\n }\n }\n\n public static FunctionClick(funcid: number, callback: Function, showmsg: boolean = true) {\n let { open, msg } = this.FunctionOpenCheck(null, funcid)\n if (open) {\n callback()\n }\n else {\n if (showmsg)\n MsgHints.show(msg)\n }\n }\n}","import { _decorator } from 'cc';\nimport { UILayer } from \"../manager/WindowManager\"\nimport ManageUI from '../../modules/game/soldiersui/ManageUI';\nimport SoldiersEquiptQhUI from '../../modules/game/soldiersui/SoldiersEquiptQhUI';\nimport ItenDecUI from '../../modules/game/itemui/ItenDecUI';\nimport TaskUI from '../../modules/game/taskui/TaskUI';\nimport MonthCardUI from '../../modules/game/mooncardui/MonthCardUI';\nimport powerUI from '../../modules/game/powerui/PowerUI';\nimport KingUI from '../../modules/game/characterui/KingUI';\nimport AdvanceHeroUI from '../../modules/game/heroui/AdvanceHeroUI';\nimport AdvanceShowUI from '../../modules/game/heroui/AdvanceShowUI';\nimport AdvanceSoldiersUI from '../../modules/game/heroui/AdvanceSoldiersUI';\n\nexport default class GameConst {\n static LocalVersion = window['game_ver'] || \"1.0.0\" //本地版本号 和微信版本一致 \n static UsePauseRef = true;\n static UseNeighborCheck = false;\n static BundleUI = \"net_ui\";\n static BundleTextures = \"net_textures\";\n static BundleTrail = \"net_trail\";\n /**怪物击杀数偏移 */\n static killcount_offset = -9;\n //弹窗路径\n static winPath =\n {\n //战斗外\n LoadingWin: { preload: false, name: 'LoadingWin', path: 'loading/', bundle: 'resources', layer: UILayer.背景, motion: false },\n LoadingKefuWin: { preload: false, name: 'LoadingKeFuWin', path: 'loading/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n EnterUI: { preload: false, name: 'EnterUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.背景, motion: false },\n WebLoadingUI: { preload: false, name: 'WebLoadingUI', path: 'prefabs/', bundle: 'loading', layer: UILayer.背景, motion: false },\n MainUI: { preload: false, name: 'MainUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.背景, motion: false },\n HeroUI: { preload: false, name: 'HeroUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n ShopUI: { preload: false, name: 'ShopUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n SoldiersUI: { preload: false, name: 'SoldiersUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n ManageUI: { preload: false, name: 'ManageUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n MainBuffUI: { preload: false, name: 'MainBuffUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n HeroEquiptUI: { preload: false, name: 'HeroEquiptUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n LoadUI: { preload: false, name: 'LoadUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n DaySevenUI: { preload: false, name: 'DaySevenUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n DayTaskUI: { preload: false, name: 'DayTaskUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n LoadFbenDecUI: { preload: false, name: 'LoadFbenDecUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n LoadFbenUI: { preload: false, name: 'LoadFbenUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.二级弹窗, motion: false },\n\n OfflineUI: { preload: false, name: 'OfflineUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n AdvanceUI: { preload: false, name: 'AdvanceUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n DaySignUI: { preload: false, name: 'DaySignUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n MoonCardUI: { preload: false, name: 'MoonCardUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n FestivalTimeUI: { preload: false, name: 'FestivalTimeUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n RandomAdvertUI: { preload: false, name: 'RandomAdvertUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n\n WelfareUI: { preload: false, name: 'WelfareUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n TaskUI: { preload: false, name: 'TaskUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n //通用弹窗界面\n TitleUI: { preload: false, name: 'TitleUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.标题, motion: false },\n Box1UI: { preload: false, name: 'Box1UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box2UI: { preload: false, name: 'Box2UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box3UI: { preload: false, name: 'Box3UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box4UI: { preload: false, name: 'Box4UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box5UI: { preload: false, name: 'Box5UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box6UI: { preload: false, name: 'Box6UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box7UI: { preload: false, name: 'Box7UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box8UI: { preload: false, name: 'Box8UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box9UI: { preload: false, name: 'Box9UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n Box10UI: { preload: false, name: 'Box10UI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n LoadFbenLoseUI: { preload: false, name: 'LoadFbenLoseUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n LoadFbenWinUI: { preload: false, name: 'LoadFbenWinUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n LoseUI: { preload: false, name: 'LoseUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n\n Herodec: { preload: false, name: 'Herodec', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n ShopSoldiersTipsUI: { preload: false, name: 'ShopSoldiersTipsUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n SoldiersEquiptGetUI: { preload: false, name: 'SoldiersEquiptGetUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n ItenDecUI: { preload: false, name: 'ItenDecUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n \n HeroScreenUI: { preload: false, name: 'HeroScreenUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n EquiptDecUI: { preload: false, name: 'EquiptDecUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n HeroEquiptAutoUI: { preload: false, name: 'HeroEquiptAutoUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n HeroEquiptContrastUI: { preload: false, name: 'HeroEquiptContrastUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n HeroEquiptUpUI: { preload: false, name: 'HeroEquiptUpUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n\n SoldiersEquiptQhUI: { preload: false, name: 'SoldiersEquiptQhUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n SoldiersEquiptTipsUI: { preload: false, name: 'SoldiersEquiptTipsUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n\n HeroTexingUI: { preload: false, name: 'HeroTexingUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n HeroTipsUI: { preload: false, name: 'HeroTipsUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n SkillUI: { preload: false, name: 'SkillUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n PowerUI: { preload: false, name: 'PowerUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n\n\n KingUI: { preload: false, name: 'KingUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.弹窗, motion: false },\n KingInfoUI: { preload: false, name: 'KingInfoUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.二级弹窗, motion: false },\n KingDressUI: { preload: false, name: 'KingDressUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.二级弹窗, motion: false },\n KingDressDecUI: { preload: false, name: 'KingDressDecUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n KingSetUI: { preload: false, name: 'KingSetUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.二级弹窗, motion: false },\n\n MailUI: { preload: false, name: 'MailUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.二级弹窗, motion: false },\n MailDecUI: { preload: false, name: 'MailDecUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n\n KingSignInUI: { preload: false, name: 'KingSignInUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n DayTaskBuyUI: { preload: false, name: 'DayTaskBuyUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n KingSexUI: { preload: false, name: 'KingSexUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n\n KingNameUI: { preload: false, name: 'KingNameUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n KingAccountUI: { preload: false, name: 'KingAccountUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n KingNoticeUI: { preload: false, name: 'KingNoticeUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n ServerListUI: { preload: false, name: 'ServerListUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n KingCdkUI: { preload: false, name: 'KingCdkUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n KingCustomerUI : { preload: false, name: 'KingCustomerUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.三级弹窗, motion: false },\n AdvanceHeroUI: { preload: false, name: 'AdvanceHeroUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n AdvanceShowUI: { preload: false, name: 'AdvanceShowUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n AdvanceSoldiersUI: { preload: false, name: 'AdvanceSoldiersUI', path: 'prefabs/', bundle: 'resources', layer: UILayer.最顶顶层, motion: false },\n // GameWin: { preload: true, name: 'GameWin', path: 'game/hall/', bundle: 'prefabs', layer: UILayer.背景, motion: false },\n // MissionChooseUI: { preload: false, name: 'MissionChooseUI', path: 'game/mission/', bundle: 'prefabs', layer: UILayer.背景, motion: false },\n // MissionBoxUI: { preload: false, name: 'MissionBoxUI', path: 'game/mission/', bundle: 'prefabs', layer: UILayer.背景, motion: false },\n // KeFuLoadingUI: { preload: false, name: 'KeFuLoadingUI', path: 'prefab/', bundle: 'net_kefu', layer: UILayer.最顶顶层, motion: true },\n // Age12LoadingUI: { preload: false, name: 'Age12LoadingUI', path: 'prefab/', bundle: 'net_kefu', layer: UILayer.最顶顶层, motion: true },\n //功能解锁\n // FunctionUnlockUI: { preload: true, name: 'FunctionUnlockUI', path: 'game/hall/', bundle: 'prefabs', layer: UILayer.最顶层, motion: true },\n // MessageBox: { preload: false, name: 'MessageBox', path: 'game/', bundle: 'prefabs', layer: UILayer.最顶层, motion: true, pauseGame: true },\n // ServerListWin: { preload: false, name: 'ServerListWin', path: 'prefab/', bundle: 'net_serverlist', layer: UILayer.三级弹窗, motion: false },\n }\n}","\r\nexport enum E_VIDEO_STATE {\r\n FAIL = -2,\r\n SUCC = 0,\r\n CANCLE = -1\r\n}\r\n\r\nexport enum EBATTLE_MODE {\r\n None = 0,\r\n MISSION = 1 //主线\r\n}","import { _decorator, macro, game, Node, Game, sp, sys, view, Component as CC_Component, Canvas } from 'cc';\r\nimport { Widget, debug, director } from 'cc';\r\nconst { ccclass, property } = _decorator;\r\nimport { EDITOR } from 'cc/env';\r\nimport Component from \"../core/component/Component\";\r\nimport { Fsm } from \"../core/FSM/Fsm\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport PoolManager from \"../core/manager/PoolManager\";\r\nimport ResClean from \"../core/manager/ResClean\";\r\nimport WindowManager, { UILayer } from \"../core/manager/WindowManager\";\r\nimport { GameLauchState } from \"./fsm/gameFlow/GameLaunchState\";\r\nimport { GameLoaingState } from \"./fsm/gameFlow/GameLoadingState\";\r\nimport { GameMainState } from \"./fsm/gameFlow/GameMainState\";\r\nimport { GamePreloadState } from \"./fsm/gameFlow/GamePreloadState\";\r\nimport { GameManager } from \"./GameManager\";\r\nimport { NetManager } from \"./NetManager\";\r\nimport { XxxEventReport } from \"./XxxEventReport\";\r\nimport { Camera } from 'cc';\r\nimport { MapViewComp } from '../map/MapViewComp';\r\nimport MainUI from './game/mainui/MainUI';\r\nimport { Logger } from '../../core/common/log/Logger';\r\nimport { Prefab } from 'cc';\r\nimport { DynamicAtlasManager } from 'cc';\r\n\r\nmacro.CLEANUP_IMAGE_CACHE = false;\r\nDynamicAtlasManager.instance.enabled = true;\r\nDynamicAtlasManager.instance.maxFrameSize = 2048;\r\nif (EDITOR) {\r\n // // 重写update方法 达到在编辑模式下 自动播放动画的功能\r\n sp.Skeleton.prototype['update'] = function (dt) {\r\n if (this.paused) return;\r\n dt *= this.timeScale * sp['timeScale'];\r\n if (this.isAnimationCached()) {\r\n // // Cache mode and has animation queue.\r\n if (this._isAniComplete) {\r\n if (this._animationQueue.length === 0 && !this._headAniInfo) {\r\n let frameCache = this._frameCache;\r\n if (frameCache && frameCache.isInvalid()) {\r\n frameCache.updateToFrame();\r\n let frames = frameCache.frames;\r\n this._curFrame = frames[frames.length - 1];\r\n }\r\n return;\r\n }\r\n if (!this._headAniInfo) {\r\n this._headAniInfo = this._animationQueue.shift();\r\n }\r\n this._aime += dt;\r\n if (this._aime > this._headAniInfo.delay) {\r\n let aniInfo = this._headAniInfo;\r\n this._headAniInfo = null;\r\n this.setAnimation(0, aniInfo.animationName, aniInfo.loop);\r\n }\r\n return;\r\n }\r\n this._updateCache(dt);\r\n } else {\r\n // this._updateRealtime(dt);\r\n }\r\n }\r\n}\r\ngame.once(Game.EVENT_ENGINE_INITED, () => {\r\n Logger.logView('引擎修复回调');\r\n})\r\nconst wx = window['wx'];\r\n\r\n@ccclass('GameEntry')\r\nexport default class GameEntry extends Component {\r\n static Inst: GameEntry;\r\n fsm: Fsm;\r\n @property(Node)\r\n container: Node | null = null;\r\n @property(sp.Skeleton)\r\n splash: sp.Skeleton = null;\r\n @property(Node)\r\n splashBgNode: Node | null = null;\r\n @property(MapViewComp)\r\n mapView : MapViewComp = null;\r\n @property(Camera)\r\n mainCamera : Camera = null;\r\n flowObj:any = null;\r\n\r\n @property(Prefab)\r\n bossCome:Prefab = null;\r\n\r\n @property(Prefab)\r\n guideLayer:Prefab = null;\r\n\r\n @property(Prefab)\r\n storyPrefab:Prefab = null;\r\n \r\n start() {\r\n if (sys.os == sys.OS.IOS)//适配下iosipad\r\n {\r\n let size = view.getVisibleSize()\r\n let ratio = size.width / size.height;\r\n if (ratio > 0.7) {\r\n // this.getComponent(Canvas).fitHeight = true\r\n // this.getComponent(Canvas).fitWidth = true\r\n this.getComponent(Widget).updateAlignment()\r\n }\r\n }\r\n GameEntry.Inst = this;\r\n\r\n this.container.addComponent(PoolManager)\r\n this.container.addComponent(ResClean)\r\n WindowManager.Instance().register(this.container)\r\n\r\n\r\n // if(\"__wxConfig\")\r\n\r\n // if (wx) {\r\n // Logger.logView = () => { }\r\n // }\r\n\r\n NetManager.getShareList();\r\n if (sys.platform === sys.Platform.WECHAT_GAME) {\r\n this.checkUpdata()\r\n wx.onShow(this.onGameShow.bind(this));\r\n wx.onHide(this.onGameHide.bind(this));\r\n\r\n try {\r\n wx.onShareAppMessage(() => {\r\n let shareList = GameManager.Instance().shareList;\r\n let info = shareList[Math.floor(Math.random() * shareList.length)];\r\n return {\r\n title: info.title,\r\n imageUrl: info.iconPath,\r\n query: \"UserId=\" + GameManager.Instance().user.Userid//key1=val1&key2=val2\r\n }\r\n })\r\n\r\n wx.showShareMenu({\r\n menus: ['shareAppMessage', 'shareTimeline'],\r\n withShareTicket: true\r\n })\r\n\r\n\r\n let param = window['wx'].getLaunchOptionsSync();\r\n// Logger.logView(\"启动参数\", param)\r\n GameManager.Instance().user.query = param.query || {};\r\n GameManager.Instance().user.scene = param.nowScene;\r\n\r\n const res = wx.getSystemInfoSync()\r\n Logger.logView(res.model)\r\n Logger.logView(res.pixelRatio)\r\n Logger.logView(res.windowWidth)\r\n Logger.logView(res.windowHeight)\r\n Logger.logView(res.language)\r\n Logger.logView(res.version)\r\n Logger.logView(res.platform)\r\n GameManager.Instance().user.systemInfo = res\r\n // Logger.logView(\"启动query:\", GameManager.Instance().user.query)\r\n } catch (error) {\r\n\r\n }\r\n\r\n } else {\r\n game.on(Game.EVENT_SHOW, this.onGameShow, this);\r\n game.on(Game.EVENT_HIDE, this.onGameHide, this);\r\n }\r\n\r\n this.fsm = Fsm.Create('game_flow', GameManager.Instance(), [\r\n new GameLauchState(),\r\n new GameLoaingState(),\r\n new GamePreloadState(),\r\n new GameMainState()\r\n ], true)\r\n this.fsm.Start(GameLauchState);\r\n\r\n GameManager.Instance().fms = this.fsm;\r\n }\r\n\r\n isShowSplash = false;\r\n ShowSplash() {\r\n if (this.isShowSplash) return;\r\n this.isShowSplash = true;\r\n this.splash.node.removeFromParent();\r\n this.splashBgNode.removeFromParent();\r\n WindowManager.Instance().getLayer(UILayer.最顶层).addChild(this.splashBgNode);\r\n WindowManager.Instance().getLayer(UILayer.最顶层).addChild(this.splash.node);\r\n this.splash.node.active = true;\r\n this.splashBgNode.active = true;\r\n this.splash.setAnimation(0, 'idle', false);\r\n GameManager.Instance().timer.once(8, this, () => {\r\n\r\n GameManager.Instance().splash = false;\r\n\r\n this.DestroySplash();\r\n XxxEventReport.sendEvent(\"loading完进入动画页人数-新用户\")\r\n });\r\n }\r\n\r\n DestroySplash() {\r\n // TODO\r\n // if (this.splash == null) return;\r\n // this.splash.enabled = false;\r\n // this.splash.skeletonData.textures.forEach(t => {\r\n // t.destroy();\r\n // })\r\n // this.splash.skeletonData.destroy();\r\n // this.splash.node.destroy();\r\n // this.splashBgNode.destroy();\r\n // this.splashBgNode = null;\r\n // this.splash = null;\r\n }\r\n\r\n private onGameShow() {\r\n EventManager.Inst.event(EventType.GameShow);\r\n director.resume()\r\n // if (!param || !param.query) return\r\n\r\n // Logger.logView(\"onShow参数:\", JSON.stringify(param.query))\r\n // if (param.query) {\r\n // for (const key in param.query) {\r\n\r\n // GameManager.Instance().user.query[key] = param.query[key];\r\n // }\r\n // }\r\n // Logger.logView(\"onShow参数合并后:\", GameManager.Instance().user.query)\r\n }\r\n\r\n private onGameHide() {\r\n EventManager.Inst.event(EventType.GameHide);\r\n director.pause();\r\n }\r\n\r\n frameCount = 0;\r\n frameTimer = 0;\r\n frame = 0;\r\n protected update(dt: number): void {\r\n this.frameTimer += dt;\r\n this.frameCount++;\r\n if (this.frameTimer >= 1) {\r\n this.frameTimer -= 1;\r\n this.frame = this.frameCount;\r\n this.frameCount = 0;\r\n }\r\n this.fsm.Owner.timer._update(dt);\r\n this.fsm.OnUpdate(dt);\r\n\r\n if(this.mapView && this.mapView.nowScene){\r\n this.mapView.nowScene!.update(dt);\r\n }\r\n }\r\n checkUpdata() {\r\n try {\r\n if (window[\"wx\"]) {\r\n if (\"function\" == typeof window[\"wx\"].getUpdateManager) {\r\n const t = window[\"wx\"].getUpdateManager();\r\n t.onCheckForUpdate(function (t) {\r\n Logger.logView(t.hasUpdate);\r\n }), t.onUpdateReady(() => {\r\n window[\"wx\"].showModal({\r\n title: \"更新提示\",\r\n content: \"有新版本啦!,赶快开启新的历程吧~\",\r\n success: function (res) {\r\n if (res.confirm) {\r\n // 调用 applyUpdate 应用新版本并重启\r\n t.applyUpdate();\r\n } else {\r\n window[\"wx\"].showToast({\r\n icon: \"none\",\r\n title: \"下一次启动时会使用新版本\",\r\n });\r\n }\r\n },\r\n });\r\n }), t.onUpdateFailed(function () {\r\n Logger.logView(\"新的版本下载失败\");\r\n });\r\n }\r\n }\r\n } catch (e) {\r\n Logger.logView(\" error checkUpdate\");\r\n }\r\n }\r\n}","// /**\n// * 刚进入游戏要处理的\n// */\n\nimport { _decorator } from 'cc';\nimport { DataManager } from \"../../../AutoStorages/DataManager\";\nimport { FsmState } from \"../../../core/FSM/FsmState\";\nimport { add_state_map } from \"../../../core/FSM/FsmState_Decorator\";\nimport { GameManager } from \"../../GameManager\";\nimport { GamePreloadState } from \"./GamePreloadState\";\n\n@add_state_map('GameLauchState')\nexport class GameLauchState extends FsmState {\n OnInit() {\n this.Owner.timer.frameLoop(20, this, () => {\n DataManager.inst.Save();\n });\n }\n\n OnEnter(...params: any[]) {\n }\n\n OnUpdate(dt: number) {\n if (this.CheckAllTaskDone()) {\n this.ChangeState(GamePreloadState);\n }\n }\n\n OnLeave() {\n }\n\n OnDestroy() {\n }\n}","import { _decorator, Prefab, log } from 'cc';\nimport GameConst from \"../../../core/common/GameConst\";\nimport { FsmState } from \"../../../core/FSM/FsmState\";\nimport { add_state_map } from \"../../../core/FSM/FsmState_Decorator\";\nimport PoolManager from \"../../../core/manager/PoolManager\";\nimport Utils from \"../../../core/utils/Utils\";\nimport GameEntry from \"../../GameEntry\";\nimport { GameManager } from \"../../GameManager\";\nimport { RouteUser } from \"../../routes/RouteUser\";\nimport { GameMainState } from \"./GameMainState\";\nimport ConfigManager from '../../../_config/ConfigManager';\nimport {initWebSocket} from \"../../../core/WebSocket/WebSocketMgr\"\nimport { Logger } from '../../../../core/common/log/Logger';\n\n@add_state_map('GameLoaingState')\nexport class GameLoaingState extends FsmState {\n OnInit() {\n }\n loadingData: { progress: number };\n\n OnEnter(loadingData: { progress: number }) {\n Logger.logView(\"onenter\")\n this.loadingData = loadingData;\n this.done = false;\n this.splashed = false;\n this.offline = false;\n this.AddTaskTag('loading config');\n this.AddTaskTag(\"login\");\n ConfigManager.GetInstance().init(() => {\n this.FlagTaskDone('loading config');\n RouteUser.login(() => {\n PoolManager.Instance().init();\n initWebSocket();\n })\n })\n }\n offline = false;\n private done = false;\n splashed = false;\n OnUpdate(dt: number) {\n let step = 1 / this.taskTag.size;\n this.loadingData.progress = 0;\n this.taskTag.forEach(v => {\n if (v) {\n this.loadingData.progress += step;\n }\n });\n if (this.CheckAllTaskDone() && !this.done) {\n if (GameManager.Instance().splash) {\n if (!this.splashed) {\n this.splashed = true;\n GameEntry.Inst.ShowSplash();\n }\n return;\n }\n this.done = true;\n GameEntry.Inst.DestroySplash();\n this.ChangeState(GameMainState);\n }\n }\n OnLeave() {\n }\n\n OnDestroy() {\n }\n}","import { _decorator } from 'cc';\nimport GameConst from \"../../../core/common/GameConst\";\nimport { FsmState } from \"../../../core/FSM/FsmState\";\nimport { add_state_map } from \"../../../core/FSM/FsmState_Decorator\";\nimport BusyLoadingManager, { BUSY_TYPE } from \"../../../core/manager/BusyLoadingManager\";\nimport {EventType } from \"../../../core/manager/EventManager\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { EBATTLE_MODE } from \"../../GameDefines\";\nimport { GameManager } from \"../../GameManager\";\n\n@add_state_map('GameMainState')\nexport class GameMainState extends FsmState{\n\n OnInit() {\n }\n\n worker: any;\n OnEnter(mode: EBATTLE_MODE): void {\n // this.Owner.timer.once(1, this,this.goToBattle);\n //BusyLoadingManager.ins.addBusy(BUSY_TYPE.LONG)\n // WindowManager.Instance().open(GameConst.winPath.GameWin, null, false).then(() => {\n // WindowManager.Instance().removeWindow(GameConst.winPath.EnterUI, true);\n\n // Utils.releaseAssetByName(GameConst.winPath.EnterUI.bundle, GameConst.winPath.EnterUI.path + GameConst.winPath.EnterUI.name);\n \n Utils.releaseAssetByName(GameConst.winPath.WebLoadingUI.bundle, GameConst.winPath.WebLoadingUI.path + GameConst.winPath.WebLoadingUI.name);\n \n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.LONG)\n this.checkFunctionOpen();\n //}\n //)\n\n this.AddEventTrigger(EventType.HTTP_TIME_OUT, this.onHttpTimeOut);\n }\n\n private async checkFunctionOpen() {\n GameManager.Instance().timer.once(1, this, () => {\n GameManager.Instance().checkFunctionOpen();\n })\n }\n\n onHttpTimeOut() {\n }\n\n OnUpdate(dt: number) {\n }\n\n OnLeave() {\n }\n\n OnDestroy() {\n }\n}","import { _decorator, sys } from 'cc';\r\nimport { PREVIEW } from \"cc/env\";\r\nimport { FunctionOpenData } from \"../AutoStorages/PersistentData/FunctionOpenData\";\r\nimport GameConst from \"../core/common/GameConst\";\r\nimport { Fsm } from \"../core/FSM/Fsm\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport Singleton from \"../core/manager/Singleton\";\r\nimport WindowManager from \"../core/manager/WindowManager\";\r\nimport { Timer } from \"../core/utils/Timer\";\r\nimport Utils from \"../core/utils/Utils\";\r\nimport { ModelUser } from \"./ModelUser\";\r\nimport { Logger } from '../../core/common/log/Logger';\r\n\r\nexport class GameManager extends Singleton {\r\n mpage: string = \"btn_battle\";\r\n GM_Mode = false;\r\n Deading = false;\r\n shareList: any[] = [];\r\n shareList2: any[] = [];\r\n ServerVersion: string = GameConst.LocalVersion;//服务器版本 本地版本低于服务器版本 表示旧版本 功能全部开启 \r\n payImgList: any[] = []\r\n WeCom: any[] = []//企业微信\r\n Mp: any[] = []//公众号\r\n Kefu: any[] = []//客服\r\n DailyChallengeScale = 0.8;\r\n DailyGoldScale = 0.8;\r\n fms: Fsm = null;\r\n splash = false;\r\n debug = false;\r\n workerOpen = true;\r\n needLerpView = false;\r\n battleSpeedCD = 30;\r\n checkCD = 30;\r\n checkAp = 150000;\r\n checkHp = 300000;\r\n skipVersionCheck = false;\r\n public YuEUI(yue: number, callback: (b: boolean) => void) {\r\n // WindowManager.Instance().open(GameConst.winPath.MessageBox, {\r\n // showcancle: true,\r\n // content: \"你有余额\" + yue + \"元是否余额购买?\",\r\n // callback\r\n // })\r\n }\r\n\r\n ShowDamage() {\r\n return this.user.blacklist == 2;\r\n }\r\n\r\n //是否审核版本\r\n isCloseVersion() {\r\n if (this.skipVersionCheck) return false;\r\n return sys.os == \"iOS\" && Utils.compareVersion(GameManager.Instance().ServerVersion, GameConst.LocalVersion) <= 0\r\n }\r\n\r\n get cachepre() {\r\n if (Utils.compareVersion(\"1.1.8\", GameConst.LocalVersion) > 0) {\r\n Logger.logView(\"小于 118\")\r\n return \"\";\r\n } else {\r\n Logger.logView(\"大于等于 118\")\r\n return \"\" + this.user.Userid;\r\n }\r\n }\r\n\r\n //账号数据\r\n user: ModelUser = new ModelUser();\r\n get nickName() {\r\n return this.user.nickname == \"\" ? \"用户\" + this.user.Userid : this.user.nickname;\r\n }\r\n\r\n set nickName(v: string) {\r\n this.user.nickname = v;\r\n }\r\n\r\n constructor() {\r\n super();\r\n // this.debug = !window['wx'];\r\n }\r\n\r\n public Clear() {\r\n var query = JSON.stringify(this.user.query)\r\n this.user = new ModelUser();\r\n this.user.query = JSON.parse(query)\r\n this.mpage = \"btn_battle\";\r\n }\r\n\r\n private offServTimestap = 0;\r\n TimeSyn(ServTimestap: number) {\r\n let offServTimestap = ServTimestap - Date.now() / 1000\r\n if (Math.abs(offServTimestap) > 5) {\r\n this.offServTimestap = offServTimestap;\r\n Logger.logView(\"同步时间\"+ this.offServTimestap)\r\n }\r\n }\r\n\r\n NowSecond() {\r\n return Math.floor(Date.now() / 1000) + this.offServTimestap;\r\n }\r\n\r\n setUserDate(data: any) {\r\n if (!data) return\r\n let { info, equips, accessorys, function_open, activity_info, heroList, heroMatList } = data;\r\n if (PREVIEW) {\r\n if (GameManager.Instance().user.blacklist == 2) {\r\n Logger.logView(info)\r\n }\r\n }\r\n for (const key in info) {\r\n if (undefined !== GameManager.Instance().user[key]) {\r\n GameManager.Instance().user[key] = info[key]\r\n }\r\n else {\r\n Logger.logView(\"未赋值:\", key)\r\n }\r\n }\r\n if (info) {\r\n let ServTimestap = info[\"ServTimestap\"] || GameManager.Instance().NowSecond();\r\n GameManager.Instance().TimeSyn(ServTimestap)\r\n }\r\n\r\n if (function_open)\r\n FunctionOpenData.Int.function_open = function_open.map(a => Number(a));\r\n\r\n EventManager.Inst.event(EventType.ITEM_COUNT_CHANGE);\r\n }\r\n\r\n /**游戏全局时间,由cocos统一托管 */\r\n timer: Timer = new Timer();\r\n public checkFunctionOpen() {\r\n this.timer.frameOnce(1, this, () => {\r\n let list = [];\r\n if (list.length > 0) {\r\n let ids = []\r\n list.forEach(cfg => {\r\n ids.push(cfg.id)\r\n FunctionOpenData.Int.function_open.push(cfg.id);\r\n })\r\n\r\n // WindowManager.Instance().open(GameConst.winPath.FunctionUnlockUI, list);\r\n } else {\r\n }\r\n })\r\n }\r\n}","import { _decorator } from 'cc';\nexport class GameMemConst{\n /**怪物击杀数偏移 */\n static killcount_offset = -9;\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { Vec3 } from \"cc\";\r\nimport { RoleNumericMap } from \"../att/RoleNumericMap\";\r\nimport { AttType, FightMapEnum, PveTypeEnum } from \"../enum/Enum\";\r\nimport { GebolInTypeEnum } from \"../role/GebolinView\";\r\nimport { send2client } from \"../core/WebSocket/WebSocketMgr\";\r\nimport { c1006, p_army_wear_equip, p_bat_army, p_bat_hero } from \"../proto/proto\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { MapModelComp } from \"../map/MapModel\";\r\nimport LoadingUiComp from \"../modules/loading/LoadingUiComp\";\r\nimport { instantiate } from \"cc\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { view } from \"cc\";\r\nimport { MuBeiItemComp } from \"../item/MuBeiItemComp\";\r\nimport { Pass, PassPoxy } from \"../modules/game/proxy/PassPoxy\";\r\nimport WindowManager from \"../core/manager/WindowManager\";\r\nimport GameConst from \"../core/common/GameConst\";\r\nimport { dataUser } from \"../modules/gameData/dataUser\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { assetManager } from \"cc\";\r\nimport { FuBenOpenData } from \"../modules/game/proxy/FuBenProxy\";\r\n\r\n/***\r\n * 游戏中的基础数据件\r\n * 我希望在这里面处理一些游戏数据逻辑\r\n*/\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('GameModle')\r\nexport class GameModleComp extends Component{\r\n /**\r\n * @zh 单例\r\n */\r\n public static instance: GameModleComp;\r\n /**\r\n * @zh 静态获取单例函数\r\n * @return 单例 \r\n */\r\n public static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new GameModleComp();\r\n }\r\n return this.instance;\r\n }\r\n mapInit:boolean = false;\r\n eventLoad:boolean = false;\r\n\r\n gameTime:number = 0;\r\n isOpenGame:boolean = false;\r\n openSpineGm:boolean = false;\r\n\r\n attTypeArr:Array = [\"None\",\"atkValue\",\"defValue\",\"hpValue\",\"baoJiRate\",\"baoJiHurtRate\",\"deBaoJiRate\"\r\n ,\"atkRate\",\"defRate\",\"hpRate\",\"hurtRate\",\"deHurtRate\",\"deShanBiRate\",\"mingZhongRate\",\"skillHurtRate\",\r\n \"zhiLiaoRate\",\"deJianLiaoRate\",\"HpMax\",\"EndValue\"];\r\n maxValue:number = 10000;\r\n /**攻击系数*/\r\n miulAtk:number = 1;\r\n\r\n /**当前关卡ID*/\r\n selectGuankaId: number = 0;\r\n /**当前游戏地图ID*/\r\n gameMapId: number = 1;\r\n /**是否挑战BOSS失败*/\r\n isKillBossFail:boolean = false;\r\n /**近战坐标系数*/\r\n jinzhanPointIndex: number = 0;\r\n /**近战坐标回收*/\r\n jinzhanPointArr:Array = [];\r\n /**远程坐标系数*/\r\n yuanchengPointIndex: number = 0;\r\n /**远程坐标回收*/\r\n yuanchengPointArr:Array = [];\r\n /**近战坐标系数*/\r\n heroJinzhanPointIndex: number = 0;\r\n /**近战坐标回收*/\r\n heroJinzhanPointArr:Array = [];\r\n /**远程坐标系数*/\r\n heroYuanchengPointIndex: number = 0;\r\n /**远程坐标回收*/\r\n heroYuanchengPointArr:Array = [];\r\n\r\n private _loadResource: string = null;\r\n public get loadResource(): string {\r\n return this._loadResource;\r\n }\r\n public set loadResource(value: string) {\r\n this._loadResource = value;\r\n }\r\n\r\n /**玩家是否进入副本*/\r\n private _isInCopy: boolean = false;\r\n public get isInCopy(): boolean {\r\n return this._isInCopy;\r\n }\r\n public set isInCopy(value: boolean) {\r\n this._isInCopy = value;\r\n }\r\n /***玩家副本转场数据*/\r\n private _transPveData: FuBenOpenData;\r\n public get transPveData(): FuBenOpenData {\r\n return this._transPveData;\r\n }\r\n public set transPveData(value: FuBenOpenData) {\r\n this._transPveData = value;\r\n }\r\n /**角色装备*/\r\n private _equipArr: Array = [];\r\n public get equipArr(): Array {\r\n return this._equipArr;\r\n }\r\n public set equipArr(value: Array) {\r\n this._equipArr = value;\r\n }\r\n /**服务器时间*/\r\n private _serverTime:number = 3;\r\n /**BOSS入场事件*/\r\n bossInTime:number = 1000;\r\n bossDieTime:number = 25;\r\n fuhuoTime:number = 15;\r\n fuhuoMap:Map = new Map();\r\n fuhuoPreArr:Array = [];\r\n shakeCameraTime:number = 0.4;\r\n shakeCameraOff:number = 50;\r\n public get serverTime(): number {\r\n return this._serverTime;\r\n }\r\n public set serverTime(value: number) {\r\n this._serverTime = value;\r\n }\r\n /**服务器验算需要的战斗数据*/\r\n private _dieGebolin: Array = [];\r\n public get dieGebolin(): Array {\r\n return this._dieGebolin;\r\n }\r\n public set dieGebolin(value: Array) {\r\n this._dieGebolin = value;\r\n }\r\n\r\n private _heroFight: Array = [];\r\n public get heroFight(): Array {\r\n return this._heroFight;\r\n }\r\n public set heroFight(value: Array) {\r\n this._heroFight = value;\r\n }\r\n\r\n private _copyHeroFight: Array = [];\r\n public get copyHeroFight(): Array {\r\n return this._copyHeroFight;\r\n }\r\n public set copyHeroFight(value: Array) {\r\n this._copyHeroFight = value;\r\n }\r\n private _nowGebolinNum: number = 0;\r\n public get nowGebolinNum(): number {\r\n return this._nowGebolinNum;\r\n }\r\n public set nowGebolinNum(value: number) {\r\n this._nowGebolinNum = value;\r\n }\r\n private _newGebolinNum: number = 0;\r\n public get newGebolinNum(): number {\r\n return this._newGebolinNum;\r\n }\r\n public set newGebolinNum(value: number) {\r\n this._newGebolinNum = value;\r\n }\r\n private _overGebolinNum: number = 0;\r\n public get overGebolinNum(): number {\r\n return this._overGebolinNum;\r\n }\r\n public set overGebolinNum(value: number) {\r\n this._overGebolinNum = value;\r\n }\r\n private _dieGebolinNum: number = 0;\r\n public get dieGebolinNum(): number {\r\n return this._dieGebolinNum;\r\n }\r\n public set dieGebolinNum(value: number) {\r\n this._dieGebolinNum = value;\r\n }\r\n\r\n private _newWordChat: number = 0;\r\n public get newWordChat(): number {\r\n return this._newWordChat;\r\n }\r\n public set newWordChat(value: number) {\r\n this._newWordChat = value;\r\n }\r\n private _newSysChat: number = 0;\r\n public get newSysChat(): number {\r\n return this._newSysChat;\r\n }\r\n public set newSysChat(value: number) {\r\n this._newSysChat = value;\r\n }\r\n\r\n\r\n private _jumpGuide: boolean = false;\r\n public get jumpGuide(): boolean {\r\n return this._jumpGuide;\r\n }\r\n public set jumpGuide(value: boolean) {\r\n this._jumpGuide = value;\r\n }\r\n\r\n private _bossComeTime: number = 0;\r\n public get bossComeTime(): number {\r\n return this._bossComeTime;\r\n }\r\n public set bossComeTime(value: number) {\r\n this._bossComeTime = value;\r\n }\r\n\r\n private isWeb:boolean = true\r\n\r\n\r\n private _cdnMapSrc: string = \"https://sxres.xhhycd.com/GBL/remote/\";\r\n public get cdnMapSrc(): string {\r\n return this.isWeb ? this._cdnMapSrc : \"\";\r\n }\r\n public set cdnMapSrc(value: string) {\r\n this._cdnMapSrc = value;\r\n }\r\n\r\n\r\n /** 提供 VM 组件使用的数据 */\r\n vm: any = {};\r\n // /** 角色属性 */\r\n // attributes: RoleNumericMap = new RoleNumericMap(this.vm);\r\n gameAtt:Map = new Map();\r\n restData(){\r\n this.mapInit = false;\r\n this.eventLoad = false;\r\n this.gameTime = 0;\r\n this.isOpenGame = false;\r\n this.openSpineGm = false;\r\n this.miulAtk = 1;\r\n this.selectGuankaId = 0;\r\n this.gameMapId = 1;\r\n this.isKillBossFail = false;\r\n this.jinzhanPointIndex = 0;\r\n this.jinzhanPointArr = [];\r\n this.yuanchengPointIndex = 0;\r\n this.yuanchengPointArr = [];\r\n this.heroJinzhanPointIndex = 0;\r\n this.heroJinzhanPointArr = [];\r\n this.heroYuanchengPointIndex = 0;\r\n this.heroYuanchengPointArr = [];\r\n this._isInCopy = false;\r\n this._transPveData;\r\n this.fuhuoMap.clear();\r\n this.fuhuoMap = new Map();\r\n this.fuhuoPreArr = [];\r\n }\r\n\r\n starTime(){\r\n this.schedule(()=>{\r\n this.gameTime++;\r\n this.fuhuoHero();\r\n EventManager.Inst.event(EventType.GAME_TIME_CHANGE);\r\n },1)\r\n this.schedule(()=>{\r\n this.bossComeTime--;\r\n EventManager.Inst.event(EventType.BOSS_LAI_XI_TIME_CHANGE);\r\n },1)\r\n }\r\n\r\n private fuhuoHero(){\r\n this.fuhuoMap.forEach((time:number,id:number)=>{\r\n this.fuhuoMap.set(id , time-1);\r\n if(this.fuhuoMap.get(id) <= 0){\r\n EventManager.Inst.event(EventType.FUHUO_WUJIANG_CHANGE , id);\r\n this.fuhuoMap.delete(id);\r\n }\r\n })\r\n for(let i = 0 ; i < this.fuhuoPreArr.length ; i++){\r\n this.fuhuoPreArr[i].time--;\r\n }\r\n }\r\n\r\n initAtt(){\r\n \r\n }\r\n /**\r\n * 批量设置角色属性\r\n * @param role 目标角色\r\n * @param data 属性数据\r\n */\r\n addAttributes(type : GebolInTypeEnum , data:string){\r\n if(type == GebolInTypeEnum.None){\r\n for(let i = GebolInTypeEnum.None ; i < GebolInTypeEnum.EndValue ; i++){\r\n let attributes: RoleNumericMap = this.gameAtt.get(i);\r\n }\r\n }else{\r\n let attributes: RoleNumericMap = this.gameAtt.get(type);\r\n // attributes.get(l).value = 0;\r\n }\r\n }\r\n /**进入新的关卡*/\r\n showNewGuanqia(){\r\n MapModelComp.getInstance().mapMonsterIndex = 0;\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n if(Number(pass.jumpmap) == 1){\r\n let view:LoadingUiComp = instantiate(GameEntry.Inst.mapView.nowScene.loadingUI).getComponent(LoadingUiComp);\r\n view.init(PveTypeEnum.None);\r\n GameEntry.Inst.container.addChild(view.node);\r\n EventManager.Inst.event(EventType.CHANGE_REMOVE_MAIN_UI);\r\n }else{\r\n EventManager.Inst.event(EventType.CHANGE_NEW_PASS);\r\n }\r\n }\r\n /**通过哥布林类型获取装备数据*/\r\n getEquipByType(type:GebolInTypeEnum){\r\n for(let i = 0 ; i < this.equipArr.length ; i++){\r\n if(this.equipArr[i].armyType == type){\r\n return this.equipArr[i];\r\n }\r\n }\r\n }\r\n\r\n}","// /**游戏加载前准备工作,eg:启动动画->掉起主包loading界面 */\n\nimport { _decorator, assetManager } from 'cc';\nimport GameConst from \"../../../core/common/GameConst\";\nimport { FsmState } from \"../../../core/FSM/FsmState\";\nimport { add_state_map } from \"../../../core/FSM/FsmState_Decorator\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport { GameManager } from \"../../GameManager\";\nimport { GameLoaingState } from \"./GameLoadingState\";\n\n@add_state_map('GamePreloadState')\nexport class GamePreloadState extends FsmState{\n OnInit() {\n }\n loadingData: { progress: number };\n OnEnter(switchServer = false) {\n console.log('切换服务器', switchServer);\n this.AddTaskTag(\"loadingUI\");\n var data = this.loadingData = { progress: 0 }\n if (switchServer) {\n GameManager.Instance().Clear();\n }\n // WindowManager.Instance().open(GameConst.winPath.EnterUI, data, false).then(() => {\n // // WindowManager.Instance().clearWindows(GameConst.winPath.EnterUI.name);\n // this.FlagTaskDone(\"loadingUI\")\n // // this.loadSubpackage('sounds', null);\n // })\n WindowManager.Instance().open(GameConst.winPath.WebLoadingUI, data, false).then(() => {\n // WindowManager.Instance().clearWindows(GameConst.winPath.EnterUI.name);\n this.FlagTaskDone(\"loadingUI\")\n // this.loadSubpackage('sounds', null);\n })\n }\n\n loadSubpackage(bundleName: string, callback) {\n assetManager.loadBundle(bundleName, (e, b) => {\n callback && callback()\n })\n }\n OnUpdate(dt: number) {\n if (this.CheckAllTaskDone()) {\n this.ChangeState(GameLoaingState, this.loadingData);\n }\n }\n OnLeave() {\n }\n OnDestroy() {\n }\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { Vec3 } from \"cc\";\r\nimport { GebolInAiEnum, GebolinView } from \"../role/GebolinView\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\n\r\n\r\n/***\r\n * 游戏中的基础功能件\r\n * 我希望在这里面处理一些游戏战斗相关数据逻辑\r\n*/\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('GameUtil')\r\nexport class GameUtil extends Component{\r\n /**\r\n * @zh 单例\r\n */\r\n private static instance: GameUtil;\r\n /**\r\n * @zh 静态获取单例函数\r\n * @return 单例 \r\n */\r\n public static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new GameUtil();\r\n }\r\n return this.instance;\r\n }\r\n\r\n /**获取当前地图所有在战斗状态的士兵*/\r\n getAllFightSoldiers():Array{\r\n let arr:Array = [];\r\n let map: Map = GameEntry.Inst.mapView.gebolinMap;\r\n let soldier:GebolinView;\r\n for(let key in map){\r\n soldier = map[key];\r\n if(soldier.AiType == GebolInAiEnum.Fight && !soldier.isDie){\r\n arr.push(soldier);\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n\r\n}","import { Component } from \"cc\";\r\nimport { GebolInAiEnum, GebolInAttTypeEnum, GebolInTypeEnum, GebolinView } from \"./GebolinView\";\r\nimport { BuildAiTypeEnum, BuildHeroType, BuildPart, BuildView } from \"../map/layer/BuildView\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { Vec3 } from \"cc\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport ConfigManager from \"../_config/ConfigManager\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BuildTopView } from \"../map/layer/BuildTopView\";\r\nimport { SkillIntervalComp } from \"../skill/SkillInterval\";\r\nimport { SpineGmView } from \"../modules/game/mainui/SpineGmView\";\r\nimport { BossView } from \"./BossView\";\r\nimport { GebolinMapType } from \"./Role\";\r\nimport { FuBenProxy } from \"../modules/game/proxy/FuBenProxy\";\r\nimport { GuideManager } from \"../modules/game/guilde/GuideManager\";\r\n\r\nexport class GebolinAiComp{\r\n gebolin:GebolinView;\r\n\r\n constructor(gebolin:GebolinView){\r\n this.gebolin = gebolin;\r\n }\r\n\r\n update(dt){\r\n if(!GameModleComp.getInstance().isOpenGame){\r\n return;\r\n }\r\n /**场景BOSS*/\r\n if(this.gebolin.gebolinMapType == GebolinMapType.PveBoss){\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n if(this.gebolin.AiType == GebolInAiEnum.Dead){\r\n return;\r\n }\r\n if(this.gebolin.isDie){\r\n return;\r\n }\r\n switch(this.gebolin.AiType){\r\n case GebolInAiEnum.Chusheng:\r\n this.onLive();\r\n break;\r\n case GebolInAiEnum.KaiJia:\r\n this.addKaijia();\r\n break;\r\n case GebolInAiEnum.MaoZi:\r\n this.addMaozi();\r\n break;\r\n case GebolInAiEnum.LiveJianzhu:\r\n this.liveJianzhu();\r\n break;\r\n case GebolInAiEnum.FindBoss:\r\n this.addFindBoss();\r\n break;\r\n case GebolInAiEnum.ToBoss:\r\n this.addToboss();\r\n break;\r\n case GebolInAiEnum.Fight:\r\n this.addFight();\r\n break;\r\n case GebolInAiEnum.Wait:\r\n this.haveNextPoint();\r\n break;\r\n case GebolInAiEnum.Rest:\r\n this.toRest();\r\n break;\r\n case GebolInAiEnum.ToRest:\r\n this.walkMore();\r\n break;\r\n }\r\n }else if(this.gebolin.gebolinMapType == GebolinMapType.PveCopy){\r\n if(GuideManager.getInstance().isInGuide){\r\n return;\r\n }\r\n if(this.gebolin.AiType == GebolInAiEnum.Dead){\r\n return;\r\n }\r\n if(this.gebolin.isDie){\r\n return;\r\n }\r\n switch(this.gebolin.AiType){\r\n case GebolInAiEnum.FindBoss:\r\n this.addFindCopyBoss();\r\n break;\r\n case GebolInAiEnum.Fight:\r\n this.addCopyFight();\r\n break;\r\n }\r\n }\r\n }\r\n /**出生选择武器店*/\r\n private onLive(){\r\n let buildMap:Map = GameEntry.Inst.mapView.buildMap;\r\n let build:BuildView;\r\n let buildArr:Array = [];\r\n for(const [key, value] of Array.from(buildMap.entries())) {\r\n if(value instanceof BuildView){\r\n build = value;\r\n if(Number(key) == BuildHeroType.ZhanShiWuqi && build.waitNum < 3){\r\n buildArr.push(build);\r\n }else if(Number(key) == BuildHeroType.FaShiWuQi && build.waitNum < 3){\r\n buildArr.push(build);\r\n }else if(Number(key) == BuildHeroType.CiKeWuQi && build.waitNum < 3){\r\n buildArr.push(build);\r\n }else if(Number(key) == BuildHeroType.PaoShouWuQi && build.waitNum < 3){\r\n buildArr.push(build);\r\n }\r\n }\r\n }\r\n if(buildArr.length){\r\n buildArr.sort((a,b)=>{\r\n return a.waitNum - b.waitNum\r\n });\r\n buildArr[0].addGebolinToWait(this.gebolin);\r\n this.showToWuqi(buildArr[0]);\r\n }else{\r\n this.gebolin.AiType = GebolInAiEnum.Rest;\r\n }\r\n\r\n }\r\n private showToWuqi(build:BuildView){\r\n this.gebolin.selfBuild = build;\r\n this.gebolin.AiType = GebolInAiEnum.Move;\r\n let v3:Vec3 = this.getPoint(build , this.gebolin);\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3.x , v3.y , 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.Wait;\r\n })\r\n }\r\n /**穿戴铠甲*/\r\n private addKaijia(){\r\n let buildMap:Map = GameEntry.Inst.mapView.buildMap;\r\n let build:BuildView;\r\n for(const [key, value] of Array.from(buildMap.entries())) {\r\n /**建筑上层不可用*/\r\n if(value instanceof BuildView){\r\n build = value;\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.ZhanShi && Number(key) == BuildHeroType.ZhanShiKaiJia && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToKaijia(build);\r\n return;\r\n }\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.FaShi && Number(key) == BuildHeroType.FaShiKaiJia && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToKaijia(build);\r\n return;\r\n }\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.ChiKe && Number(key) == BuildHeroType.CiKeKaiJia && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToKaijia(build);\r\n return;\r\n }\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.PaoShou && Number(key) == BuildHeroType.PaoShouKaiJia && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToKaijia(build);\r\n return;\r\n }\r\n }\r\n }\r\n this.gebolin.showMyHp();\r\n this.gebolin.AiType = GebolInAiEnum.LiveJianzhu;\r\n }\r\n private showToKaijia(build:BuildView){\r\n this.gebolin.selfBuild = build;\r\n this.gebolin.AiType = GebolInAiEnum.Move;\r\n let v3:Vec3 = this.getPoint(build , this.gebolin);\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3.x , v3.y , 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.Wait;\r\n })\r\n }\r\n /**穿戴帽子*/\r\n private addMaozi(){\r\n let buildMap:Map = GameEntry.Inst.mapView.buildMap;\r\n let build:BuildView;\r\n for(const [key, value] of Array.from(buildMap.entries())) {\r\n if(value instanceof BuildView){\r\n build = value;\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.ZhanShi && Number(key) == BuildHeroType.ZhanShiMaoZi && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToMaozi(build);\r\n return;\r\n }\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.FaShi && Number(key) == BuildHeroType.FaShiMaoZi && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToMaozi(build);\r\n return;\r\n }\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.ChiKe && Number(key) == BuildHeroType.CiKeMaoZi && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToMaozi(build);\r\n return;\r\n }\r\n if(this.gebolin.gebolinType == GebolInTypeEnum.PaoShou && Number(key) == BuildHeroType.PaoShouMaoZi && build.waitNum < 3){\r\n build.addGebolinToWait(this.gebolin);\r\n this.showToMaozi(build);\r\n return;\r\n }\r\n }\r\n }\r\n this.gebolin.showMyHp();\r\n this.gebolin.AiType = GebolInAiEnum.LiveJianzhu;\r\n }\r\n private showToMaozi(build:BuildView){\r\n this.gebolin.selfBuild = build;\r\n this.gebolin.AiType = GebolInAiEnum.Move;\r\n let v3:Vec3 = this.getPoint(build , this.gebolin);\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3.x , v3.y , 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.Wait;\r\n })\r\n }\r\n liveJianzhu(){\r\n this.gebolin.AiType = GebolInAiEnum.ToBoss;\r\n this.gebolin.showMyHp()\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , this.gebolin.node.position.x + 120 , this.gebolin.node.position.y + 120, 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.FindBoss;\r\n });\r\n }\r\n private addFindCopyBoss(){\r\n if(this.gebolin.gebolinAttType == GebolInAttTypeEnum.Nil){\r\n return;\r\n } \r\n let mapId:number = Number(FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId).map);\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_bossPoint;\r\n let minX:number = Number(arr[0])-3;\r\n let maxX:number = Number(arr[0]);\r\n let minY:number = Number(arr[1]-3);\r\n let mx:number = Math.random()*10000;\r\n let _x:number = Math.floor(Math.random()*3 + (mx > 5000 ? minX : maxX));\r\n let _y:number = Math.floor(Math.random()*3 + minY);\r\n let point:Vec3 = new Vec3(_x , _y , 1);\r\n this.gebolin.fightPoint = point;\r\n \r\n let v3Point:Vec3 = MapRoadUtils.AStarToPoint(point);\r\n this.gebolin.AiType = GebolInAiEnum.ToBoss\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3Point.x , v3Point.y, 1 , ()=>{\r\n setTimeout(() => {\r\n this.gebolin.AiType = GebolInAiEnum.Fight;\r\n this.gebolin.showIndex();\r\n }, 500);\r\n })\r\n }\r\n /**查找BOSS*/\r\n private addFindBoss(){\r\n if(this.gebolin.gebolinAttType == GebolInAttTypeEnum.Nil){\r\n return;\r\n } \r\n let maps:Maps = MapPoxy.Inst.getMapById(GameModleComp.getInstance().gameMapId);\r\n let pointArr:Array = [];\r\n let point:Vec3 ;\r\n let v3Point:Vec3;\r\n if(this.gebolin.gebolinAttType == GebolInAttTypeEnum.JinZhan){\r\n pointArr = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_combatPoint);\r\n point = pointArr[GameModleComp.getInstance().jinzhanPointIndex];\r\n if(point){\r\n this.gebolin.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().jinzhanPointIndex++;\r\n this.gebolin.AiType = GebolInAiEnum.ToBoss\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3Point.x , v3Point.y, 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.Fight;\r\n this.gebolin.showIndex();\r\n })\r\n this.gebolin.offSpine();\r\n return;\r\n }\r\n point = GameModleComp.getInstance().jinzhanPointArr[0];\r\n if(point){\r\n this.gebolin.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().jinzhanPointArr.splice(0 , 1);\r\n this.gebolin.AiType = GebolInAiEnum.ToBoss\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3Point.x , v3Point.y, 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.Fight;\r\n this.gebolin.showIndex();\r\n })\r\n this.gebolin.offSpine();\r\n return;\r\n }\r\n /**战斗位不存在时候 只能放逐哥布林*/\r\n this.gebolin.AiType = GebolInAiEnum.Rest;\r\n }else if(this.gebolin.gebolinAttType == GebolInAttTypeEnum.YuanCheng){\r\n pointArr = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_archerPoint);\r\n point = pointArr[GameModleComp.getInstance().yuanchengPointIndex];\r\n if(point){\r\n this.gebolin.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().yuanchengPointIndex++;\r\n this.gebolin.AiType = GebolInAiEnum.ToBoss\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3Point.x , v3Point.y, 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.Fight;\r\n this.gebolin.showIndex();\r\n })\r\n this.gebolin.offSpine();\r\n return;\r\n }\r\n point = GameModleComp.getInstance().yuanchengPointArr[0];\r\n if(point){\r\n this.gebolin.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().yuanchengPointArr.splice(0 , 1);\r\n this.gebolin.AiType = GebolInAiEnum.ToBoss\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3Point.x , v3Point.y, 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.Fight;\r\n this.gebolin.showIndex();\r\n })\r\n this.gebolin.offSpine();\r\n return;\r\n }\r\n /**战斗位不存在时候 只能放逐哥布林*/\r\n this.gebolin.AiType = GebolInAiEnum.Rest;\r\n }\r\n \r\n }\r\n /**去往BOSS*/\r\n private addToboss(){\r\n \r\n }\r\n private addCopyFight(){\r\n if(!GameEntry.Inst.mapView.nowFubenBoss){\r\n return;\r\n }\r\n if(this.gebolin.isDie){\r\n return;\r\n }\r\n if(!this.gebolin.isAttackOver){\r\n return;\r\n }\r\n let skill = this.gebolin.modle.skills.get(this.gebolin.skill.SkillModel.id);\r\n if(skill.skillInterval){\r\n return;\r\n }\r\n let sc = skill.SkillModel.casting;\r\n sc.caster = this.gebolin;\r\n if(GameEntry.Inst.mapView.nowFubenBoss && GameEntry.Inst.mapView.nowFubenBoss.isDie){\r\n return;\r\n }\r\n sc.target = GameEntry.Inst.mapView.nowFubenBoss;\r\n sc.skill = skill;\r\n \r\n if(sc.skill.skillInterval){\r\n return;\r\n }\r\n \r\n sc.skill.skillInterval = new SkillIntervalComp();\r\n sc.skill.skillInterval._skill = sc.skill;\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval);\r\n \r\n let comp = sc.skill.skillInterval;\r\n let cd: number = 1;\r\n comp.duration = sc.skill.SkillModel.table.skillcd * cd;\r\n this.gebolin.attack(sc , GameEntry.Inst.mapView.nowFubenBoss, skill);\r\n }\r\n /**开始战斗*/\r\n private addFight(){\r\n // if(true){\r\n // return;\r\n // }\r\n if(!GameEntry.Inst.mapView.nowBoss){\r\n return;\r\n }\r\n if(this.gebolin.isDie){\r\n return;\r\n }\r\n if(!this.gebolin.isAttackOver){\r\n return;\r\n }\r\n let skill = this.gebolin.modle.skills.get(this.gebolin.skill.SkillModel.id);\r\n if(skill.skillInterval){\r\n return;\r\n }\r\n let sc = skill.SkillModel.casting;\r\n sc.caster = this.gebolin;\r\n if(GameEntry.Inst.mapView.nowBoss && GameEntry.Inst.mapView.nowBoss.isDie){\r\n return;\r\n }\r\n sc.target = GameEntry.Inst.mapView.nowBoss;\r\n sc.skill = skill;\r\n \r\n if(sc.skill.skillInterval){\r\n return;\r\n }\r\n \r\n sc.skill.skillInterval = new SkillIntervalComp();\r\n sc.skill.skillInterval._skill = sc.skill;\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval);\r\n \r\n let comp = sc.skill.skillInterval;\r\n let cd: number = 1;\r\n comp.duration = sc.skill.SkillModel.table.skillcd * cd;\r\n this.gebolin.attack(sc , GameEntry.Inst.mapView.nowBoss, skill);\r\n }\r\n /**是否需要进入下一个排队点*/\r\n private haveNextPoint(){\r\n let build:BuildView = this.gebolin.selfBuild;\r\n if(build.buildAiType == BuildAiTypeEnum.Wait){\r\n if(build.getGebolinIndex(this.gebolin) == 0){\r\n this.gebolin.AiType = GebolInAiEnum.Move;\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , build.posV3.x , build.posV3.y, 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.WaitZhuangpei;\r\n })\r\n }\r\n }else{\r\n let v3:Vec3 = this.getPoint(build , this.gebolin);\r\n if(MapRoadUtils.toAStarPoint(this.gebolin.node.position).y != MapRoadUtils.toAStarPoint(v3).y){\r\n this.gebolin.AiType = GebolInAiEnum.Move;\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , v3.x , v3.y , 1 , ()=>{\r\n this.gebolin.AiType = GebolInAiEnum.WaitUp;\r\n })\r\n }else{\r\n this.gebolin.AiType = GebolInAiEnum.WaitUp;\r\n }\r\n }\r\n }\r\n private getPoint(build: BuildView , gebolin:GebolinView):Vec3{\r\n let pos = MapRoadUtils.toAStarPoint(build.node.position);\r\n let v3 = new Vec3(pos.x - (build.getGebolinIndex(gebolin)+1), pos.y - (build.getGebolinIndex(gebolin)+1))\r\n return MapRoadUtils.AStarToPoint(v3)\r\n // return new Vec3(build.posV3.x - (build.getGebolinIndex(gebolin)+1)*20 , build.posV3.y - (build.getGebolinIndex(gebolin)+1)*40)\r\n }\r\n /**武备点人员过多 自我毁灭*/\r\n private toRest(){\r\n this.gebolin.AiType = GebolInAiEnum.ToRest\r\n this.gebolin.showTalk();\r\n let build:BuildView = this.gebolin.selfBuild;\r\n if(build){\r\n if(build.getGebolinIndex(this.gebolin) == 0){\r\n build.removeGetBolin();\r\n }\r\n }\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.gebolin , 1820 , 460 , 1 , ()=>{\r\n this.gebolin.desTory();\r\n })\r\n }\r\n private walkMore(){\r\n let build:BuildView = this.gebolin.selfBuild;\r\n if(build){\r\n if(build.getGebolinIndex(this.gebolin) == 0){\r\n build.removeGetBolin();\r\n }\r\n }\r\n if(this.gebolin.node.position.x > 3000 || this.gebolin.node.position.y > 3000){\r\n this.gebolin.desTory();\r\n }\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { Vec3 } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { tween } from \"cc\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('GebolinHpViewComp')\r\nexport class GebolinHpViewComp extends Component{\r\n @property ( ProgressBar)\r\n hpPro : ProgressBar = null;\r\n\r\n private _progress: number = 0;\r\n public get progress(): number {\r\n return this._progress;\r\n }\r\n public set progress(value: number) {\r\n this._progress = value;\r\n this.hpPro.progress = value;\r\n }\r\n\r\n desTory(){\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n }\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Soldiers } from \"../modules/game/proxy/SoldierProxy\";\r\nimport { RoleModleComp } from \"./RoleModle\";\r\nimport { BaseRole } from \"./Role\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { AttType } from \"../enum/Enum\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { buffEffect, dataBuff } from \"../modules/gameData/dataBuff\";\r\nimport { GebolInTypeEnum, GebolinView } from \"./GebolinView\";\r\nimport { GlobalFunction } from \"../modules/game/common/GlobalFunction\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('GebolinModle')\r\nexport class GebolinModle extends RoleModleComp{\r\n private _soldier: Soldiers;\r\n public get soldier(): Soldiers {\r\n return this._soldier;\r\n }\r\n public set soldier(value: Soldiers) {\r\n this._soldier = value;\r\n this.speed = value.move;\r\n }\r\n init(){\r\n super.init();\r\n }\r\n addRoleSkill(skid: number) {\r\n let skill:Skill = new Skill();\r\n skill.init();\r\n skill.SkillModel.id = skid;\r\n skill.SkillModel.showTable(true , this.role.RoleType);\r\n this.skills.set(skid, skill);\r\n skill.SkillModel.casting.caster = this.role;\r\n skill.SkillModel.casting.skill = skill;\r\n skill.SkillModel.casting.onPassive();\r\n this.role.skill = skill;\r\n // Logger.logView(\"给哥布林\"+this.role.roleId + \"添加技能\" + skid);\r\n }\r\n addAttributes(data:string , isChange:boolean = false){\r\n if(!this.soldier){\r\n return;\r\n }\r\n let havehp:number = 0;\r\n if(isChange){\r\n havehp = this.attributes.get(AttType.hpValue).value;\r\n }\r\n // for(let i = AttType.None ; i < AttType.EndValue ; i++){\r\n // this.attributes.get(i).value = 0;\r\n // }\r\n for(let key in AttType){\r\n this.attributes.get(AttType[key]).value = 0;\r\n }\r\n if(this.soldier!=undefined){\r\n this.attributes.get(AttType.atkValue).value = Number(this.soldier.atk);\r\n this.attributes.get(AttType.defValue).value = Number(this.soldier.def);\r\n this.attributes.get(AttType.hpValue).value = Number(this.soldier.hp);\r\n this.attributes.get(AttType.baoJiRate).value = Number(this.soldier.cs);\r\n this.attributes.get(AttType.baoJiHurtRate).value = Number(this.soldier.vi);\r\n }\r\n let attTypeArr:Array = GameModleComp.getInstance().attTypeArr;\r\n \r\n \r\n let allBuff:buffEffect = dataBuff.Instance().allBuff;\r\n let allArmyBuff:buffEffect = dataBuff.Instance().allArmyBuff;\r\n let typeBuff:buffEffect;\r\n switch((this.role as GebolinView).gebolinType){\r\n case GebolInTypeEnum.ZhanShi:\r\n typeBuff = dataBuff.Instance().zhanShiBuff;\r\n break;\r\n case GebolInTypeEnum.FaShi:\r\n typeBuff = dataBuff.Instance().faShiBuff;\r\n break;\r\n case GebolInTypeEnum.ChiKe:\r\n typeBuff = dataBuff.Instance().ciKeBuff;\r\n break;\r\n case GebolInTypeEnum.PaoShou:\r\n typeBuff = dataBuff.Instance().paoShouBuff;\r\n break;\r\n }\r\n for(let keys in AttType){\r\n if( allBuff && allBuff[AttType[keys]]){\r\n this.attributes.get(AttType[keys]).value += Number(allBuff[AttType[keys]]);\r\n }\r\n if(allArmyBuff && allArmyBuff[AttType[keys]]){\r\n this.attributes.get(AttType[keys]).value += Number(allArmyBuff[AttType[keys]]);\r\n }\r\n if(typeBuff && typeBuff[AttType[keys]]){\r\n this.attributes.get(AttType[keys]).value += Number(typeBuff[AttType[keys]]);\r\n }\r\n }\r\n let hp:number = this.attributes.get(AttType.hpValue).value;\r\n let hpAdd:number = this.attributes.get(AttType.hpRate).value;\r\n if(isChange){\r\n if(havehp > hp){\r\n havehp = hp;\r\n }\r\n this.attributes.get(AttType.HpMax).value = hp;\r\n this.attributes.get(AttType.hpValue).value = havehp;\r\n }else{\r\n this.attributes.get(AttType.HpMax).value = hp;\r\n }\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { AllRoleTypeEnum, AttType, RoleTypeEnum } from \"../enum/Enum\";\r\nimport Utils from \"../core/utils/Utils\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { CharactorDirection } from \"../map/charactor/Charactor\";\r\nimport { sp } from \"cc\";\r\nimport { Color } from \"cc\";\r\nimport { ICharactorClip } from \"../map/charactor/ICharactorClip\";\r\nimport { VillagePoxy } from \"../modules/game/proxy/VillagePoxy\";\r\nimport { Vec3 } from \"cc\";\r\nimport { GebolinAiComp } from \"./GebolinAiComp\";\r\nimport { BuildView } from \"../map/layer/BuildView\";\r\nimport { Label } from \"cc\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { SoldierProxy } from \"../modules/game/proxy/SoldierProxy\";\r\nimport { BossView } from \"./BossView\";\r\nimport { BaseRole, GebolinMapType } from \"./Role\";\r\nimport { GebolinModle } from \"./GebolinModle\";\r\nimport { EffectSingleCase, IEffectParams } from \"../skill/EffectSingleCase\";\r\nimport { SkillCasting } from \"../skill/SkillCasting\";\r\nimport { Model, ModelPoxy } from \"../modules/game/proxy/ModelPoxy\";\r\nimport { Sprite } from \"cc\";\r\nimport { SoldierEquipProxy, SoldiersEquip } from \"../modules/game/proxy/SoldierEquipProxy\";\r\nimport { SpriteFrame } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { p_army_wear_equip, p_bat_army } from \"../proto/proto\";\r\nimport { tween } from \"cc\";\r\nimport { MainTitle, MainTitlePoxy } from \"../modules/game/proxy/MainTitlePoxy\";\r\nimport { SkillEffect } from \"../modules/game/proxy/SkillEffectProxy\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { Prefab } from \"cc\";\r\nimport { GebolinHpViewComp } from \"../item/GebolinHpViewComp\";\r\nimport { instantiate } from \"cc\";\r\nimport { find } from \"cc\";\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('GebolinView')\r\nexport class GebolinView extends BaseRole implements ICharactorClip{\r\n @property(Node)\r\n scaleNodes : Node = null;\r\n @property(Label)\r\n talkLabel : Label = null;\r\n @property(Node)\r\n wuqi:Node = null;\r\n @property(Sprite)\r\n wuqiSprite : Sprite = null;\r\n @property(Sprite)\r\n yifuSprite : Sprite = null;\r\n @property(Sprite)\r\n maoziSprite : Sprite = null;\r\n @property(Sprite)\r\n youWuqiSprite : Sprite = null;\r\n public spine!: sp.Skeleton;\r\n @property(Node)\r\n public fangxiangNode : Node = null;\r\n @property(Node)\r\n public offNode:Node = null;\r\n\r\n @property(Prefab)\r\n hpPre:Prefab = null;\r\n\r\n\r\n hpView:GebolinHpViewComp = null;\r\n\r\n\r\n\r\n private _fightPoint: Vec3;\r\n public get fightPoint(): Vec3 {\r\n return this._fightPoint;\r\n }\r\n public set fightPoint(value: Vec3) {\r\n this._fightPoint = value;\r\n }\r\n private _allZhuangPei: boolean = false;\r\n public get allZhuangPei(): boolean {\r\n return this._allZhuangPei;\r\n }\r\n public set allZhuangPei(value: boolean) {\r\n this._allZhuangPei = value;\r\n }\r\n private _gebolinType: GebolInTypeEnum = GebolInTypeEnum.None;\r\n public get gebolinType(): GebolInTypeEnum {\r\n return this._gebolinType;\r\n }\r\n public set gebolinType(value: GebolInTypeEnum) {\r\n this.p_bat_army.armyType = value;\r\n this._gebolinType = value;\r\n }\r\n private _soldiersID: number = 0;\r\n public get soldiersID(): number {\r\n return this._soldiersID;\r\n }\r\n public set soldiersID(value: number) {\r\n this._soldiersID = value;\r\n (this.modle as GebolinModle).soldier = SoldierProxy.Inst.GetSoldiersDataByID(value);\r\n let str:string = (this.modle as GebolinModle).soldier.model;\r\n \r\n this.showRole(str,()=>{\r\n if(this.gebolinMapType == GebolinMapType.PveCopy){\r\n setTimeout(() => {\r\n this.wearAll();\r\n }, 500);\r\n }\r\n });\r\n }\r\n private gebolinAi:GebolinAiComp;\r\n private _AiType: GebolInAiEnum = GebolInAiEnum.Chusheng;\r\n public get AiType(): GebolInAiEnum {\r\n return this._AiType;\r\n }\r\n public set AiType(value: GebolInAiEnum) {\r\n this._AiType = value;\r\n /**进入战斗之前 需要初始化战士技能等信息 此处是强行把普攻挂成技能*/\r\n if(value == GebolInAiEnum.ToBoss){\r\n this.modle.addRoleSkill(this.soldiersID);\r\n this.modle.addAttributes(\"\");\r\n }\r\n if(value == GebolInAiEnum.Fight){\r\n GameModleComp.getInstance().newGebolinNum++;\r\n }\r\n }\r\n private _selfBuild: BuildView;\r\n public get selfBuild(): BuildView {\r\n return this._selfBuild;\r\n }\r\n public set selfBuild(value: BuildView) {\r\n this._selfBuild = value;\r\n }\r\n\r\n private _equipNum: number = 0;\r\n public get equipNum(): number {\r\n return this._equipNum;\r\n }\r\n public set equipNum(value: number) {\r\n this._equipNum = value;\r\n }\r\n\r\n private isOffSpine:boolean = false;\r\n\r\n private _p_bat_army: p_bat_army = {};\r\n public get p_bat_army(): p_bat_army {\r\n return this._p_bat_army;\r\n }\r\n public set p_bat_army(value: p_bat_army) {\r\n this._p_bat_army = value;\r\n }\r\n\r\n onLoad(){\r\n super.onLoad();\r\n }\r\n init(mapType:GebolinMapType = GebolinMapType.PveBoss){\r\n this.gebolinMapType = mapType;\r\n super.init(mapType);\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.addComponent(GebolinModle);\r\n this.modle = this.getComponent(GebolinModle);\r\n this.modle.init();\r\n this.modle.role = this;\r\n this.friendType = AllRoleTypeEnum.Friend;\r\n this.RoleType = RoleTypeEnum.GeBuLin;\r\n this.roleId = Utils.AddId();\r\n this.roleName = this.roleId;\r\n if(mapType == GebolinMapType.PveBoss){\r\n this.AiType = GebolInAiEnum.Chusheng;\r\n this.gebolinAi = new GebolinAiComp(this);\r\n }else{\r\n this.AiType = GebolInAiEnum.FindBoss;\r\n setTimeout(() => {\r\n this.modle.addRoleSkill(this.soldiersID);\r\n this.modle.addAttributes(\"\");\r\n this.gebolinAi = new GebolinAiComp(this);\r\n }, 150);\r\n }\r\n this.changeTitle();\r\n // this.changeShare();\r\n }\r\n /**调整层级*/\r\n showIndex(){\r\n // this.node.setSiblingIndex(1);\r\n // let v3:Vec3 = MapRoadUtils.toAStarPoint(this.node.position);\r\n // this.node[\"zindex\"] = v3.x + v3.y;\r\n }\r\n\r\n public offSpine(){\r\n if(this.isOffSpine){\r\n return;\r\n }\r\n let offPos:Vec3 = this.offNode.position;\r\n\r\n let offx:number = Math.random()*100 < 50 ? 1 : -1;\r\n let offy:number = Math.random()*100 < 50 ? 1 : -1;\r\n\r\n let _x:number = (Math.random()*20)*offx;\r\n let _y:number = (Math.random()*20)*offy;\r\n\r\n tween(this.offNode).to(1.5 , {position : new Vec3(offPos.x + _x , offPos.y + _y , offPos.z)}).start();\r\n\r\n }\r\n // private share:Node = null;\r\n // private changeShare(){\r\n // this.share = instantiate(this.shadow);\r\n // let myPos:Vec3 = this.node.position;\r\n // this.share.position = new Vec3(myPos.x , myPos.y, 1);\r\n // this.share.active = true;\r\n // let nodes:Node = find(\"c_shadow\" , this.share);\r\n // nodes.scale = new Vec3(0.4,0.4,1);\r\n // GameEntry.Inst.mapView.nowScene.sharLayer.addChild(this.share);\r\n // }\r\n private changeTitle(){\r\n this.hpView = instantiate(this.hpPre).getComponent(GebolinHpViewComp);\r\n let myPos:Vec3 = this.node.position;\r\n this.hpView.node.position = new Vec3(myPos.x , myPos.y + 105 , 1);\r\n if(this.gebolinMapType == GebolinMapType.PveCopy){\r\n this.hpView.node.active = true;\r\n }else{\r\n this.hpView.node.active = false;\r\n }\r\n GameEntry.Inst.mapView.nowScene.hpLayer.addChild(this.hpView.node);\r\n\r\n let maintitle:MainTitle = MainTitlePoxy.Inst.getTitleById(4);\r\n if(maintitle.ay_hp && maintitle.ay_hp.length){\r\n let pos:Vec3 = this.hpView.node.position;\r\n let off:Vec3 = new Vec3(Number(maintitle.ay_hp[0]) , Number(maintitle.ay_hp[1]) , 1);\r\n this.hpView.node.position = new Vec3(pos.x + off.x , pos.y + off.y , 1);\r\n }\r\n }\r\n private changeSharePoint(){\r\n // if(this.share){\r\n // let myPos:Vec3 = this.charactor.node.position;\r\n // this.share.position = new Vec3(myPos.x, myPos.y, 1);\r\n // this.share.scale = this.fangxiangNode.scale;\r\n // }\r\n }\r\n changeHpPoint(){\r\n if(this.hpView){\r\n let myPos:Vec3 = this.node.position;\r\n this.hpView.node.position = new Vec3(myPos.x , myPos.y + 105 , 1);\r\n let maintitle:MainTitle = MainTitlePoxy.Inst.getTitleById(4);\r\n if(maintitle.ay_hp && maintitle.ay_hp.length){\r\n let pos:Vec3 = this.hpView.node.position;\r\n let off:Vec3 = new Vec3(Number(maintitle.ay_hp[0]) , Number(maintitle.ay_hp[1]) , 1);\r\n this.hpView.node.position = new Vec3(pos.x + off.x , pos.y + off.y , 1);\r\n }\r\n }\r\n }\r\n async showHit(skill:Skill){\r\n this.goblin_Hit();\r\n let v3:Vec3 = this.node.position;\r\n let newPoint:Vec3 = new Vec3(1,1,0);\r\n newPoint.x = Math.random()*100 > 50 ? v3.x - Math.random()*100 : v3.x + Math.random()*100;\r\n newPoint.y = v3.y + Math.random()*100;\r\n let data:IEffectParams = {\r\n pos:newPoint,\r\n isPlayFinishedRelease:true\r\n }\r\n await EffectSingleCase.instance.loadAndShow(skill.SkillModel.ballisticHitRes, GameEntry.Inst.mapView.nowScene.EffectLayer,data);\r\n }\r\n showMyHp(){\r\n if(!this.hpView.node.active){\r\n this.hpView.node.active = true;\r\n }\r\n }\r\n showTalk(){\r\n this.wuqiSprite.spriteFrame = null;\r\n this.yifuSprite.spriteFrame = null;\r\n this.maoziSprite.spriteFrame = null;\r\n if(this.hpView){\r\n this.hpView.node.active = false;\r\n }\r\n // this.talkLabel.node.active = !this.talkLabel.node.active;\r\n }\r\n setDirection(value: CharactorDirection): void {\r\n if (value > 4) {\r\n this.skeleton.getComponent(sp.Skeleton)!.node.setScale(-1, 1, 1);\r\n }\r\n else {\r\n this.skeleton.getComponent(sp.Skeleton)!.node.setScale(-1, 1, 1);\r\n }\r\n let v3:Vec3 = new Vec3(1 , 1 , 1);\r\n let model:Model = ModelPoxy.Inst.getModelById(101);\r\n if(model && model.ay_fight && model.ay_fight.length==2){\r\n v3.x = Number(model.ay_fight[0]);\r\n v3.y = Number(model.ay_fight[1]);\r\n }else{\r\n v3.x = 0.5;\r\n v3.y = 0.5;\r\n }\r\n this.scaleNodes!.setScale(v3)\r\n \r\n }\r\n setAlpha(value: number): void {\r\n var color: Color = this.skeleton.getComponent(sp.Skeleton).color;\r\n color.a = 255 * (value / 1);\r\n this.skeleton.getComponent(sp.Skeleton).color = color;\r\n }\r\n private rolePath:string = \"\";\r\n showRole(str:string , callFun:Function){\r\n let path: string = \"spineRes/characters/\"+str+\"/\" + str;\r\n this.rolePath = path;\r\n let sktd = ResHelper.get(path, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n\r\n callFun();\r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n callFun();\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n changeSkin(lib:GebolInAiEnum){\r\n switch(lib){\r\n case GebolInAiEnum.WuQi:\r\n this.wearWuqi();\r\n break;\r\n case GebolInAiEnum.KaiJia:\r\n this.wearKaijia();\r\n break;\r\n case GebolInAiEnum.MaoZi:\r\n this.wearMaozi();\r\n break;\r\n }\r\n }\r\n wearAll(){\r\n this.wearWuqi();\r\n this.wearKaijia();\r\n this.wearMaozi();\r\n }\r\n private wearWuqi(){\r\n let equipData:p_army_wear_equip = GameModleComp.getInstance().getEquipByType(this.gebolinType);\r\n let id:number;\r\n if(equipData && equipData.wearWq){\r\n id = equipData.wearWq;\r\n }else{\r\n // return;\r\n switch(this.gebolinType){\r\n case GebolInTypeEnum.ZhanShi:\r\n id = 101;\r\n break;\r\n case GebolInTypeEnum.FaShi:\r\n id = 401;\r\n break;\r\n case GebolInTypeEnum.ChiKe:\r\n id = 701;\r\n break;\r\n case GebolInTypeEnum.PaoShou:\r\n id = 1001;\r\n break;\r\n }\r\n }\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n if(this.gebolinType == GebolInTypeEnum.ChiKe){\r\n let skinArr:Array = equip.modelName.split(\"|\");\r\n for(let i = 0 ; i < skinArr.length ; i++){\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+skinArr[i])\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(\"刺客武器插槽查询失败\")\r\n }\r\n }\r\n\r\n }else{\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"武器插槽查询失败\")\r\n }\r\n }\r\n }\r\n private wearKaijia(){\r\n let equipData:p_army_wear_equip = GameModleComp.getInstance().getEquipByType(this.gebolinType);\r\n let id:number;\r\n if(equipData && equipData.wearKj){\r\n id = equipData.wearKj;\r\n }else{\r\n return;\r\n // switch(this.gebolinType){\r\n // case GebolInTypeEnum.ZhanShi:\r\n // id = 201;\r\n // break;\r\n // case GebolInTypeEnum.FaShi:\r\n // id = 501;\r\n // break;\r\n // case GebolInTypeEnum.ChiKe:\r\n // id = 801;\r\n // break;\r\n // case GebolInTypeEnum.PaoShou:\r\n // id = 1101;\r\n // break;\r\n // }\r\n }\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"衣服插槽查询失败\")\r\n }\r\n }\r\n private wearMaozi(){\r\n let equipData:p_army_wear_equip = GameModleComp.getInstance().getEquipByType(this.gebolinType);\r\n let id:number;\r\n if(equipData && equipData.wearHat){\r\n id = equipData.wearHat;\r\n }else{\r\n return;\r\n // switch(this.gebolinType){\r\n // case GebolInTypeEnum.ZhanShi:\r\n // id = 301;\r\n // break;\r\n // case GebolInTypeEnum.FaShi:\r\n // id = 601;\r\n // break;\r\n // case GebolInTypeEnum.ChiKe:\r\n // id = 901;\r\n // break;\r\n // case GebolInTypeEnum.PaoShou:\r\n // id = 1201;\r\n // break;\r\n // }\r\n }\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"帽子插槽查询失败\")\r\n }\r\n }\r\n changeHp(value){\r\n if(this.isDie){\r\n return;\r\n }\r\n this.modle.attributes.setArr(AttType.hpValue , value);\r\n let max:number=this.modle.attributes.get(AttType.HpMax).value;\r\n let now:number=this.modle.attributes.get(AttType.hpValue).value;\r\n if(now >= max){\r\n now = max;\r\n }\r\n let pro:number = now / max;\r\n if(pro >= 1){\r\n pro = 1;\r\n }\r\n if(pro <= 0){\r\n pro = 0;\r\n }\r\n this.hpView.progress = pro;\r\n if(pro == 0){\r\n this.dead();\r\n }\r\n // Logger.logView(\"哥布林受击==>\"+value);\r\n }\r\n /** 死亡动作 */\r\n goblin_dead() {\r\n if(this.isDie){\r\n return;\r\n }\r\n if(this.hpView){\r\n this.hpView.node.active = false;\r\n }\r\n super.goblin_dead();\r\n }\r\n private isResPoint:boolean = false;\r\n dead(){\r\n if(this.isDie){\r\n return;\r\n }\r\n if(!this.isResPoint){\r\n this.resPoint();\r\n this.isResPoint = true;\r\n }\r\n GameModleComp.getInstance().dieGebolinNum++;\r\n GameModleComp.getInstance().dieGebolin.push(this.p_bat_army)\r\n this.goblin_dead();\r\n if(this.gebolinMapType == GebolinMapType.PveCopy){\r\n EventManager.Inst.event(EventType.COPY_GEBOLIN_DEAD , this.gebolinType);\r\n }\r\n }\r\n private resPoint(){\r\n // console.log(\"回收坐标\");\r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n if(this.gebolinAttType == GebolInAttTypeEnum.JinZhan){\r\n // console.log(\"回收近战坐标\");\r\n if(this.fightPoint != undefined){\r\n GameModleComp.getInstance().jinzhanPointArr.push(this.fightPoint);\r\n }\r\n }else if(this.gebolinAttType == GebolInAttTypeEnum.YuanCheng){\r\n // console.log(\"回收远程坐标\");\r\n if(this.fightPoint != undefined){\r\n GameModleComp.getInstance().yuanchengPointArr.push(this.fightPoint);\r\n }\r\n }else{\r\n // console.log(\"未能回收坐标\");\r\n }\r\n }\r\n }\r\n desTory(){\r\n if(!this.isResPoint){\r\n this.resPoint();\r\n this.isResPoint = true;\r\n }\r\n this.skill = null;\r\n GameEntry.Inst.mapView.gebolinMap.delete(this.roleId);\r\n if(this.hpView){\r\n this.hpView.desTory();\r\n }\r\n // if(this.share && this.share.parent){\r\n // this.share.parent.removeChild(this.share);\r\n // }\r\n super.desTory();\r\n }\r\n update(dt){\r\n super.update(dt);\r\n if(this.gebolinAi){\r\n this.gebolinAi.update(dt);\r\n }\r\n if(this.skillIn1){\r\n this.skillIn1.update(dt);\r\n }\r\n if(this.skillIn2){\r\n this.skillIn2.update(dt);\r\n }\r\n this.changeHpPoint();\r\n // this.changeSharePoint();\r\n }\r\n /**\r\n * 攻击目标动作\r\n * @param target 攻击\r\n */\r\n attack(sc:SkillCasting ,target: BaseRole | Vec3, skill: Skill) {\r\n // Logger.logView(\"请求播放攻击动作\");\r\n let tempX = target instanceof BaseRole ? this.node.position.x - target.node.position.x : this.node.position.x - target.x;\r\n let tempY = target instanceof BaseRole ? this.node.position.y - target.node.position.y : this.node.position.y - target.y;\r\n if(tempX > 0){\r\n this.fangxiangNode.scale = new Vec3(-1 , 1 ,1)\r\n this.fangxiang = 1;\r\n }else{\r\n this.fangxiangNode.scale = new Vec3(1 , 1 ,1)\r\n this.fangxiang = 0;\r\n }\r\n this.goblin_attack(sc , target , skill);\r\n }\r\n /**效果击退*/\r\n showJiTui(skillEff:SkillEffect){\r\n let toY1:number = this.node.position.y + 5;\r\n let toY2:number = this.node.position.y;\r\n let off1:number = this.fangxiang ? this.node.position.x + Number(skillEff.value)*22 : this.node.position.x - Number(skillEff.value)*22;\r\n let off:number = this.fangxiang ? this.node.position.x + Number(skillEff.value)*42 : this.node.position.x - Number(skillEff.value)*42;\r\n tween(this.node).to(0.3,{position:new Vec3(off1 , toY1 , 1)}).call(()=>{\r\n tween(this.node).to(0.3,{position:new Vec3(off , toY2 , 1)}).call(()=>{\r\n if(!this.isDie){\r\n this.charactor.pos = this.node.position;\r\n let v3:Vec3 = MapRoadUtils.AStarToPoint(this.fightPoint);\r\n // this.heroAiType = HeroAiType.ToMove;\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this , v3.x , v3.y, 1 , ()=>{\r\n // this.heroAiType = HeroAiType.Fight;\r\n this.isAttackOver = true;\r\n })\r\n }\r\n }).start();\r\n }).start();\r\n }\r\n}\r\nexport enum GebolInAiEnum{\r\n Chusheng,\r\n WuQi,\r\n KaiJia,\r\n MaoZi,\r\n FindBoss,\r\n ToBoss,\r\n Fight,\r\n Dead,\r\n Rest,\r\n Move,\r\n Wait,\r\n WaitUp,\r\n ToRest,\r\n WaitZhuangpei,\r\n WaitTestDead,\r\n LiveJianzhu,\r\n\r\n}\r\nexport enum GebolInTypeEnum{\r\n None,\r\n ZhanShi,\r\n FaShi,\r\n ChiKe,\r\n PaoShou,\r\n EndValue\r\n}\r\nexport enum GebolInAttTypeEnum{\r\n Nil,\r\n JinZhan,\r\n YuanCheng,\r\n}","import { _decorator } from 'cc';\nimport { v3 } from 'cc';\nimport { Vec3 } from 'cc';\nimport { res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { LanguageProxy } from '../proxy/LanguageProxy';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport { BoxData } from './Component';\nimport { TitleProxy } from '../proxy/TitleProxy';\nimport { CoinType, ItemProxy } from '../proxy/ItemProxy';\nimport { CommonMsgProxy } from '../proxy/CommonMsgProxy';\nimport { TipsPoxy } from '../proxy/TipsPoxy';\nimport ResHelper from '../../../core/manager/ResHelper';\nimport { Sprite } from 'cc';\nimport { SpriteFrame } from 'cc';\nimport { Texture2D } from 'cc';\nimport { SpriteAtlas } from 'cc';\nimport { sys } from 'cc';\nimport { HeroProxy } from '../proxy/HeroProxy';\nimport { SkillProxy } from '../proxy/SkillProxy';\nimport { HeroCaoProxy } from '../proxy/HeroCaoProxy';\nimport { HeroTuJianProxy } from '../proxy/HeroTuJianProxy';\nimport { WordMapPoxy } from '../proxy/WordMapPoxy';\nimport { PassPoxy } from '../proxy/PassPoxy';\nimport { BuffPoxy } from '../proxy/BuffPoxy';\nimport { HeroExpProxy } from '../proxy/HeroExpProxy';\nimport { SoldierProxy } from '../proxy/SoldierProxy';\nimport { SoldierEquipProxy } from '../proxy/SoldierEquipProxy';\nimport { SoldierTuJianProxy } from '../proxy/SoldierTuJianProxy';\nimport { BuffAttType, CampPoxy } from '../proxy/CampPoxy';\nimport { BuildPoxy } from '../proxy/BuildPoxy';\nimport { VillagePoxy } from '../proxy/VillagePoxy';\nimport { HeroEquipProxy } from '../proxy/HeroEquipProxy';\nimport { Layout } from 'cc';\nimport { Shop, ShopCoinType, ShopGoodType, ShopProxy, ShopUiType } from '../proxy/ShopProxy';\nimport { PayInfo, PayInfoProxy } from '../proxy/PayInfoProxy';\nimport { dataUser } from '../../gameData/dataUser';\nimport { GameModleComp } from '../../../game/GameModle';\nimport { FunctionProxy } from '../proxy/FunctionProxy';\nimport { SignProxy } from '../proxy/SignProxy';\nimport { OffineProxy } from '../proxy/OffineProxy';\nimport { MainBuffProxy } from '../proxy/MainBuffProxy';\nimport { TaskProxy } from '../proxy/TaskProxy';\nimport { Component } from 'cc';\nimport { FestivalTimeProxy } from '../proxy/FestivalTimeProxy';\nimport { resources } from 'cc';\nimport { sp } from 'cc';\nimport { assetManager } from 'cc';\nimport { Texture } from '../../../../../extensions/textmeshpro-tool/@types/packages/engine-extends/@types/glTF';\nimport { rect } from 'cc';\nimport { text } from 'stream/consumers';\nimport { UITransform } from 'cc';\nimport { size } from 'cc';\nimport { Size } from 'cc';\nimport { FuBenProxy } from '../proxy/FuBenProxy';\nimport { FuBenExpPoxy } from '../proxy/FuBenExpPoxy';\nimport { SoundEffectsConfigPoxy } from '../proxy/SoundEffectsConfigPoxy';\nimport { AdGiftProxy } from '../proxy/AdGiftProxy';\nimport { LosePoxy } from '../proxy/LosePoxy';\nimport { MonthCardProxy } from '../proxy/MonthCardProxy';\nimport { KingDressProxy } from '../proxy/KingDressProxy';\nimport { GuidePoxy } from '../proxy/GuidePoxy';\nimport { GuideSubStepPoxy } from '../proxy/GuideSubStepPoxy';\nimport { StoryPoxy } from '../proxy/StoryPoxy';\nimport { KingInfoProxy } from '../proxy/KingInfoProxy';\nimport { DaySevenProxy } from '../proxy/DaySevenProxy';\nimport { ChatFacePoxy } from '../proxy/ChatFacePoxy';\nimport { KingCustomerProxy } from '../proxy/KingCustomerProxy';\nimport { SoundPoxy } from '../proxy/SoundPoxy';\nimport { TongXingProxy } from '../proxy/TongXingProxy';\nimport { BossLaixiPoxy } from '../proxy/BossLaixiPoxy';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\n@res_auto_bind()\nexport class GlobalFunction {\n private static _inst: GlobalFunction;\n public static get Inst(): GlobalFunction {\n if (GlobalFunction._inst == null) {\n GlobalFunction._inst = new GlobalFunction();\n }\n return GlobalFunction._inst;\n }\n public static IsLogin :boolean;\n //#region 获取多语言方法\n\n /***通过多语言id 获取配置 */\n public static GetMsg(msgId: number, wrap: boolean = true) {\n var str = LanguageProxy.Inst.GetMsgByLanAndId(msgId);\n return wrap ? str.replace(/\\\\n/g, \"\\n\") : str;\n }\n\n /***通过多语言id带参数 获取配置 */\n public static GetMsgAndArgs(msgId: number, args: object[]) {\n var str = LanguageProxy.Inst.GetMsgByLanAndStr(msgId.toString());\n str = str.replace(/\\\\n/g, \"\\n\");\n return StringUtil.stringAyFormat(str, args);\n }\n\n //#endregion\n\n //#region 解析配置表字段\n\n /*** 解析配置表中的特殊字段 */\n public ParamDef(aKey: string, aValue: string) {\n // aValue = aValue.replace(\"\\\\n\",\"\\n\");\n let rObj = aValue;\n\n // console.log(\"aKey====\"+aKey +\" aValue==\"+aValue);\n let aParam = aKey.split(\"_\");\n if (aParam.length == 0) {\n return rObj;\n }\n switch (aParam[0]) {\n case \"ay\":\n return this.ParamArrs(rObj, aKey, aValue);\n case \"lan\":\n return this.ParamLan(rObj, aKey, aValue);\n case \"kv\":\n return this.ParamDict(rObj, aKey, aValue);\n case \"pos\":\n return this.ParamDictArr(rObj, aKey, aValue);\n case \"kw\":\n return this.ParamDictes(rObj, aKey, aValue);\n case \"v3\":\n return this.ParamV3(rObj, aKey, aValue);\n default:\n return rObj;\n }\n\n return null;\n }\n private ParamLan(aObj, aKey: string, aValue: string) {\n let rObj = aObj;\n let lanID: number = parseInt(aValue);\n if (lanID) {\n rObj = LanguageProxy.Inst.GetMsgByLanAndId(lanID);\n if(rObj!=null){\n if(rObj.includes(\"\\\\n\")){\n return rObj.replace(/\\\\n/g, \"\\n\");\n }\n }\n\n }\n\n return rObj;\n }\n private ParamArrs(aObj, aKey: string, aValue: string) {\n if (aValue.length == 0) {\n return [];\n }\n if (aValue.trim().endsWith(\"[]\")) {\n return [];\n }\n aValue = aValue.replace(\"[\", \"\");\n aValue = aValue.replace(\"]\", \"\");\n let sArr = aValue.split(\",\");\n let rObj = [];\n for (let i = 0; i < sArr.length; i++) {\n rObj.push(sArr[i])\n }\n return rObj;\n }\n private ParamDictArr(aObj, aKey: string, aValue: string) {\n if (aValue.length == 0) {\n return new Map();\n }\n if (aValue.trim() === (\"[]\")) {\n return new Map();\n }\n aValue = aValue.substring(0, aValue.length - 2);\n aValue = aValue.substring(2, aValue.length);\n var rObj = new Array();\n let strsValue = aValue.split(\"},{\");\n for (let i = 0; i < strsValue.length; i++) {\n let strtmp = strsValue[i].split(\",\");\n rObj[i] = [Number(strtmp[0]), Number(strtmp[1])];\n }\n return rObj;\n }\n private ParamDict(aObj, aKey: string, aValue: string) {\n if (aValue.length == 0) {\n return new Map();\n }\n if (aValue.trim() === (\"[]\")) {\n return new Map();\n }\n aValue = aValue.substring(0, aValue.length - 2);\n aValue = aValue.substring(2, aValue.length);\n var rObj = new Map();\n let strsValue = aValue.split(\"},{\");\n for (let i = 0; i < strsValue.length; i++) {\n let strtmp = strsValue[i].split(\",\");\n rObj.set(strtmp[0], strtmp[1]);\n }\n return rObj;\n }\n\n private ParamDictes(aObj, aKey: string, aValue: string) {\n if (aValue.length == 0) {\n return new Map();\n }\n if (aValue.trim().endsWith(\"[]\")) {\n return new Map();\n }\n aValue = aValue.substring(0, aValue.length - 2);\n aValue = aValue.substring(3, aValue.length);\n var rObj = new Map();\n let strsValue = aValue.split(\"},{{\");\n for (let i = 0; i < strsValue.length; i++) {\n let strtmp = strsValue[i].split(\"},\");\n rObj.set([strtmp[0]], strtmp[1]);\n }\n\n return rObj;\n }\n\n private ParamV3(aObj, aKey: string, aValue: string) {\n\n let rObj = aObj;\n\n rObj = Vec3.zero;\n let vArr = aValue.split(\"|\");\n if (vArr.length < 3) {\n return rObj;\n }\n let xValue;\n let yValue;\n let zValue;\n if (parseInt(vArr[0], xValue) && parseInt(vArr[1], yValue) && parseInt(vArr[2], zValue)) {\n rObj = new Vec3(xValue, yValue, zValue);\n\n }\n else {\n return rObj;\n }\n\n return rObj;\n }\n //#endregion\n\n\n //#region 打开Box界面以及操作相关\n /*** 打开BOX6,7,9表中内容 */\n public static ShowBoxsDec(nodename: string, buttonName: string)\n {\n if (!TipsPoxy.Inst.TipsSlots || TipsPoxy.Inst.TipsSlots.length == 0) {\n TipsPoxy.Inst.InitTipsConfig();\n }\n var config = TipsPoxy.Inst.TipsSlots.find((item) => {\n return item.Button == buttonName && nodename == item.Ber_ui;\n });\n if (config == null) {\n return;\n }\n let bs = BoxStyle.BoxStyle7;\n if (config.Aft_ui == \"Box7UI\") {\n bs = BoxStyle.BoxStyle7;\n } else if (config.Aft_ui == \"Box9UI\") {\n bs = BoxStyle.BoxStyle9;\n }\n var data = new BoxData\n {\n data.title = config.lan_Title,\n data.content = config.lan_Content,\n data.showLabelType = config.Type\n };\n GlobalFunction.ShowBox(data, bs);\n }\n\n\n public static ShowBox(data: BoxData, style: BoxStyle) {\n switch (style) {\n case BoxStyle.BoxStyle1://加速道具购买使用界面\n WindowManager.Instance().open(GameConst.winPath.Box1UI, data.itemId, true);\n break;\n case BoxStyle.BoxStyle2://恭喜获得界面\n WindowManager.Instance().open(GameConst.winPath.Box2UI, data, true);\n break;\n case BoxStyle.BoxStyle3://恭喜获得界面\n WindowManager.Instance().open(GameConst.winPath.Box3UI, data, true);\n break;\n case BoxStyle.BoxStyle4: //不在提示\n WindowManager.Instance().open(GameConst.winPath.Box4UI, data, true);\n break;\n case BoxStyle.BoxStyle5: //通用提示\n WindowManager.Instance().open(GameConst.winPath.Box5UI, data, true);\n break;\n case BoxStyle.BoxStyle6: //提示label1 label2\n WindowManager.Instance().open(GameConst.winPath.Box6UI, data, true);\n break;\n case BoxStyle.BoxStyle7: //长提示框,规则\n WindowManager.Instance().open(GameConst.winPath.Box7UI, data, true);\n break;\n case BoxStyle.BoxStyle8: //英雄详情介绍\n WindowManager.Instance().open(GameConst.winPath.Box8UI, data, true);\n break;\n case BoxStyle.BoxStyle9: //小提示框,规则\n WindowManager.Instance().open(GameConst.winPath.Box9UI, data, true);\n break;\n case BoxStyle.BoxStyle10://boss获得奖励界面\n WindowManager.Instance().open(GameConst.winPath.Box10UI, data, true);\n break;\n default:\n break;\n }\n\n }\n \n /*** 是否可以跳过box4窗口 */\n public static IsGetBlooBoxRecorded(key: string) {\n if (key == null) return;\n if (sys.localStorage.getItem(key) && sys.localStorage.getItem(key) != 0) {\n //獲取服務器時間\n let severTime = GameModleComp.getInstance().serverTime;\n\n //獲取存儲時間\n let oldertime = sys.localStorage.getItem(key);\n //用新的時間跟老的時間對比\n if (severTime > oldertime) {\n sys.localStorage.setItem(key, 0);\n return false;\n } else {\n return true;\n }\n }\n\n return false;\n }\n \n/**敬请期待 */\npublic static ShowBox5( languageid :number = 20099) {\n let id = languageid\n let _data: BoxData = new BoxData\n {\n _data.content = GlobalFunction.GetMsg(id);\n };\n GlobalFunction.ShowBox(_data, BoxStyle.BoxStyle5);\n}\n\n /*** 保存设置跳过box窗口标记 */\n public static SaveBoxRecorded(ischoose: boolean, key: string) {\n\n console.log(\"key===\"+key);\n if (ischoose) {\n //獲取服務器時間\n let severTime = GameModleComp.getInstance().serverTime;\n //給獲取的時間加1天,並存儲\n let oldertime = severTime + 24*60*60;\n sys.localStorage.setItem(key, oldertime);\n } else {\n sys.localStorage.setItem(key, 0);\n }\n }\n\n /**商城购买不足提示 */\n public static ShowNotEnougthNumber(needNum :number,type:CoinType,goodid:number,itemnum:number,key :string = \"\",callback1?:Function,callback2?:Function) {\n\n let enougth = false;\n let spendItemName :string;\n let buyGoodName :string;\n\n let shopdata = ShopProxy.Inst.GetShopDataByID(goodid);\n\n if(shopdata){\n buyGoodName = shopdata.lan_name;\n }\n if(type==CoinType.xingzhuan){\n enougth = dataUser.Instance().star>=needNum;\n spendItemName = GlobalFunction.GetMsg(40097);\n }else if(type==CoinType.zuanshi){\n enougth = dataUser.Instance().diamond>=needNum;\n spendItemName = GlobalFunction.GetMsg(20076);\n }\n else if(type==CoinType.jinbi){\n enougth = dataUser.Instance().gold>=needNum;\n spendItemName = GlobalFunction.GetMsg(20077);\n }\n\n let buy=GlobalFunction.GetMsg(20002);\n // else if(type==CoinType.zhaohuan){\n // enougth = dataUser.Instance().call>=needNum;\n // name = GlobalFunction.GetMsg();\n // }else if(type==CoinType.tiaozhan){\n // enougth = dataUser.Instance().challenge>=needNum;\n // name = GlobalFunction.GetMsg();\n // }\n let needNumstring = GlobalFunction.ConvertNumberWithUnit(needNum);\n let itemnumstring = GlobalFunction.ConvertNumberWithUnit(itemnum);\n if(enougth){\n var data = new BoxData\n {\n data.content = StringUtil.stringFormat(GlobalFunction.GetMsg(30001),needNumstring,spendItemName,buy,buyGoodName,itemnumstring);\n data.title = GlobalFunction.GetMsg(10005),\n data.buttonNames = [GlobalFunction.GetMsg(20007),GlobalFunction.GetMsg(20008)],\n data.actions = [callback1,callback2],\n // data.num = needNum,\n // imgPath = CurrencyProxy.instance.GetCurrentItemData(ECurrency.eCOPPER).icon,\n data.key = key+\"not\"\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle4);\n \n }else{\n let strings :string[] =[spendItemName];\n CommonMsgProxy.Inst.ShowCommonMsg(1008,strings,callback2,key); \n }\n }\n\n /**普通道具不足,提示前往购买 */\n public static NotEnouthCostNum(needNum :number,type:CoinType,key :string = \"\",callback1?:Function,callback2?:Function){\n let enougth = false;\n let shoptype;\n \n let spendItemName :string;\n if(type==CoinType.xingzhuan){\n shoptype = ShopGoodType.xingzhuan;\n enougth = dataUser.Instance().star>=needNum;\n spendItemName = GlobalFunction.GetMsg(40097);\n }else if(type==CoinType.zuanshi){\n shoptype = ShopGoodType.zhuanshi;\n enougth = dataUser.Instance().diamond>=needNum;\n spendItemName = GlobalFunction.GetMsg(20076);\n }\n else if(type==CoinType.jinbi){\n shoptype = ShopGoodType.jinbi;\n enougth = dataUser.Instance().gold>=needNum;\n spendItemName = GlobalFunction.GetMsg(20077);\n }\n if(enougth)\n {\n callback1&&callback1();\n }else{\n if(type ==CoinType.jinbi){\n FestivalTimeProxy.Inst.SendC1031(1);\n }\n ShopProxy.Inst.shopGoodType = shoptype;\n let strings :string[] =[spendItemName];\n console.log(\"=====================鑽石不足======================strings=\"+strings);\n CommonMsgProxy.Inst.ShowCommonMsg(1008,strings,()=>{this.JumpShop(type,callback2)},key); \n }\n }\n\n public static JumpShop(type :CoinType,callback2?:Function){\n console.log(\"callback2====\"+callback2);\n callback2&&callback2();\n if(type==CoinType.xingzhuan){\n ShopProxy.Inst.shopGoodType = ShopGoodType.xingzhuan;\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.money, true);\n }else if(type==CoinType.zuanshi){\n ShopProxy.Inst.shopGoodType = ShopGoodType.zhuanshi;\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.money, true);\n }else if(type==CoinType.jinbi){\n ShopProxy.Inst.shopGoodType = ShopGoodType.xingzhuan;\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.money, true);\n }\n }\n\n // public static OnSuccessBlack(action :any){\n // let actions :Function = action;\n // actions.call;\n // }\n\n // public static OnFileBlack(action :any ) {\n // if(action!=null){\n // action.callback;\n // }\n // }\n\n //#endregion\n\n //#region 打开title 界面 \n public static OpenTitlePoup(ui: string, toggle: string) {\n TitleProxy.Inst.OpenTitlePoup(ui, toggle);\n }\n //#endregion\n\n //#region 初始化功能配置文件 并加载相关数据\n public static InitConfigJson() {\n ItemProxy.Inst.InitItemConfig();\n CommonMsgProxy.Inst.InitCommonMsgConfig();\n LanguageProxy.Inst.InitlanguageConfig();\n TipsPoxy.Inst.InitTipsConfig();\n TitleProxy.Inst.InitTitleConfig();\n HeroProxy.Inst.InitHeroConfig();\n SoldierProxy.Inst.InitSoldiersConfig();\n SkillProxy.Inst.InitSkillsConfig();\n HeroCaoProxy.Inst.InitHeroCaoConfig();\n HeroTuJianProxy.Inst.InitHeroConfig();\n WordMapPoxy.Inst.InitWordMapConfig();\n BuffPoxy.Inst.InitBuffConfig();\n HeroExpProxy.Inst.InitHeroExpConfig();\n SoldierEquipProxy.Inst.InitSoldiersEquipConfig();\n SoldierEquipProxy.Inst.InitSoldiersEquipUpConfig();\n SoldierEquipProxy.Inst.InitSoldiersShopConfig();\n PassPoxy.Inst.InItPassConfig();\n SoldierTuJianProxy.Inst.InitSoldierConfig();\n CampPoxy.Inst.InitCampConfig();\n BuildPoxy.Inst.InitBuildConfig();\n VillagePoxy.Inst.InitVillageConfig();\n HeroEquipProxy.Inst.InitHeroEquipConfig();\n HeroEquipProxy.Inst.InitHeroEquipUpConfig();\n HeroEquipProxy.Inst.InitHeroEquipBuffConfig();\n ShopProxy.Inst.InitShopConfig();\n PayInfoProxy.Inst.InitPayInfoConfig();\n FunctionProxy.Inst.InitFunctionForetellConfig();\n SignProxy.Inst.InitSignDayConfig();\n SignProxy.Inst.InitSignTotalConfig();\n MainBuffProxy.Inst.InitZhuFuConfig();\n TaskProxy.Inst.InitTaskConfig();\n TaskProxy.Inst.InitJumpConfig();\n FuBenProxy.Inst.InitCampConfig();\n FuBenExpPoxy.Inst.InitFuBenExpConfig();\n LosePoxy.Inst.InitLostConfig();\n LosePoxy.Inst.InitLostJumpConfig();\n KingDressProxy.Inst.InitClothesConfig();\n GuidePoxy.Inst.InitGuideConfig();\n GuideSubStepPoxy.Inst.InitGuideSubStepConfig();\n StoryPoxy.Inst.InitStoryConfig();\n DaySevenProxy.Inst.InitSevenTaskAllConfig();\n ChatFacePoxy.Inst.InitChatFaceConfigConfig();\n KingCustomerProxy.Inst.InitiCustomerConfig();\n TongXingProxy.Inst.InitTongXingAllConfig();\n BossLaixiPoxy.Inst.InitBossLaiXiConfig();\n }\n\n /*** 进游戏前需要加载的数据 */\n public static InitSendAgreementToSence() {\n this.InitConfigJson();\n CampPoxy.Inst.SendC1300();\n HeroProxy.Inst.SendC1100();\n HeroProxy.Inst.SendC1102();\n SoundEffectsConfigPoxy.Inst.InitSoundEffectsConfigConfig();\n FestivalTimeProxy.Inst.InitPayInfoConfig();\n AdGiftProxy.Inst.InitPayInfoConfig();\n SoundPoxy.Inst.InitGuideConfig();\n\n }\n\n /*** 加载UI上需要的数据 */\n public static InitSendAgreementToUI() {\n SoldierEquipProxy.Inst.SendC1400All();\n ItemProxy.Inst.SendC1200();\n OffineProxy.Inst.SendC1220();\n MainBuffProxy.Inst.SendC1025();\n ShopProxy.Inst.SendC1212(ShopGoodType.yingxiong);\n TaskProxy.Inst.SendC1500();\n SoldierEquipProxy.Inst.SendC1403();\n KingInfoProxy.Inst.SendC1008(1);\n DaySevenProxy.Inst.SendC1052();\n\n }\n\n //#endregion\n\n //#region sprite赋值\n /*** Sprite 赋值 SpriteFrame */\n public static SetSpriteFrame(sp: Sprite, path: string, bundleName: string = \"resources\", bundChildFile: string = \"textures\") {\n\n ResHelper.load(bundChildFile + \"/\" + path + '/spriteFrame', SpriteFrame, (err, ass) => {\n try {\n sp.spriteFrame = ass as SpriteFrame;\n } catch (error) {\n\n }\n }, false, bundleName);\n }\n public static SetSpriteFrameFace(sp: Sprite, path: string, bundleName: string = \"resources\", bundChildFile: string = \"textures\") {\n\n ResHelper.load(bundChildFile + \"/\" + path, SpriteFrame, (err, ass) => {\n try {\n sp.spriteFrame = ass as SpriteFrame;\n } catch (error) {\n\n }\n }, false, bundleName);\n }\n\n public static SetSpriteSoldierFrame(sp: Sprite, path: string, bundleName: string = \"resources\", bundChildFile: string = \"ui/soldiers\") {\n\n ResHelper.load(bundChildFile + \"/\" + path + '/spriteFrame', SpriteFrame, (err, ass) => {\n try {\n sp.spriteFrame = ass as SpriteFrame;\n } catch (error) {\n\n }\n }, false, bundleName);\n }\n public static SetSpriteHeadFrame(sp: Sprite, path: string, bundleName: string = \"resources\", bundChildFile: string = \"ui/head\") {\n\n ResHelper.load(bundChildFile + \"/\" + path + '/spriteFrame', SpriteFrame, (err, ass) => {\n try {\n sp.spriteFrame = ass as SpriteFrame;\n } catch (error) {\n\n }\n }, false, bundleName);\n }\n\n public static SetSpriteAdvanceFrame(sp: Sprite, path: string, bundleName: string = \"resources\", bundChildFile: string = \"ui/advance\") {\n\n ResHelper.load(bundChildFile + \"/\" + path + '/spriteFrame', SpriteFrame, (err, ass) => {\n try {\n sp.spriteFrame = ass as SpriteFrame;\n } catch (error) {\n\n }\n }, false, bundleName);\n }\n\n /*** Sprite 赋值 SpriteFrame,通过SpriteAtlas */\n public static SetSpriteFramByAtlas(sp: Sprite, path: string, atlaspath: string, bundleName: string = \"resources\", bundChildFile: string = \"ui\") {\n // console.log(\"sp===========\"+sp.name+' atlaspath==='+atlaspath);\n let fileName = atlaspath;\n fileName = fileName.replace(\"ui_\", \"\");\n // console.log(\"==================pathName================\"+(bundChildFile + \"/\"+fileName+\"/\" + path));\n ResHelper.load(bundChildFile + \"/\" + fileName + \"/\" + path, SpriteFrame, (err, atlas: SpriteFrame) => {\n try {\n //console.log(\"1111111111111111111111加载成功atlas==\"+atlas.name);\n const atlass = atlas as SpriteFrame;\n //console.log(\"atlass=====================\"+atlass);\n // const frame = atlass.getSpriteFrame(path);\n sp.spriteFrame = atlass as SpriteFrame;\n } catch (error) {\n }\n }, false, bundleName);\n }\n\n //#endregion\n\n\n /******************************************常用方法 *************************************************************/\n\n //#region 通用方法\n\n /** 万分比转换 */\n public static ConvertExtremelyNumber(number: number) {\n\n if (number == undefined) {\n return 0 + \"%\";\n }\n return (number * 100) / 10000 + \"%\";\n }\n /** undefined转换成0 */\n public static ConvertUndefinedToNumber(number: number) {\n if (number == undefined) {\n return 0;\n }\n return number;\n }\n /**转换成KMB */\n public static ConvertNumberWithUnit(number: number) {\n number = this.ConvertUndefinedToNumber(number);\n const SIZE_UNITS = ['', 'k', 'm', 'b', 't', \"aa\", \"ab\", \"ac\", \"ad\", 'ae', 'af', 'az', 'AA'];\n let unitIndex = 0;\n while (number >= 1000 && unitIndex < SIZE_UNITS.length - 1) {\n number /= 1000;\n unitIndex++;\n }\n\n if (number == 0) {\n return 0 + \"\";\n }\n\n let numbers =number.toFixed(2);\n if(numbers.length>2){\n if(numbers.substring(numbers.length-2)==\"00\"){\n numbers = numbers.replace(\".00\",\"\");\n }else{\n if(numbers.substring(numbers.length-1)==\"0\"){\n numbers = numbers.substring(0,numbers.length-1);\n }\n }\n }\n return numbers+ SIZE_UNITS[unitIndex];\n }\n /** 显示等级LV.{0} */\n public static ShowLV(number: number) {\n\n if (number == undefined) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20009), 1);\n }\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20009), number);\n }\n /** 通过bufftype 获取多语言dec */\n public static GotBuffDecByFuffType(bufftype: number, type: number = 0) {\n let HeroDec = \"\";\n if (bufftype == BuffAttType.None) {\n HeroDec = GlobalFunction.GetMsg(20012);\n }\n else if (bufftype == BuffAttType.gongji) {\n HeroDec = GlobalFunction.GetMsg(20004);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20117);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20133);\n }\n\n } else if (bufftype == BuffAttType.fangyu) {\n HeroDec = GlobalFunction.GetMsg(20005);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20118);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20134);\n }\n\n } else if (bufftype == BuffAttType.xueliang) {\n HeroDec = GlobalFunction.GetMsg(20006);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20119);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20135);\n }\n\n } else if (bufftype == BuffAttType.baojilv) {\n HeroDec = GlobalFunction.GetMsg(20149);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20120);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20136);\n }\n\n } else if (bufftype == BuffAttType.baojishanghai) {\n\n HeroDec = GlobalFunction.GetMsg(20151);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20121);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20137);\n }\n } else if (bufftype == BuffAttType.kangbao) {\n HeroDec = GlobalFunction.GetMsg(20182);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20122);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20138);\n } \n }\n else if (bufftype == BuffAttType.gongjijiacheng) {\n HeroDec = GlobalFunction.GetMsg(20183);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20123);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20139);\n }\n } else if (bufftype == BuffAttType.fangyujiacheng) {\n\n HeroDec = GlobalFunction.GetMsg(20184);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20124);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20140);\n }\n } else if (bufftype == BuffAttType.xueliangjiacheng) {\n HeroDec = GlobalFunction.GetMsg(20185);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20125);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20141);\n }\n } else if (bufftype == BuffAttType.shanghaijiacheng) {\n HeroDec = GlobalFunction.GetMsg(20186);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20126);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20142);\n }\n\n } else if (bufftype == BuffAttType.shanghaijianmian) {\n\n HeroDec = GlobalFunction.GetMsg(20150);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20127);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20143);\n }\n } else if (bufftype == BuffAttType.shanbi) {\n HeroDec = GlobalFunction.GetMsg(20187);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20128);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20144);\n }\n }\n else if (bufftype == BuffAttType.mingzhonglv) {\n HeroDec = GlobalFunction.GetMsg(20188);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20129);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20145);\n }\n } else if (bufftype == BuffAttType.jinengjiacheng) {\n HeroDec = GlobalFunction.GetMsg(20189);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20130);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20146);\n }\n } else if (bufftype == BuffAttType.zhiliaohudun) {\n\n HeroDec = GlobalFunction.GetMsg(20190);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20131);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20147);\n }\n } else if (bufftype == BuffAttType.jiangzhiliao) {\n HeroDec = GlobalFunction.GetMsg(20132);\n if (type == 1) {\n HeroDec = GlobalFunction.GetMsg(20132);\n } else if (type == 2) {\n HeroDec = GlobalFunction.GetMsg(20148);\n }\n\n } else {\n HeroDec = GlobalFunction.GetMsg(20012);\n }\n return HeroDec;\n }\n\n\n /**义肢 */\n public static GotHeroEquipBuffDec(bufftype: number) {\n let HeroDec = \"\";\n if (bufftype == BuffAttType.None) {\n HeroDec = GlobalFunction.GetMsg(20012);\n }else if(bufftype == BuffAttType.gongji){\n HeroDec = GlobalFunction.GetMsg(20117);\n }else if(bufftype == BuffAttType.fangyu){\n HeroDec = GlobalFunction.GetMsg(20118);\n }else if(bufftype == BuffAttType.xueliang){\n HeroDec = GlobalFunction.GetMsg(20119);\n }else if(bufftype == BuffAttType.kangbao){\n HeroDec = GlobalFunction.GetMsg(20122);\n }else if(bufftype == BuffAttType.shanbi){\n HeroDec = GlobalFunction.GetMsg(20128);\n\n }else if(bufftype == BuffAttType.jinengjiacheng){\n HeroDec = GlobalFunction.GetMsg(20130);\n\n }else if(bufftype == BuffAttType.gongjijiacheng){\n HeroDec = GlobalFunction.GetMsg(20139);\n\n }else if(bufftype == BuffAttType.fangyujiacheng){\n HeroDec = GlobalFunction.GetMsg(20140);\n\n }else if(bufftype == BuffAttType.xueliangjiacheng){\n HeroDec = GlobalFunction.GetMsg(20141);\n\n }else if(bufftype == BuffAttType.shanghaijiacheng){\n HeroDec = GlobalFunction.GetMsg(20142);\n }else if(bufftype == BuffAttType.shanghaijianmian){\n HeroDec = GlobalFunction.GetMsg(20143);\n }else if(bufftype == BuffAttType.baojilv){\n HeroDec = GlobalFunction.GetMsg(20209);\n\n }else if(bufftype == BuffAttType.baojishanghai){\n HeroDec = GlobalFunction.GetMsg(20211);\n }else if(bufftype == BuffAttType.mingzhonglv){\n HeroDec = GlobalFunction.GetMsg(20210);\n }\n return HeroDec;\n }\n public static GotBuffColorName(color: number, values: string) {\n if (color == 1) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20191), values);\n } else if (color == 2) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20192), values);\n\n } else if (color == 3) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20193), values);\n }\n }\n\n static getAyToNumber(arr: Array): Array {\n let temp: Array = [];\n for (let i = 0; i < arr.length; i++) {\n temp[i] = Number(arr[i]);\n }\n return temp;\n }\n\n public static InItLayoutPostion(nodes: Layout) {\n // nodes.getComponent(Layout).paddingTop=20;\n nodes.node.position = new Vec3(nodes.node.position.x, -(nodes.node.position.y));\n }\n\n /**获取随机整数 */\n public static GetRandowNumber(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1) + min)\n }\n\n /**判断是否是中文*/\n public static LanguageIsChina(){\n\n let language = sys.localStorage.getItem(\"language\");\n if(language){\n return language==\"zh\";\n }\n return false;\n }\n public static GetCurrentLanguage(){\n let language = sys.localStorage.getItem(\"language\");\n return language;\n }\n /**展示rmm還是my*/\n public static ShowMonyDec(payid:number){\n let payinfodata = PayInfoProxy.Inst.GetPayInfoDataByID(payid);\n if (payinfodata) {\n if (GlobalFunction.LanguageIsChina()) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20079),payinfodata.costMoney);\n } else {\n return \"$\" + payinfodata.OScostMoney / 100;\n }\n }\n return \"\";\n }\n\n /**判断是否其他层级有界面存在*/\n public static IsExistOtherLayer(){\n return WindowManager.Instance().GetLayerToSome();\n }\n\n /**关闭所有界面*/\n public static CloseALlLayer(){\n EventManager.Inst.event(EventType.CLOSE_ALL_UI);\n return WindowManager.Instance().CloseALlLayer();\n }\n\n /**判断主界面是否存在*/\n public static IsExistMainLayer(){\n return WindowManager.Instance().IsNowInMainUILayer();\n } \n //#endregion\n\n \n\n}\n\n\nexport enum BoxStyle {\n BoxStyle1,\n BoxStyle2,\n BoxStyle3,\n BoxStyle4,\n BoxStyle5,\n BoxStyle6,\n BoxStyle7,\n BoxStyle8,\n BoxStyle9,\n BoxStyle10\n}","import { _decorator } from 'cc';\nimport { DataManager } from \"../AutoStorages/DataManager\";\nimport LocalStorage from \"../AutoStorages/LocalStorage\";\nimport { FunctionOpenData } from \"../AutoStorages/PersistentData/FunctionOpenData\";\nimport ModeBase from \"../AutoStorages/PersistentData/ModelBase\";\nimport { TestData } from \"../AutoStorages/PersistentData/TestData\";\nimport GameConst from \"../core/common/GameConst\";\nimport Component from \"../core/component/Component\";\nimport FitUI from \"../core/component/FitUI\";\nimport { FrameAnimation } from \"../core/component/FrameAnimation\";\nimport LinkPrefab from \"../core/component/LinkPrefab\";\nimport ListView from \"../core/component/ListView\";\nimport MotionQueueData from \"../core/component/MotionQueueData\";\nimport MsgHints from \"../core/component/MsgHints\";\nimport { FsmBase } from \"../core/FSM/FsmBase\";\nimport { FsmManager } from \"../core/FSM/FsmManager\";\nimport { FsmStatenNameMap } from \"../core/FSM/FsmStateNameMap\";\nimport BusyLoadingManager from \"../core/manager/BusyLoadingManager\";\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\nimport LayerManager from \"../core/manager/LayerManager\";\nimport PoolManager from \"../core/manager/PoolManager\";\nimport ResClean from \"../core/manager/ResClean\";\nimport ResHelper from \"../core/manager/ResHelper\";\nimport Singleton from \"../core/manager/Singleton\";\nimport WindowManager from \"../core/manager/WindowManager\";\nimport BigNumber from \"../core/utils/BigNumber\";\nimport DesMg from \"../core/utils/DesMg\";\nimport DevTools from \"../core/utils/DevTools\";\nimport Http from \"../core/http/HTTP\";\nimport { HttpGame } from \"../core/http/HttpGame\";\nimport LongTouchComponent from \"../core/utils/LongTouchComponent\";\nimport { Timer } from \"../core/utils/Timer\";\nimport Utils from \"../core/utils/Utils\";\nimport { WorkerEntity } from \"../core/utils/WorkerEntity\";\nimport { ByteUtils } from \"../LayaCode/ByteUtils\";\nimport { Laya_Event } from \"../LayaCode/Event\";\nimport { EventDispatcher } from \"../LayaCode/EventDispatcher\";\nimport { HalfFloatUtils } from \"../LayaCode/HalfFloatUtils\";\nimport { Handler } from \"../LayaCode/Handler\";\nimport { LayaTimer } from \"../LayaCode/LayaTimer\";\nimport { SharedByteUtils } from \"../LayaCode/SharedByteUtils\";\nimport EditorAsset from \"../misc/EditorAsset\";\nimport BatchItems from \"../modules/common/BatchItem\";\nimport BusyLoading from \"../modules/common/BusyLoading\";\nimport SwitchButton from \"../modules/common/SwitchButton\";\nimport { GameLauchState } from \"../modules/fsm/gameFlow/GameLaunchState\";\nimport { GameLoaingState } from \"../modules/fsm/gameFlow/GameLoadingState\";\nimport { GameMainState } from \"../modules/fsm/gameFlow/GameMainState\";\nimport { GamePreloadState } from \"../modules/fsm/gameFlow/GamePreloadState\";\nimport ServerListWin from \"../modules/game/serverlist/ServerListWin\";\nimport GameEntry from \"../modules/GameEntry\";\nimport { GameManager } from \"../modules/GameManager\";\nimport { HotFixManager } from \"../modules/HotFixManager\";\nimport LoadingWin from \"../modules/loading/LoadingWin\";\nimport MessageBox from \"../modules/MessageBox\";\nimport { ModelUser } from \"../modules/ModelUser\";\nimport { NetManager } from \"../modules/NetManager\";\nimport { RouteSystem } from \"../modules/routes/RouteSystem\";\nimport { RouteUser } from \"../modules/routes/RouteUser\";\nimport { XxxEventReport } from \"../modules/XxxEventReport\";\nimport HollowOut from \"../RenderEffects/HollowOut\";\nimport HollowOutPlus from \"../RenderEffects/HollowOutPlus\";\nimport { LoadingIcon } from \"../RenderEffects/LoadingIcon\";\nimport RotateMoveUV from \"../RenderEffects/RotateMoveUV\";\nimport { GlobalScope, Scope, SmartConfig } from \"./virtual-machine\";\nimport LoadingKefuWin from \"../modules/loading/LoadingKefuWin\";\nimport MainUI from '../modules/game/mainui/MainUI';\nimport HeroUI from '../modules/game/heroui/HeroUI';\nimport EnterUI from '../modules/loading/EnterUI';\nimport TitleUI from '../modules/game/titleui/TitleUI';\nimport OfflineUI from '../modules/game/offlineui/OfflineUI';\nimport HeroEquiptAutoUI from '../modules/game/heroui/HeroEquiptAutoUI';\nimport HeroEquiptContrastUI from '../modules/game/heroui/HeroEquiptContrastUI';\nimport HeroEquiptUI from '../modules/game/heroui/HeroEquiptUI';\nimport HeroEquiptUpUI from '../modules/game/heroui/HeroEquiptUpUI';\nimport HeroTexingUI from '../modules/game/heroui/HeroTexingUI';\nimport HeroTipsUI from '../modules/game/heroui/HeroTipsUI';\nimport SoldiersUI from '../modules/game/soldiersui/SoldiersUI';\nimport SoldiersEquiptQhUI from '../modules/game/soldiersui/SoldiersEquiptQhUI';\nimport ShopUI from '../modules/game/shopui/ShopUI';\nimport WebLoadingUIViewComp from '../modules/loading/WebLoadingUI';\nimport WebLoadingUI from '../modules/loading/WebLoadingUI';\n\nexport class GlobalScopeValues {\n public gs: GlobalScope;\n constructor() {\n this.gs = new GlobalScope(\n {\n EventType,\n console,\n LoadingKefuWin,\n HollowOutPlus,\n DataManager,\n LocalStorage,\n FunctionOpenData,\n ModeBase,\n TestData,\n GameConst,\n Component,\n FitUI,\n FrameAnimation,\n LinkPrefab,\n ListView,\n MotionQueueData,\n MsgHints,\n FsmBase,\n FsmManager,\n FsmStatenNameMap,\n BusyLoadingManager,\n EventManager,\n LayerManager,\n PoolManager,\n ResClean,\n ResHelper,\n Singleton,\n WindowManager,\n BigNumber,\n DesMg,\n DevTools,\n Http,\n HttpGame,\n LongTouchComponent,\n Timer,\n Utils,\n WorkerEntity,\n ByteUtils,\n Laya_Event,\n EventDispatcher,\n HalfFloatUtils,\n Handler,\n LayaTimer,\n SharedByteUtils,\n EditorAsset,\n BatchItems,\n BusyLoading,\n SwitchButton,\n GameLauchState,\n GameLoaingState,\n GameMainState,\n GamePreloadState,\n GameEntry,\n GameManager,\n HotFixManager,\n LoadingWin,\n MessageBox,\n ModelUser,\n NetManager,\n RouteSystem,\n RouteUser,\n XxxEventReport: XxxEventReport,\n HollowOut,\n LoadingIcon,\n RotateMoveUV,\n GlobalScopeValues,\n Scope,\n GlobalScope,\n SmartConfig,\n ServerListWin,\n MainUI,\n HeroUI,\n EnterUI,\n TitleUI,\n OfflineUI,\n HeroEquiptAutoUI,\n HeroEquiptContrastUI,\n HeroEquiptUI,\n HeroEquiptUpUI,\n HeroTexingUI,\n HeroTipsUI,\n SoldiersUI,\n SoldiersEquiptQhUI,\n ShopUI,\n WebLoadingUI\n }\n\n );\n }\n}","import { EditBox } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport GameEntry from \"../../GameEntry\";\r\nimport { GebolInAiEnum, GebolInTypeEnum } from \"../../../role/GebolinView\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"GmView\")\r\nexport class GmView extends Component{\r\n @property(EditBox)\r\n guanqiaLabel : EditBox = null;\r\n @property(EditBox)\r\n jinbiLabel : EditBox = null;\r\n @property(EditBox)\r\n zuanshiLabel : EditBox = null;\r\n\r\n onGuaQiaClick(){\r\n GameModleComp.getInstance().selectGuankaId = Number(this.guanqiaLabel.string);\r\n GameModleComp.getInstance().showNewGuanqia();\r\n this.desTroy();\r\n }\r\n onJinbiClick(){\r\n\r\n this.desTroy();\r\n }\r\n onZuanshiClick(){\r\n\r\n this.desTroy();\r\n }\r\n\r\n\r\n desTroy(){\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n this.destroy();\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { Item } from \"electron/main\";\r\nimport { ItemData, ItemProxy } from \"../modules/game/proxy/ItemProxy\";\r\nimport { GlobalFunction } from \"../modules/game/common/GlobalFunction\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('GoldItemComp')\r\nexport class GoldItemComp extends Component{\r\n @property(Label)\r\n itemNum:Label = null;\r\n @property(Sprite)\r\n itemIcon:Sprite = null;\r\n @property(Sprite)\r\n itemKuang:Sprite = null;\r\n onLoad(): void {\r\n\r\n }\r\n setData(item : MapItem){\r\n let itemCfg:ItemData = ItemProxy.Inst.GetItemDataByID(item.id);\r\n this.itemNum.string = GlobalFunction.ConvertNumberWithUnit(item.num) + \"\";\r\n GlobalFunction.SetSpriteFrame(this.itemIcon,itemCfg.icon);\r\n GlobalFunction.SetSpriteFrame(this.itemKuang,ItemProxy.Inst.GetItemKuangByColor(itemCfg.color));\r\n }\r\n}\r\n\r\nexport class MapItem{\r\n id:number;\r\n num:number;\r\n}","import { _decorator } from 'cc';\r\nimport { Component } from 'cc';\r\nimport { Node } from 'cc';\r\nimport { Sprite } from 'cc';\r\nimport { Label } from 'cc';\r\nimport { Guide, GuidePoxy } from '../proxy/GuidePoxy';\r\nimport { GuideSubStep, GuideSubStepPoxy } from '../proxy/GuideSubStepPoxy';\r\nimport { Story, StoryPoxy } from '../proxy/StoryPoxy';\r\nimport { GlobalFunction } from '../common/GlobalFunction';\r\nimport { Mask } from 'cc';\r\nimport { Transform } from 'stream';\r\nimport { UITransform } from 'cc';\r\nimport { Size } from 'cc';\r\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\r\nimport { Event } from 'cc';\r\nimport GameEntry from '../../GameEntry';\r\nimport { Vec3 } from 'cc';\r\nimport MapRoadUtils from '../../../map/road/MapRoadUtils';\r\nimport { GuideManager } from './GuideManager';\r\nimport { RichText } from 'cc';\r\nimport { GameModleComp } from '../../../game/GameModle';\r\nimport { find } from 'cc';\r\nimport { Logger } from '../../../../core/common/log/Logger';\r\nconst { ccclass, property } = _decorator;\r\n\r\n@ccclass('GuideLayer')\r\nexport class GuideLayer extends Component {\r\n \r\n @property(Node)\r\n maskNode: Node = null!;\r\n @property(Node)\r\n maskShade: Node = null!;\r\n @property(Node)\r\n rightNode: Node = null!;\r\n @property(Node)\r\n leftNode: Node = null!;\r\n @property(Sprite)\r\n circle: Sprite = null;\r\n @property(Sprite)\r\n circle1: Sprite = null;\r\n @property(RichText)\r\n strLabel : RichText = null;\r\n @property(Node)\r\n labelNode:Node = null;\r\n @property(Node)\r\n hanldNode:Node = null;\r\n @property(Node)\r\n leftRole:Node = null;\r\n @property(Label)\r\n leftRoleLabel : Label = null;\r\n @property(Sprite)\r\n leftRolecircle: Sprite = null;\r\n @property(Node)\r\n rightRole:Node = null;\r\n @property(Label)\r\n rightRoleLabel : Label = null;\r\n @property(Sprite)\r\n rightRolecircle: Sprite = null;\r\n fire: boolean = false;//开始打字\r\n timer: number = 0.1;//打字间隔\r\n str: Array = [];\r\n dt: number = 0;\r\n private bigId:number = 0;\r\n private smallId:number = 0;\r\n private guide:Guide;\r\n private guideStep:GuideSubStep;\r\n private story:Story;\r\n private guideNode:Node = null;\r\n private isInMap:number = 0\r\n protected onLoad(): void {\r\n }\r\n init(bigId:number , smallId:number , node:Node , isInMap:number=0){\r\n console.log(\"进入新的引导。当前引导\"+smallId);\r\n this.guideNode = node;\r\n this.bigId = bigId;\r\n this.smallId = smallId;\r\n this.isInMap = isInMap;\r\n this.guide = GuidePoxy.Inst.getGuideById(bigId);\r\n this.guideStep = GuideSubStepPoxy.Inst.getGuideSubStepById(smallId);\r\n if(this.guideStep.isCloseAll){\r\n GlobalFunction.CloseALlLayer();\r\n }\r\n this.showGuide();\r\n this.addEvent();\r\n }\r\n private addEvent(){\r\n EventManager.Inst.on(this.guideStep.guideEvent , this , this.onGuideEvent);\r\n }\r\n private showGuide(){\r\n if(this.guideStep.storyID){\r\n this.story = StoryPoxy.Inst.getStoryById(this.guideStep.storyID);\r\n this.showLabel();\r\n }else{\r\n this.showHanld();\r\n }\r\n }\r\n private showLabel(){\r\n this.labelNode.active = true;\r\n this.typeDialog(this.story.lan_dec)\r\n if(this.story.type == 1){\r\n this.leftRoleLabel.string = this.story.lan_name;\r\n // GlobalFunction.SetSpriteFrame(this.leftRolecircle , this.story.icon,\"resources\",\"ui/guide\");\r\n let node:Node = find(this.story.icon , this.leftRolecircle.node);\r\n if(node){\r\n node.active = true;\r\n }\r\n this.leftRole.active = true;\r\n this.rightRole.active = false;\r\n }else{\r\n this.rightRoleLabel.string = this.story.lan_name;\r\n // GlobalFunction.SetSpriteFrame(this.rightRolecircle , this.story.icon,\"resources\",\"ui/guide\");\r\n let node:Node = find(this.story.icon , this.rightRolecircle.node);\r\n if(node){\r\n node.active = true;\r\n }\r\n this.rightRole.active = true;\r\n this.leftRole.active = false;\r\n }\r\n }\r\n private showHanld(){\r\n let posn;\r\n this.hanldNode.active = true;\r\n let typeStr:string = this.guideStep.keyType;\r\n if(typeStr.indexOf(\",\") >= 0){\r\n //方形\r\n this.maskNode.getComponent(Mask).type = 0;\r\n let arr:Array = GuideManager.getInstance().getStringArrToNum(typeStr.split(\",\"));\r\n this.maskNode.getComponent(UITransform).setContentSize(new Size(arr[0], arr[1]));\r\n }else{\r\n let typeNum:number = Number(this.guideStep.keyType);\r\n if(typeNum == 0){\r\n //自适应\r\n this.maskNode.getComponent(Mask).type = 0;\r\n }else{\r\n //圆形\r\n this.maskNode.getComponent(Mask).type = 1;\r\n }\r\n }\r\n if(this.guideStep.fingerType){\r\n switch(this.guideStep.fingerType){\r\n case 1:\r\n this.rightNode.active = true;\r\n this.leftNode.active = false;\r\n this.rightNode.setScale(new Vec3 (1 , 1));\r\n break;\r\n case 2:\r\n this.rightNode.active = false;\r\n this.leftNode.active = true;\r\n this.leftNode.setScale(new Vec3 (1 , 1));\r\n break;\r\n case 3:\r\n this.rightNode.active = true;\r\n this.leftNode.active = false;\r\n this.rightNode.setScale(new Vec3 (1 , -1));\r\n break;\r\n case 4:\r\n this.rightNode.active = false;\r\n this.leftNode.active = true;\r\n this.leftNode.setScale(new Vec3 (1 , -1));\r\n break;\r\n }\r\n }\r\n if (this.guideNode && this.guideNode.isValid && this.guideNode.parent) {\r\n if(this.guideStep.buildPosID){\r\n let arr:Array = this.guideStep.camera.split(\",\");\r\n let v3:Vec3 = MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0))\r\n GameEntry.Inst.mapView.nowScene.setViewToPoint(v3.x ,v3.y);\r\n }\r\n let addPoint:Vec3;\r\n if(this.guideStep.buildPosID){\r\n /**角色对象的局部坐标*/\r\n let posV3:Vec3 = this.guideNode.position;\r\n /**角色对象的map摄像机下本地坐标转世界坐标 */\r\n let wordPoint:Vec3 = GameEntry.Inst.mapView.nowScene.floorLayer.getComponent(UITransform).convertToWorldSpaceAR(posV3);\r\n /**世界坐标转屏幕坐标*/\r\n let screenPoint:Vec3 = GameEntry.Inst.mapView.nowScene.mapCamera.worldToScreen(wordPoint);\r\n /**世界坐标转屏幕坐标*/\r\n let uiWordPoint:Vec3 = GameEntry.Inst.mainCamera.screenToWorld(screenPoint);\r\n /**屏幕坐标转局部坐标*/\r\n addPoint = this.node.parent.getComponent(UITransform).convertToNodeSpaceAR(uiWordPoint);\r\n }else{\r\n /**角色对象的局部坐标*/\r\n let posV3:Vec3 = this.guideNode.position;\r\n /**角色对象的map摄像机下本地坐标转世界坐标 */\r\n let wordPoint:Vec3 = this.guideNode.parent.getComponent(UITransform).convertToWorldSpaceAR(posV3);\r\n /**世界坐标转屏幕坐标*/\r\n let screenPoint:Vec3 = GameEntry.Inst.mainCamera.worldToScreen(wordPoint);\r\n /**世界坐标转屏幕坐标*/\r\n let uiWordPoint:Vec3 = GameEntry.Inst.mainCamera.screenToWorld(screenPoint);\r\n /**屏幕坐标转局部坐标*/\r\n addPoint = this.node.parent.getComponent(UITransform).convertToNodeSpaceAR(uiWordPoint);\r\n }\r\n if(this.guideStep.ay_key.length){\r\n addPoint.x += Number(this.guideStep.ay_key[0]);\r\n addPoint.y += Number(this.guideStep.ay_key[1]);\r\n }\r\n \r\n this.maskNode.position = addPoint;\r\n this.leftNode.position = addPoint;\r\n this.rightNode.position = addPoint;\r\n this.maskNode.getComponent(UITransform).contentSize = this.guideNode.getComponent(UITransform).contentSize;\r\n this.maskShade.position = new Vec3(0, 0, 0).subtract(addPoint);\r\n }\r\n }\r\n /**进入下一步*/\r\n private showNextGuide(){\r\n if(this.guideStep.isOver){\r\n if(this.bigId == 10){\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(11);\r\n let stepArr:Array = GuideManager.getInstance().getStringArrToNum(guide.ay_stepsID);\r\n for(let i = 0 ; i < stepArr.length ; i++){\r\n GuideManager.Instance().SendC1037(stepArr[i]);\r\n }\r\n GuideManager.Instance().SendC1037(11);\r\n }\r\n if(this.bigId == 11){\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(10);\r\n let stepArr:Array = GuideManager.getInstance().getStringArrToNum(guide.ay_stepsID);\r\n for(let i = 0 ; i < stepArr.length ; i++){\r\n GuideManager.Instance().SendC1037(stepArr[i]);\r\n }\r\n GuideManager.Instance().SendC1037(10);\r\n }\r\n console.log(\"关闭一个大引导:\" + this.bigId)\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(this.bigId);\r\n let stepArr:Array = GuideManager.getInstance().getStringArrToNum(guide.ay_stepsID);\r\n for(let i = 0 ; i < stepArr.length ; i++){\r\n GuideManager.Instance().SendC1037(stepArr[i]);\r\n }\r\n GuideManager.Instance().SendC1037(this.bigId);\r\n }\r\n GuideManager.Instance().closeGuide(this.bigId , this.smallId);\r\n }\r\n /**引导事件*/\r\n private onGuideEvent(guideId:number){\r\n if(GameModleComp.getInstance().jumpGuide){\r\n return;\r\n }\r\n if(guideId == this.smallId){\r\n this.showNextGuide();\r\n }\r\n }\r\n\r\n onBtnClick(){\r\n if(this.fire){\r\n return;\r\n }\r\n this.showNextGuide();\r\n }\r\n typeDialog(str: string) {\r\n this.str = str.split('');\r\n this.dt = 0;\r\n this.fire = false;\r\n this.strLabel.string = str;\r\n }\r\n update(deltaTime: number) {\r\n // if (!this.fire || deltaTime > 0.1) {\r\n // return;\r\n // }\r\n // if (!this.str.length) {\r\n // this.fire = false;\r\n // return;\r\n // }\r\n // this.dt += deltaTime;\r\n // if (this.dt >= this.timer) {\r\n // this.dt = 0;\r\n // let nowStr: string = this.str.shift();\r\n // this.strLabel.string += nowStr;\r\n // }\r\n }\r\n desTory(){\r\n if(this && this.node && this.node.parent){\r\n EventManager.Inst.off(this.guideStep.guideEvent , this , this.onGuideEvent);\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n }\r\n }\r\n onDesClick(){\r\n GameModleComp.getInstance().jumpGuide = true;\r\n console.log(\"关闭一个大引导:\" + this.bigId)\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(this.bigId);\r\n let stepArr:Array = GuideManager.getInstance().getStringArrToNum(guide.ay_stepsID);\r\n let lastId:number = 0;\r\n for(let i = 0 ; i < stepArr.length ; i++){\r\n GuideManager.Instance().SendC1037(stepArr[i]);\r\n lastId = stepArr[i];\r\n }\r\n GuideManager.Instance().SendC1037(this.bigId);\r\n\r\n GuideManager.Instance().closeGuide(this.bigId , lastId);\r\n this.desTory();\r\n }\r\n}","import { instantiate } from \"cc\";\r\nimport { Logger } from \"../../../../core/common/log/Logger\";\r\nimport Singleton from \"../../../core/manager/Singleton\";\r\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nimport { c1037, s1038 } from \"../../../proto/proto\";\r\nimport { FunctionProxy } from \"../proxy/FunctionProxy\";\r\nimport { Guide, GuidePoxy } from \"../proxy/GuidePoxy\";\r\nimport { GuideLayer } from \"./GuideLayer\";\r\nimport GameEntry from \"../../GameEntry\";\r\nimport WindowManager, { UILayer } from \"../../../core/manager/WindowManager\";\r\nimport { GuideSubStep, GuideSubStepPoxy } from \"../proxy/GuideSubStepPoxy\";\r\nimport { TouchBarSlider } from \"electron\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nimport { Node } from \"cc\";\r\nimport { PveTypeEnum } from \"../../../enum/Enum\";\r\nimport { BossComeUiViewComp } from \"../../../item/BossComeUiViewComp\";\r\nimport GameConst from \"../../../core/common/GameConst\";\r\n\r\nexport class GuideManager extends Singleton {\r\n /**进入游戏时候 服务器返回的引导ID*/\r\n private _severGuideIds: Array = [];\r\n public get severGuideIds(): Array {\r\n return this._severGuideIds;\r\n }\r\n public set severGuideIds(value: Array) {\r\n this._severGuideIds = value;\r\n }\r\n /**配置表给到的所有新手引导大ID*/\r\n private _cfgGuideIds: Array = [];\r\n public get cfgGuideIds(): Array {\r\n return this._cfgGuideIds;\r\n }\r\n public set cfgGuideIds(value: Array) {\r\n this._cfgGuideIds = value;\r\n }\r\n /**我剩余未完成的新手引导*/\r\n private _myLastGuideIds: Array = [];\r\n public get myLastGuideIds(): Array {\r\n return this._myLastGuideIds;\r\n }\r\n public set myLastGuideIds(value: Array) {\r\n this._myLastGuideIds = value;\r\n }\r\n /***我的已经开启的引导队列*/\r\n private _openGuideList: Array = [];\r\n public get openGuideList(): Array {\r\n return this._openGuideList;\r\n }\r\n public set openGuideList(value: Array) {\r\n this._openGuideList = value;\r\n }\r\n /**是否在新手引导中*/\r\n private _isInGuide: boolean = false;\r\n public get isInGuide(): boolean {\r\n return this._isInGuide;\r\n }\r\n public set isInGuide(value: boolean) {\r\n this._isInGuide = value;\r\n }\r\n /***等待UI的新手引导ID*/\r\n private _waitSmallId: number = 0;\r\n public get waitSmallId(): number {\r\n return this._waitSmallId;\r\n }\r\n public set waitSmallId(value: number) {\r\n this._waitSmallId = value;\r\n }\r\n /**新手引导UI*/\r\n private guideLayer:GuideLayer = null;\r\n\r\n /***/\r\n private _nowGuideId: number = 0;\r\n public get nowGuideId(): number {\r\n return this._nowGuideId;\r\n }\r\n public set nowGuideId(value: number) {\r\n this._nowGuideId = value;\r\n }\r\n\r\n private _guideTaskId: number = 0;\r\n public get guideTaskId(): number {\r\n return this._guideTaskId;\r\n }\r\n public set guideTaskId(value: number) {\r\n this._guideTaskId = value;\r\n }\r\n private static instance: GuideManager;\r\n public static getInstance(): GuideManager {\r\n if (!GuideManager.instance) {\r\n GuideManager.instance = new GuideManager();\r\n }\r\n return GuideManager.instance;\r\n }\r\n private addEvent(){\r\n EventManager.Inst.on(EventType.uiOpenEvent_1007 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_1008 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_1011 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_1012 , this , this.onGuideEvent);\r\n\r\n EventManager.Inst.on(EventType.uiOpenEvent_2007 , this , this.onGuideEvent);\r\n\r\n EventManager.Inst.on(EventType.uiOpenEvent_3003 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_3004 , this , this.onGuideEvent);\r\n\r\n EventManager.Inst.on(EventType.uiOpenEvent_4004 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_4005 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_4006 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_4008 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_4009 , this , this.onGuideEvent);\r\n\r\n EventManager.Inst.on(EventType.uiOpenEvent_5003 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_5005 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_5006 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_9003 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_9004 , this , this.onGuideEvent);\r\n\r\n \r\n EventManager.Inst.on(EventType.uiOpenEvent_10002 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_10003 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_10004 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_10006 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_10008 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_10009 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_10010 , this , this.onGuideEvent);\r\n EventManager.Inst.on(EventType.uiOpenEvent_10011 , this , this.onGuideEvent);\r\n \r\n }\r\n /**UI响应\r\n * arr = [smallID:number , node:node]\r\n */\r\n private onGuideEvent(arr:any){\r\n if(GameModleComp.getInstance().jumpGuide){\r\n return;\r\n }\r\n if(this.waitSmallId && this.waitSmallId == arr[0]){\r\n this.waitSmallId = 0;\r\n this.guideLayer = instantiate(GameEntry.Inst.guideLayer).getComponent(GuideLayer);\r\n let layer = WindowManager.Instance().getLayer(UILayer.最顶顶层);\r\n layer.addChild(this.guideLayer.node);\r\n this.guideLayer.init(this.openGuideList[0] , arr[0] , arr[1]);\r\n }\r\n }\r\n /**进入游戏初始化的时候 我需要在这里初始化所有新手引导数据*/\r\n initGuideData(){\r\n if(GameModleComp.getInstance().jumpGuide){\r\n return;\r\n }\r\n this.addAllCfg();\r\n this.addAllGuide(this.severGuideIds);\r\n this.showGuide();\r\n this.addEvent();\r\n }\r\n /**我在这里触发一次所有的新手引导\r\n * 看看是否是有可以开启的引导项*/\r\n showGuide(){\r\n if(GameModleComp.getInstance().jumpGuide){\r\n return;\r\n }\r\n // return;\r\n let haveIds:Array = [];\r\n let openIds:Array = [];\r\n for(let i = 0 ; i < this.myLastGuideIds.length ; i++){\r\n let id:number = this.myLastGuideIds[i];\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(id);\r\n let stepArr:Array = this.getStringArrToNum(guide.ay_stepsID);\r\n if(this.severGuideIds.indexOf(stepArr[0]) >= 0){\r\n /***当前引导已经被触发过,但是未完成*/\r\n haveIds.push(id);\r\n }else{\r\n /**这个引导未被触发过*/\r\n if(this.isOpenGuide(guide)){\r\n openIds.push(id);\r\n }\r\n }\r\n }\r\n openIds.sort((a,b)=>{\r\n return a-b;\r\n })\r\n let allIds:Array = haveIds.concat(openIds);\r\n for(let i = 0 ; i < allIds.length ; i++){\r\n this.openGuideList[i] = allIds[i];\r\n }\r\n if(!GuideManager.getInstance().isInGuide){\r\n this.showNowGuide();\r\n }\r\n }\r\n /**展示当前的新手引导*/\r\n showNowGuide(justGuide:number=0){\r\n if(!this.openGuideList.length){\r\n return;\r\n }\r\n let guideId:number = justGuide ? justGuide : this.openGuideList[0];\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(guideId);\r\n let stepArr:Array = this.getStringArrToNum(guide.ay_stepsID);\r\n let nowSmallId:number = stepArr[0];\r\n this.isInGuide = true;\r\n this.nowGuideId = nowSmallId;\r\n this.showSmallGuide(nowSmallId);\r\n }\r\n /**进入一个新手引导小步骤*/\r\n private showSmallGuide(nowSmallId:number , node:Node = null){\r\n if(nowSmallId == 2002 || nowSmallId == 7002 || nowSmallId == 8002){\r\n let bossCome:BossComeUiViewComp = instantiate(GameEntry.Inst.bossCome).getComponent(BossComeUiViewComp);\r\n bossCome.isGuideId = nowSmallId;\r\n let laye:Node = WindowManager.Instance().getLayer(UILayer.最顶层);\r\n laye.addChild(bossCome.node);\r\n return;\r\n }\r\n let mapOrUi:number = 0;\r\n let guideStep:GuideSubStep = GuideSubStepPoxy.Inst.getGuideSubStepById(nowSmallId);\r\n if(guideStep.uiOpenEvent){\r\n this.waitSmallId = nowSmallId;\r\n }else{\r\n this.waitSmallId = 0;\r\n if(!node){\r\n if(guideStep.buildPosID){\r\n if(GameEntry.Inst.mapView.buildMap.get(guideStep.buildPosID)){\r\n node = GameEntry.Inst.mapView.buildMap.get(guideStep.buildPosID).node\r\n mapOrUi = 1;\r\n }\r\n }else if(guideStep.isMainUiNode){\r\n node = WindowManager.Instance().getWin(\"MainUI\")[guideStep.keyName].node;\r\n }\r\n }\r\n this.guideLayer = instantiate(GameEntry.Inst.guideLayer).getComponent(GuideLayer);\r\n let layer = WindowManager.Instance().getLayer(UILayer.最顶顶层);\r\n layer.addChild(this.guideLayer.node);\r\n this.guideLayer.init(this.openGuideList[0] , nowSmallId , node , mapOrUi);\r\n }\r\n }\r\n /**在这里判断当前引导是否可以开启*/\r\n public isOpenGuide(guide:Guide):boolean{\r\n let isBoo:boolean = false;\r\n if(GameModleComp.getInstance().isInCopy){\r\n if(guide.triggerType == 3){\r\n if(GameModleComp.getInstance().isInCopy){\r\n if(GameModleComp.getInstance().transPveData.fubenType == guide.typeId){\r\n return true;\r\n }\r\n }\r\n } \r\n }else{\r\n if(guide.triggerType == 1){\r\n //关卡触发\r\n if(GameModleComp.getInstance().selectGuankaId >= guide.typeId){\r\n return true;\r\n }\r\n }else if(guide.triggerType == 2){\r\n //功能触发\r\n if(FunctionProxy.Inst.GetFuntionIsOpen(guide.typeId)){\r\n return true;\r\n }\r\n }else if(guide.triggerType == 4){\r\n if(this.guideTaskId == guide.typeId){\r\n return true;\r\n }\r\n }else if(guide.triggerType == 5){\r\n if(WindowManager.Instance().getWin(GameConst.winPath.ShopUI.name)){\r\n return true;\r\n }\r\n } \r\n\r\n }\r\n return isBoo;\r\n }\r\n\r\n /**配置表给到的所有ID\r\n * 初始化的时候全部设置成为未完成\r\n */\r\n private addAllCfg(){\r\n for(let i = 1 ; i < 12; i++){\r\n // if(i != 2){\r\n this.cfgGuideIds[i-1] = i;\r\n // }\r\n }\r\n for(let i = 1 ; i < 12 ; i++){\r\n // if(i != 2){\r\n this.myLastGuideIds[i-1] = i;\r\n // }\r\n }\r\n }\r\n /**服务器返回的所有已完成新手引导\r\n * 我需要在这里区分所有新手引导是否已经完成\r\n */\r\n private addAllGuide(ids:Array){\r\n let bigIds:Array = [];\r\n let smallIds:Array = [];\r\n for(let i = 0 ; i < ids.length ; i++){\r\n if(ids[i] < 100){\r\n bigIds.push(ids[i])\r\n }else{\r\n smallIds.push(ids[i]);\r\n }\r\n }\r\n bigIds.sort((a,b)=>{\r\n return a-b;\r\n })\r\n smallIds.sort((a,b)=>{\r\n return a-b;\r\n })\r\n\r\n for(let i = 0 ; i < bigIds.length ; i++){\r\n let id:number = bigIds[i];\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(id);\r\n let stepArr:Array = this.getStringArrToNum(guide.ay_stepsID);\r\n let isOver:boolean = false;\r\n for(let l = 0 ; l < stepArr.length ; l++){\r\n if(ids.indexOf(stepArr[l]) < 0){\r\n isOver = true;\r\n }\r\n }\r\n /**如果当前新手引导所有小步骤都已经完成\r\n * 从我的引导中删除当前大ID\r\n * 保证我的剩余引导都是未完成的\r\n * */\r\n if(!isOver){\r\n this.myLastGuideIds.splice(this.myLastGuideIds.indexOf(id) , 1);\r\n }\r\n }\r\n }\r\n getStringArrToNum(arr:Array):Array{\r\n let numArr:Array = [];\r\n for(let i = 0 ; i < arr.length ; i++){\r\n numArr.push(Number(arr[i]));\r\n }\r\n return numArr;\r\n }\r\n\r\n /***完成了一个引导,\r\n * 顺便返回当前引导是否全部完成,如果未完成 引导可以进入下一步小引导\r\n */\r\n closeGuide(bigId:number , smallId:number):boolean{\r\n if(this.guideLayer){\r\n this.guideLayer.desTory();\r\n this.guideLayer = null;\r\n }\r\n this.severGuideIds.push(smallId);\r\n let isAllClose:boolean = this.isAllClose(bigId , smallId);\r\n if(isAllClose){\r\n this.severGuideIds.push(bigId);\r\n this.myLastGuideIds.splice(this.myLastGuideIds.indexOf(bigId) , 1);\r\n this.openGuideList.splice(0,1);\r\n this.isInGuide = false;\r\n if(bigId == 10){\r\n this.myLastGuideIds.splice(this.myLastGuideIds.indexOf(11) , 1);\r\n this.openGuideList.splice(this.openGuideList.indexOf(11),1);\r\n }\r\n if(bigId == 11){\r\n this.myLastGuideIds.splice(this.myLastGuideIds.indexOf(10) , 1);\r\n this.openGuideList.splice(this.openGuideList.indexOf(10),1);\r\n }\r\n setTimeout(() => {\r\n this.showGuide();\r\n }, 1000);\r\n }else{\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(bigId);\r\n let stepArr:Array = this.getStringArrToNum(guide.ay_stepsID);\r\n let next:number = stepArr.indexOf(smallId)+1;\r\n console.log(\"当前引导\"+smallId +\", 准备下一个ID:\"+stepArr[next])\r\n if(smallId == 2005){\r\n this.waitSmallId = 2007;\r\n EventManager.Inst.event(EventType.GUIDE_TS_2005);\r\n }\r\n if(smallId == 10001){\r\n this.waitSmallId = 10002;\r\n EventManager.Inst.event(EventType.GUIDE_TS_10001);\r\n }\r\n if(smallId == 10003){\r\n this.waitSmallId = 10004;\r\n EventManager.Inst.event(EventType.GUIDE_TS_10003);\r\n }\r\n if(smallId == 10007){\r\n this.waitSmallId = 10008;\r\n EventManager.Inst.event(EventType.GUIDE_TS_10007);\r\n }\r\n this.showSmallGuide(stepArr[next]);\r\n }\r\n return isAllClose;\r\n }\r\n /**意外状况,突发关闭引导*/\r\n closeAllGuide(){\r\n if(this.guideLayer){\r\n this.guideLayer.desTory();\r\n this.guideLayer = null;\r\n }\r\n }\r\n /**判断某一个新手引导是否全部完成*/\r\n isAllClose(bigId:number , smallId:number):boolean{\r\n let guide:Guide = GuidePoxy.Inst.getGuideById(bigId);\r\n let stepArr:Array = this.getStringArrToNum(guide.ay_stepsID);\r\n if(stepArr.indexOf(smallId) == (stepArr.length-1)){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**发送新手引导完成信息*/\r\n SendC1037(guideId:number){\r\n var c1037: c1037 = {\r\n guideID : guideId\r\n };\r\n send2client(\"c1037\", c1037);\r\n }\r\n}\r\n\r\n/**服务器推送的新手引导数据*/\r\nexport function do_s1038(s1038: s1038) {\r\n if(s1038.guideIDs && s1038.guideIDs != undefined && s1038.guideIDs.length){\r\n GuideManager.getInstance().severGuideIds = s1038.guideIDs;\r\n }else{\r\n Logger.logNet(\"服务器给到了我空的新手引导\");\r\n }\r\n}\r\n","/**\n * Guide config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class GuidePoxy {\n private static _inst: GuidePoxy;\n public static get Inst(): GuidePoxy {\n if (GuidePoxy._inst == null) {\n GuidePoxy._inst = new GuidePoxy();\n }\n return GuidePoxy._inst;\n }\n @res_assign(\"Guide\")\n public GuideMaps: Map = new Map();\n public InitGuideConfig() {\n if (this.GuideMaps.size > 0) {\n this.GuideMaps.clear();\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Guide\")) {\n let Guideitem = ConfigManager.GetInstance().getValue(\"Guide\")[key];\n if (Guideitem) {\n for (var keys in Guideitem) {\n Guideitem[keys] = GlobalFunction.Inst.ParamDef(keys, Guideitem[keys]);\n }\n this.GuideMaps.set(Guideitem.guideID, Guideitem);\n }\n\n }\n }\n public getGuideById(guideID: number) {\n if (guideID == undefined) return undefined;\n return this.GuideMaps.get(guideID);\n }\n}\nexport class Guide {\n /** 引导ID */\n guideID: number;\n /** 触发类型 */\n triggerType: number;\n /** 类型类型*/\n typeId: number;\n /** 引导步骤ID */\n ay_stepsID: Array;\n}","/**\n * GuideSubStep config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class GuideSubStepPoxy {\n private static _inst: GuideSubStepPoxy;\n public static get Inst(): GuideSubStepPoxy {\n if (GuideSubStepPoxy._inst == null) {\n GuideSubStepPoxy._inst = new GuideSubStepPoxy();\n }\n return GuideSubStepPoxy._inst;\n }\n @res_assign(\"GuideSubStep\")\n public GuideSubStepMaps: Map = new Map();\n public InitGuideSubStepConfig() {\n if (this.GuideSubStepMaps.size > 0) {\n this.GuideSubStepMaps.clear();\n }\n for (var key in ConfigManager.GetInstance().getValue(\"GuideSubStep\")) {\n let GuideSubStepitem = ConfigManager.GetInstance().getValue(\"GuideSubStep\")[key];\n if (GuideSubStepitem) {\n for (var keys in GuideSubStepitem) {\n GuideSubStepitem[keys] = GlobalFunction.Inst.ParamDef(keys, GuideSubStepitem[keys]);\n }\n this.GuideSubStepMaps.set(GuideSubStepitem.stepsID, GuideSubStepitem);\n }\n\n }\n }\n public getGuideSubStepById(stepsID: number) {\n if (stepsID == undefined) return undefined;\n return this.GuideSubStepMaps.get(stepsID);\n }\n}\nexport class GuideSubStep {\n /** 子引导ID */\n stepsID: number;\n /** 剧情ID */\n storyID: number;\n /** 控件名称*/\n keyName: string;\n /** 控件类型 */\n keyType: string;\n /** 建筑ID */\n buildPosID: number;\n /** 摄像机位置 */\n camera: string;\n /** 手指类型 */\n fingerType: number;\n /** 手指偏移 */\n fingerSize: string;\n /** 控件偏移 */\n ay_key: string;\n /**是否最后一步*/\n isOver:number;\n /**是否关闭UI*/\n isCloseAll:number;\n /**引导事件*/\n guideEvent:string;\n /**UI响应事件*/\n uiOpenEvent:string;\n /**是否是主界面对象*/\n isMainUiNode : number;\n fubenType:number;\n\n}","/**\n * HalfFloatUtils 类用于创建HalfFloat工具。\n */\n\nimport { _decorator } from 'cc';\nexport class HalfFloatUtils {\n /**@internal */\n private static _buffer: ArrayBuffer = new ArrayBuffer(4);\n /**@internal */\n private static _floatView: Float32Array = new Float32Array(HalfFloatUtils._buffer);\n /**@internal */\n private static _uint32View: Uint32Array = new Uint32Array(HalfFloatUtils._buffer);\n\n /**@internal */\n private static _baseTable: Uint32Array = new Uint32Array(512);\n /**@internal */\n private static _shiftTable: Uint32Array = new Uint32Array(512);\n\n /**@internal */\n private static _mantissaTable: Uint32Array = new Uint32Array(2048);\n /**@internal */\n private static _exponentTable: Uint32Array = new Uint32Array(64);\n /**@internal */\n private static _offsetTable: Uint32Array = new Uint32Array(64);\n\n /**\n * @internal\n */\n static __init__(): void {\n for (var i: number = 0; i < 256; ++i) {\n var e: number = i - 127;\n // very small number (0, -0)\n if (e < -27) {\n HalfFloatUtils._baseTable[i | 0x000] = 0x0000;\n HalfFloatUtils._baseTable[i | 0x100] = 0x8000;\n HalfFloatUtils._shiftTable[i | 0x000] = 24;\n HalfFloatUtils._shiftTable[i | 0x100] = 24;\n\n // small number (denorm)\n } else if (e < -14) {\n HalfFloatUtils._baseTable[i | 0x000] = 0x0400 >> (-e - 14);\n HalfFloatUtils._baseTable[i | 0x100] = (0x0400 >> (-e - 14)) | 0x8000;\n HalfFloatUtils._shiftTable[i | 0x000] = -e - 1;\n HalfFloatUtils._shiftTable[i | 0x100] = -e - 1;\n\n // normal number\n } else if (e <= 15) {\n HalfFloatUtils._baseTable[i | 0x000] = (e + 15) << 10;\n HalfFloatUtils._baseTable[i | 0x100] = ((e + 15) << 10) | 0x8000;\n HalfFloatUtils._shiftTable[i | 0x000] = 13;\n HalfFloatUtils._shiftTable[i | 0x100] = 13;\n\n // large number (Infinity, -Infinity)\n } else if (e < 128) {\n HalfFloatUtils._baseTable[i | 0x000] = 0x7c00;\n HalfFloatUtils._baseTable[i | 0x100] = 0xfc00;\n HalfFloatUtils._shiftTable[i | 0x000] = 24;\n HalfFloatUtils._shiftTable[i | 0x100] = 24;\n\n // stay (NaN, Infinity, -Infinity)\n } else {\n HalfFloatUtils._baseTable[i | 0x000] = 0x7c00;\n HalfFloatUtils._baseTable[i | 0x100] = 0xfc00;\n HalfFloatUtils._shiftTable[i | 0x000] = 13;\n HalfFloatUtils._shiftTable[i | 0x100] = 13;\n }\n }\n\n HalfFloatUtils._mantissaTable[0] = 0;\n for (i = 1; i < 1024; ++i) {\n var m: number = i << 13; // zero pad mantissa bits\n e = 0; // zero exponent\n\n // normalized\n while ((m & 0x00800000) === 0) {\n e -= 0x00800000; // decrement exponent\n m <<= 1;\n }\n\n m &= ~0x00800000; // clear leading 1 bit\n e += 0x38800000; // adjust bias\n\n HalfFloatUtils._mantissaTable[i] = m | e;\n }\n for (i = 1024; i < 2048; ++i) {\n HalfFloatUtils._mantissaTable[i] = 0x38000000 + ((i - 1024) << 13);\n }\n\n HalfFloatUtils._exponentTable[0] = 0;\n for (i = 1; i < 31; ++i) {\n HalfFloatUtils._exponentTable[i] = i << 23;\n }\n HalfFloatUtils._exponentTable[31] = 0x47800000;\n HalfFloatUtils._exponentTable[32] = 0x80000000;\n for (i = 33; i < 63; ++i) {\n HalfFloatUtils._exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n }\n HalfFloatUtils._exponentTable[63] = 0xc7800000;\n\n HalfFloatUtils._offsetTable[0] = 0;\n for (i = 1; i < 64; ++i) {\n if (i === 32) {\n HalfFloatUtils._offsetTable[i] = 0;\n } else {\n HalfFloatUtils._offsetTable[i] = 1024;\n }\n }\n }\n\n\n /**\n * round a number to a half float number bits.\n * @param {number} num\n */\n static roundToFloat16Bits(num: number): number {\n HalfFloatUtils._floatView[0] = num;\n var f: number = HalfFloatUtils._uint32View[0];\n var e: number = (f >> 23) & 0x1ff;\n return HalfFloatUtils._baseTable[e] + ((f & 0x007fffff) >> HalfFloatUtils._shiftTable[e]);\n }\n\n /**\n * convert a half float number bits to a number.\n * @param {number} float16bits - half float number bits\n */\n static convertToNumber(float16bits: number): number {\n var m: number = float16bits >> 10;\n HalfFloatUtils._uint32View[0] = HalfFloatUtils._mantissaTable[HalfFloatUtils._offsetTable[m] + (float16bits & 0x3ff)] + HalfFloatUtils._exponentTable[m];\n return HalfFloatUtils._floatView[0];\n }\n\n}","/**\r\n *

Handler 是事件处理器类。

\r\n *

推荐使用 Handler.create() 方法从对象池创建,减少对象创建消耗。创建的 Handler 对象不再使用后,可以使用 Handler.recover() 将其回收到对象池,回收后不要再使用此对象,否则会导致不可预料的错误。

\r\n *

注意:由于鼠标事件也用本对象池,不正确的回收及调用,可能会影响鼠标事件的执行。

\r\n */\r\n\r\nimport { _decorator } from 'cc';\r\nexport class Handler {\r\n /**@private handler对象池*/\r\n protected static _pool: Handler[] = [];\r\n /**@private */\r\n private static _gid: number = 1;\r\n /** 执行域(this)。*/\r\n caller: Object | null;\r\n /** 处理方法。*/\r\n method: Function | null;\r\n /** 参数。*/\r\n args: any[] | null;\r\n /** 表示是否只执行一次。如果为true,回调后执行recover()进行回收,回收后会被再利用,默认为false 。*/\r\n once = false;\r\n /**@private */\r\n protected _id = 0;\r\n /**\r\n * 根据指定的属性值,创建一个 Handler 类的实例。\r\n * @param\tcaller 执行域。\r\n * @param\tmethod 处理函数。\r\n * @param\targs 函数参数。\r\n * @param\tonce 是否只执行一次。\r\n */\r\n constructor(caller: Object | null = null, method: Function | null = null, args: any[] | null = null, once: boolean = false) {\r\n this.setTo(caller, method, args, once);\r\n }\r\n\r\n /**\r\n * 设置此对象的指定属性值。\r\n * @param\tcaller 执行域(this)。\r\n * @param\tmethod 回调方法。\r\n * @param\targs 携带的参数。\r\n * @param\tonce 是否只执行一次,如果为true,执行后执行recover()进行回收。\r\n * @return 返回 handler 本身。\r\n */\r\n setTo(caller: any, method: Function | null, args: any[] | null, once = false): Handler {\r\n this._id = Handler._gid++;\r\n this.caller = caller;\r\n this.method = method;\r\n this.args = args;\r\n this.once = once;\r\n return this;\r\n }\r\n\r\n /**\r\n * 执行处理器。\r\n */\r\n run(): any {\r\n if (this.method == null) return null;\r\n var id: number = this._id;\r\n var result: any = this.method.apply(this.caller, this.args);\r\n this._id === id && this.once && this.recover();\r\n return result;\r\n }\r\n\r\n /**\r\n * 执行处理器,并携带额外数据。\r\n * @param\tdata 附加的回调数据,可以是单数据或者Array(作为多参)。\r\n */\r\n runWith(data: any): any {\r\n if (this.method == null) return null;\r\n var id: number = this._id;\r\n if (data == null)\r\n var result: any = this.method.apply(this.caller, this.args);\r\n else if (!this.args && !data.unshift) result = this.method.call(this.caller, data);\r\n else if (this.args) result = this.method.apply(this.caller, this.args.concat(data));\r\n else result = this.method.apply(this.caller, data);\r\n this._id === id && this.once && this.recover();\r\n return result;\r\n }\r\n\r\n /**\r\n * 清理对象引用。\r\n */\r\n clear(): Handler {\r\n this.caller = null;\r\n this.method = null;\r\n this.args = null;\r\n return this;\r\n }\r\n\r\n /**\r\n * 清理并回收到 Handler 对象池内。\r\n */\r\n recover(): void {\r\n if (this._id > 0) {\r\n this._id = 0;\r\n Handler._pool.push(this.clear());\r\n }\r\n }\r\n\r\n /**\r\n * 从对象池内创建一个Handler,默认会执行一次并立即回收,如果不需要自动回收,设置once参数为false。\r\n * @param\tcaller 执行域(this)。\r\n * @param\tmethod 回调方法。\r\n * @param\targs 携带的参数。\r\n * @param\tonce 是否只执行一次,如果为true,回调后执行recover()进行回收,默认为true。\r\n * @return 返回创建的handler实例。\r\n */\r\n static create(caller: any, method: Function | null, args: any[] | null = null, once: boolean = true): Handler {\r\n if (Handler._pool.length)\r\n return (Handler._pool.pop() as Handler).setTo(caller, method, args, once);\r\n return new Handler(caller, method, args, once);\r\n }\r\n}","import GameEntry from \"../modules/GameEntry\";\r\nimport { Vec3 } from \"cc\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport ConfigManager from \"../_config/ConfigManager\";\r\nimport { BaseRole, GebolinMapType } from \"./Role\";\r\nimport { SkillIntervalComp } from \"../skill/SkillInterval\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { HeroView } from \"./HeroView\";\r\nimport { HeroModle } from \"./HeroModle\";\r\nimport { HeroAiType } from \"../enum/Enum\";\r\nimport { GebolInAiEnum } from \"./GebolinView\";\r\nimport { BossView } from \"./BossView\";\r\nimport { FuBenProxy } from \"../modules/game/proxy/FuBenProxy\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { SoundManager } from \"../core/utils/SoundManager\";\r\nimport { SoundPoxy } from \"../modules/game/proxy/SoundPoxy\";\r\nimport { GuideManager } from \"../modules/game/guilde/GuideManager\";\r\n\r\nexport class HeroAiComp{\r\n hero:HeroView;\r\n\r\n constructor(hero:HeroView){\r\n this.hero = hero;\r\n }\r\n\r\n update(dt){\r\n if(!GameModleComp.getInstance().isOpenGame){\r\n return;\r\n }\r\n /**场景BOSS*/\r\n if(this.hero.gebolinMapType == GebolinMapType.PveBoss){\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n if(this.hero.isDie){\r\n return;\r\n }\r\n if(this.hero.heroAiType == HeroAiType.ToFight){\r\n this.toFight()\r\n }else if(this.hero.heroAiType == HeroAiType.Fight){\r\n this.addFight();\r\n }\r\n }else if(this.hero.gebolinMapType == GebolinMapType.PveCopy){\r\n if(GuideManager.getInstance().isInGuide){\r\n return;\r\n }\r\n if(this.hero.isDie){\r\n return;\r\n }\r\n if(this.hero.heroAiType == HeroAiType.ToFight){\r\n this.toCopyFight()\r\n }else if(this.hero.heroAiType == HeroAiType.Fight){\r\n this.addCopyFight();\r\n }\r\n }\r\n \r\n\r\n }\r\n private toCopyFight(){\r\n let mapId:number = Number(FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId).map);\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_bossPoint;\r\n let minX:number = Number(arr[0])-3;\r\n let maxX:number = Number(arr[0]);\r\n let minY:number = Number(arr[1]-3);\r\n let mx:number = Math.random()*10000;\r\n let _x:number = Math.floor(Math.random()*3 + (mx > 5000 ? minX : maxX));\r\n let _y:number = Math.floor(Math.random()*3 + minY);\r\n let point:Vec3 = new Vec3(_x , _y , 1);\r\n this.hero.fightPoint = point;\r\n let v3Point:Vec3 = MapRoadUtils.AStarToPoint(point);\r\n this.hero.heroAiType = HeroAiType.ToMove;\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.hero , v3Point.x , v3Point.y, 1 , ()=>{\r\n setTimeout(() => {\r\n this.hero.heroAiType = HeroAiType.Fight;\r\n }, 500);\r\n })\r\n\r\n }\r\n private toFight(){\r\n this.hero.heroAiType = HeroAiType.ToMove;\r\n let maps:Maps = MapPoxy.Inst.getMapById(GameModleComp.getInstance().gameMapId);\r\n let pointArr:Array = [];\r\n let point:Vec3 ;\r\n let v3Point:Vec3;\r\n if((this.hero.modle as HeroModle).hero.bulletmodel == \"\" || (this.hero.modle as HeroModle).hero.bulletmodel == null){\r\n pointArr = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_heroCombatPoint);\r\n point = pointArr[GameModleComp.getInstance().heroJinzhanPointIndex];\r\n if(point){\r\n this.hero.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().heroJinzhanPointIndex++;\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.hero , v3Point.x , v3Point.y, 1 , ()=>{\r\n setTimeout(() => {\r\n this.hero.heroAiType = HeroAiType.Fight;\r\n }, 500);\r\n })\r\n return;\r\n }\r\n point = GameModleComp.getInstance().heroJinzhanPointArr[0];\r\n if(point){\r\n this.hero.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().heroJinzhanPointArr.splice(0 , 1);\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.hero , v3Point.x , v3Point.y, 1 , ()=>{\r\n setTimeout(() => {\r\n this.hero.heroAiType = HeroAiType.Fight;\r\n }, 500);\r\n })\r\n return;\r\n }\r\n }else{\r\n pointArr = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_heroArcherPoint);\r\n point = pointArr[GameModleComp.getInstance().heroYuanchengPointIndex];\r\n if(point){\r\n this.hero.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().heroYuanchengPointIndex++;\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.hero , v3Point.x , v3Point.y, 1 , ()=>{\r\n setTimeout(() => {\r\n this.hero.heroAiType = HeroAiType.Fight;\r\n }, 500);\r\n })\r\n return;\r\n }\r\n point = GameModleComp.getInstance().heroYuanchengPointArr[0];\r\n if(point){\r\n this.hero.fightPoint = point;\r\n v3Point = MapRoadUtils.AStarToPoint(point);\r\n GameModleComp.getInstance().heroYuanchengPointArr.splice(0 , 1);\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this.hero , v3Point.x , v3Point.y, 1 , ()=>{\r\n setTimeout(() => {\r\n this.hero.heroAiType = HeroAiType.Fight;\r\n }, 500);\r\n })\r\n return;\r\n }\r\n }\r\n }\r\n /**开始战斗*/\r\n private addCopyFight(){\r\n if(!GameEntry.Inst.mapView.nowFubenBoss){\r\n return;\r\n }\r\n if(!this.hero.isAttackOver){\r\n return;\r\n }\r\n let skill:Skill = this.hero.modle.skills.get((this.hero.modle as HeroModle).skillId);\r\n if(!skill || skill.skillInterval){\r\n skill = this.hero.modle.skills.get((this.hero.modle as HeroModle).hero.id);\r\n }\r\n if(!skill){\r\n return;\r\n }\r\n let target:BaseRole;\r\n if(Number(skill.SkillModel.table.shengxiaoFanwei[0]) == 1){\r\n target = this.randomMonster(this.hero);\r\n }else{\r\n target = GameEntry.Inst.mapView.nowFubenBoss\r\n if(target && target.isDie){\r\n return;\r\n }\r\n }\r\n if(!skill.skillInterval){\r\n if(target){\r\n let sc = skill.SkillModel.casting;\r\n sc.caster = this.hero;\r\n sc.target = target;\r\n sc.skill = skill;\r\n if(sc.skill.skillInterval){\r\n if(!sc.skill.skillInterval._skill){\r\n sc.skill.skillInterval._skill = sc.skill;\r\n }\r\n }else{\r\n sc.skill.skillInterval = new SkillIntervalComp();\r\n sc.skill.skillInterval._skill = sc.skill;\r\n if(sc.skill.SkillModel.table.isNomAttack){\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval);\r\n }else{\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval , false);\r\n }\r\n }\r\n let comp = sc.skill.skillInterval;\r\n let cd: number = 1;\r\n comp.duration = sc.skill.SkillModel.table.skillcd * cd;\r\n if(!skill.SkillModel.table.isNomAttack){\r\n this.hero.showCd(sc.skill.SkillModel.table.skillcd , skill);\r\n let arr:Array = [skill.SkillModel.id , sc.skill.SkillModel.table.skillcd];\r\n EventManager.Inst.event(EventType.COPY_HERO_BEGIN_SKILL,arr);\r\n }\r\n this.hero.attack(sc , target, skill);\r\n // if(!skill.SkillModel.table.isNomAttack){\r\n // SoundManager.getInstance().playEffectMusic(SoundPoxy.Inst.getGuideById(skill.SkillModel.table.atkSound).name);\r\n // }\r\n }\r\n }\r\n }\r\n /**开始战斗*/\r\n private addFight(){\r\n // if(true){\r\n // return;\r\n // }\r\n if(!GameEntry.Inst.mapView.nowBoss){\r\n return;\r\n }\r\n if(!this.hero.isAttackOver){\r\n return;\r\n }\r\n let skill:Skill = this.hero.modle.skills.get((this.hero.modle as HeroModle).skillId);\r\n if(!skill || skill.skillInterval){\r\n skill = this.hero.modle.skills.get((this.hero.modle as HeroModle).hero.id);\r\n }\r\n if(!skill){\r\n return;\r\n }\r\n let target:BaseRole;\r\n if(Number(skill.SkillModel.table.shengxiaoFanwei[0]) == 1){\r\n target = this.randomMonster(this.hero);\r\n }else{\r\n target = GameEntry.Inst.mapView.nowBoss\r\n if(target && target.isDie){\r\n return;\r\n }\r\n }\r\n // if((target as BossView).isBoss){\r\n // return;\r\n // }\r\n if(!skill.skillInterval){\r\n if(target){\r\n let sc = skill.SkillModel.casting;\r\n sc.caster = this.hero;\r\n sc.target = target;\r\n sc.skill = skill;\r\n if(sc.skill.skillInterval){\r\n if(!sc.skill.skillInterval._skill){\r\n sc.skill.skillInterval._skill = sc.skill;\r\n }\r\n }else{\r\n sc.skill.skillInterval = new SkillIntervalComp();\r\n sc.skill.skillInterval._skill = sc.skill;\r\n if(sc.skill.SkillModel.table.isNomAttack){\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval);\r\n }else{\r\n sc.skill.SkillModel.casting.caster.showUpdata(sc.skill.skillInterval , false);\r\n }\r\n }\r\n let comp = sc.skill.skillInterval;\r\n let cd: number = 1;\r\n comp.duration = sc.skill.SkillModel.table.skillcd * cd;\r\n if(!skill.SkillModel.table.isNomAttack){\r\n this.hero.showCd(sc.skill.SkillModel.table.skillcd , skill);\r\n }\r\n this.hero.attack(sc , target, skill);\r\n }\r\n }\r\n }\r\n randomMonster(caster: BaseRole): BaseRole {\r\n var temp = Number.MAX_VALUE;\r\n var current: number; // 当前距离\r\n var t: BaseRole = null; // 找到的目标\r\n let math:number = Math.random()*GameModleComp.getInstance().maxValue;\r\n if(math > 5000){\r\n // 选择最近存活的怪物\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if (p && !p.isDie && p.AiType==GebolInAiEnum.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n t = p;\r\n return t;\r\n }\r\n });\r\n }\r\n if(GameModleComp.getInstance().isInCopy){\r\n GameEntry.Inst.mapView.copyheroMap.forEach(p => {\r\n if (p && !p.isDie && p.heroAiType==HeroAiType.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n t = p;\r\n return t;\r\n }\r\n });\r\n }else{\r\n GameEntry.Inst.mapView.heroMap.forEach(p => {\r\n if (p && !p.isDie && p.heroAiType==HeroAiType.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n t = p;\r\n return t;\r\n }\r\n });\r\n }\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if (p && !p.isDie && p.AiType==GebolInAiEnum.Fight && p.gebolinMapType == caster.gebolinMapType) {\r\n temp = current;\r\n t = p;\r\n return t;\r\n }\r\n });\r\n return t;\r\n }\r\n}","/**\n * HeroAttribute config配置文件\n **/\nimport { c1100, s1100, c1101, s1101, c1102, s1102, c1103, s1103, c1104, s1104, c1202, p_hero, Long, p_hero_sz, p_buff } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\n@res_auto_bind()\nexport class HeroAttributeProxy {\n private static _inst: HeroAttributeProxy;\n public static get Inst(): HeroAttributeProxy {\n if (HeroAttributeProxy._inst == null) {\n HeroAttributeProxy._inst = new HeroAttributeProxy();\n }\n return HeroAttributeProxy._inst;\n }\n @res_assign(\"HeroAttribute\")\n public HeroAttributeDataConfigList: HeroAttribute[];\n public InitHeroAttributeConfig() {\n if (!this.HeroAttributeDataConfigList) {\n this.HeroAttributeDataConfigList = [];\n }\n let HeroDataConfig = ConfigManager.GetInstance().getValue(\"HeroAttribute\")\n for (var key in HeroDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroAttribute\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroAttributeDataConfigList.push(item);\n }\n }\n }\n /** 根据id获取item */\n public GetHeroAttributeDataByID(id: number) {\n if (this.HeroAttributeDataConfigList == null) {\n this.InitHeroAttributeConfig();\n }\n let data: HeroAttribute = this.HeroAttributeDataConfigList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n}\n\n\n\nexport class HeroAttribute {\n id: number; //英雄id\n atk: number; //攻击加成\n def: number; //防御加成\n hp: number; //血量加成\n shjia: number;//伤害加成\n shjian: number;//伤害减免\n skill:number;//技能伤害加成\n hdun: number; //治疗护盾加成\n zliao: number; //降治疗\n cs: number; //暴击率\n}","/**\n * HeroCao config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class HeroCaoProxy {\n private static _inst: HeroCaoProxy;\n public static get Inst(): HeroCaoProxy {\n if (HeroCaoProxy._inst == null) {\n HeroCaoProxy._inst = new HeroCaoProxy();\n }\n return HeroCaoProxy._inst;\n }\n @res_assign(\"HeroCao\")\n public HeroCaoDataList: HeroCao[];\n public InitHeroCaoConfig() {\n\n if (!this.HeroCaoDataList) {\n this.HeroCaoDataList = [];\n }\n let HeroCaoDataConfig = ConfigManager.GetInstance().getValue(\"HeroCao\")\n for (var key in HeroCaoDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroCao\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroCaoDataList.push(item);\n }\n\n }\n }\n\n // /** 根据id获取item */\n // public GetHeroDataByID(heroid: number) {\n // if (this.HeroDataList == null) {\n // this.InitHeroConfig();\n // }\n // let data: Hero = this.HeroDataList.find(item => item.id == heroid);\n // if (data) {\n // return data;\n // }\n // return null;\n // }\n}\nexport class HeroCao {\n id: number;\n unlocklevel: number; //解锁关卡\n needkey: number; //需要的钥匙\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { Label } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { p_buff} from \"../../../proto/proto\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { BuffAttType } from \"../proxy/CampPoxy\";\nimport { Vec3 } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass\nexport default class Herodec extends BasePanel {\n //获取服务器数据\n buff :p_buff;\n p_buffs :Map=new Map();\n @property(Node) Label_att: Node = null;\n @property(Node) Label_def: Node = null;\n @property(Node) Label_hp: Node = null;\n @property(Node) Layout_dec: Node = null;\n @property(Node) dec: Node = null;\n prefabdec: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n }\n onShow(data: any): void {\n this.buff = HeroProxy.Inst.Herop_buff;\n if(this.buff==undefined)return;\n this.SetBuFfMaps();\n this.ShowAllHeroBuffList();\n }\n\n\n SetBuFfMaps(){\n this.p_buffs.clear();\n\n if(this.buff.baoJiRate!=undefined){\n this.p_buffs.set(BuffAttType.baojilv,this.buff.baoJiRate);\n }\n if(this.buff.baoJiHurtRate!=undefined){\n this.p_buffs.set(BuffAttType.baojishanghai,this.buff.baoJiHurtRate);\n }\n if(this.buff.deBaoJiRate!=undefined){\n this.p_buffs.set(BuffAttType.kangbao,this.buff.deBaoJiRate);\n }\n if(this.buff.atkRate!=undefined){\n this.p_buffs.set(BuffAttType.gongjijiacheng,this.buff.atkRate);\n }\n if(this.buff.defRate!=undefined){\n this.p_buffs.set(BuffAttType.fangyujiacheng,this.buff.defRate);\n }\n if(this.buff.hpRate!=undefined){\n this.p_buffs.set(BuffAttType.xueliangjiacheng,this.buff.hpRate);\n }\n if(this.buff.hurtRate!=undefined){\n this.p_buffs.set(BuffAttType.shanghaijiacheng,this.buff.hurtRate);\n }\n if(this.buff.deHurtRate!=undefined){\n this.p_buffs.set(BuffAttType.shanghaijianmian,this.buff.deHurtRate);\n }\n if(this.buff.deShanRate!=undefined){\n this.p_buffs.set(BuffAttType.shanbi,this.buff.deShanRate);\n }\n if(this.buff.mingRate!=undefined){\n this.p_buffs.set(BuffAttType.mingzhonglv,this.buff.mingRate);\n }\n if(this.buff.skillHurtRate!=undefined){\n this.p_buffs.set(BuffAttType.jinengjiacheng,this.buff.skillHurtRate);\n }\n if(this.buff.zhiRate!=undefined){\n this.p_buffs.set(BuffAttType.zhiliaohudun,this.buff.zhiRate);\n }\n if(this.buff.deZhiRate!=undefined){\n this.p_buffs.set(BuffAttType.jiangzhiliao,this.buff.deZhiRate);\n }\n }\n\n ShowAllHeroBuffList(){\n //所有英雄buff加成信息\n let Label_att = this.Label_att.getComponent(Label);\n let Label_hp = this.Label_hp.getComponent(Label);\n let Label_def = this.Label_def.getComponent(Label);\n\n Label_att.string = GlobalFunction.ConvertExtremelyNumber(this.buff.atkRate)+'';\n Label_hp.string = GlobalFunction.ConvertExtremelyNumber(this.buff.defRate)+'';\n Label_def.string = GlobalFunction.ConvertExtremelyNumber(this.buff.hpRate)+'';\n this.prefabdec = this.dec;\n this.Layout_dec.removeAllChildren();\n if (this.p_buffs != undefined) {\n if (this.p_buffs.size== 0) return;\n for (const [key, value] of Array.from(this.p_buffs.entries())) {\n // 克隆并将节点添加到content中\n if(GlobalFunction.ConvertUndefinedToNumber(value)==0)continue;\n let itemNode = instantiate(this.prefabdec);\n if (itemNode) {\n itemNode.parent = this.Layout_dec;\n\n let labeldec = itemNode.getChildByName(\"Label_dec\").getComponent(Label);\n if (labeldec) \n {\n \n labeldec.string = GlobalFunction.GotBuffDecByFuffType(key, 1);\n }\n let Labeldecnum =itemNode.getChildByName(\"Label_decnum\").getComponent(Label);\n if (Labeldecnum) {\n Labeldecnum.string =GlobalFunction.ConvertExtremelyNumber(value);\n }\n }\n }\n this.Layout_dec.position=new Vec3(this.Layout_dec.position.x,-(this.Layout_dec.position.y));\n }\n }\n}\n","/**\n * hero config配置文件\n **/\nimport { c1105, s1105, c1106, s1106, c1107, s1107, c1108, s1108, c1109, s1109, c1110, s1110, c1111, s1111, p_hero, Long, p_hero_sz, p_hero_equip } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { IsLongEqual } from \"../../../core/utils/Utils\";\nimport { math } from \"cc\";\nimport Utils from '../../../core/utils/Utils';\nimport { Prefab } from 'cc';\nimport { Layers } from 'cc';\nimport { UITransform } from 'cc';\nimport { Vec3 } from 'cc';\nimport { v2 } from 'cc';\nimport { send } from \"process\";\nimport { clear, Console } from \"console\";\nimport { BuffAttType } from \"./CampPoxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { SoldierEquipProxy } from \"./SoldierEquipProxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { Logger } from \"../../../../core/common/log/Logger\";\n@res_auto_bind()\nexport class HeroEquipProxy {\n private static _inst: HeroEquipProxy;\n public static get Inst(): HeroEquipProxy {\n if (HeroEquipProxy._inst == null) {\n HeroEquipProxy._inst = new HeroEquipProxy();\n }\n return HeroEquipProxy._inst;\n }\n\n /**************************************HeroEquip**************************************** */\n @res_assign(\"HeroEquip\")\n public HeroEquipConfigList: HeroEquip[];\n public InitHeroEquipConfig() {\n if (!this.HeroEquipConfigList) {\n this.HeroEquipConfigList = [];\n }\n let HeroEquipConfig = ConfigManager.GetInstance().getValue(\"HeroEquip\")\n for (var key in HeroEquipConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroEquip\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroEquipConfigList.push(item);\n }\n }\n }\n /** 根据id获取item */\n public GetHeroEquipByID(equipId: number) {\n if (this.HeroEquipConfigList == null) {\n this.InitHeroEquipConfig();\n }\n let data: HeroEquip = this.HeroEquipConfigList.find(item => item.equipId == equipId);\n if (data) {\n return data;\n }\n return null;\n }\n /** 获取英雄装备iocn by type,color */\n public GetHeroEquipIconByTypeAndColor(type: number, color: number) {\n if (this.HeroEquipConfigList == null) {\n this.InitHeroEquipConfig();\n }\n let data: HeroEquip = this.HeroEquipConfigList.find(item => item.type == type && item.color == color);\n if (data) {\n return data.icon;\n }\n return \"\";\n }\n\n /** 根据color获取英雄装备名字 */\n public GetHeroEquipNameByHeroId(heroId: number) {\n let heroEquipData = this.GetHeroEquipByID(heroId);\n let heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20043), GlobalFunction.GetMsg(20023), heroEquipData.lan_name);\n switch (heroEquipData.color) {\n case HeroEquipColor.bai:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20043), GlobalFunction.GetMsg(20023), heroEquipData.lan_name);\n break;\n case HeroEquipColor.lv:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20044), GlobalFunction.GetMsg(20024), heroEquipData.lan_name);\n break;\n case HeroEquipColor.lan:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20045), GlobalFunction.GetMsg(20025), heroEquipData.lan_name);\n break;\n case HeroEquipColor.zi:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20046), GlobalFunction.GetMsg(20026), heroEquipData.lan_name);\n break;\n case HeroEquipColor.cheng:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20047), GlobalFunction.GetMsg(20027), heroEquipData.lan_name);\n break;\n case HeroEquipColor.hong:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20049), GlobalFunction.GetMsg(20029), heroEquipData.lan_name);\n break;\n }\n return heroEquipName;\n }\n\n /** 根据color获取英雄装备品质名字 */\n public GetHeroEquipColorName(type: number) {\n let heroEquipName = \"\";\n switch (type) {\n case HeroEquipColor.bai:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20033), GlobalFunction.GetMsg(20023));\n break;\n case HeroEquipColor.lv:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20034), GlobalFunction.GetMsg(20024));\n break;\n case HeroEquipColor.lan:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20035), GlobalFunction.GetMsg(20025));\n break;\n case HeroEquipColor.zi:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20036), GlobalFunction.GetMsg(20026));\n break;\n case HeroEquipColor.cheng:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20037), GlobalFunction.GetMsg(20027));\n break;\n case HeroEquipColor.hong:\n heroEquipName = StringUtil.stringFormat(GlobalFunction.GetMsg(20039), GlobalFunction.GetMsg(20029));\n break;\n }\n return heroEquipName;\n }\n\n\n /**************************************HeroEquipBuff**************************************** */\n @res_assign(\"HeroEquipBuff\")\n public HeroEquipBuffConfigList: HeroEquipBuff[];\n public InitHeroEquipBuffConfig() {\n if (!this.HeroEquipBuffConfigList) {\n this.HeroEquipBuffConfigList = [];\n }\n let HeroEquipBuffConfig = ConfigManager.GetInstance().getValue(\"HeroEquipBuff\")\n for (var key in HeroEquipBuffConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroEquipBuff\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroEquipBuffConfigList.push(item);\n }\n }\n }\n\n\n /** 根据等级buffid获取item */\n public GetHeroEquipBuffByLvID(buffid: number) {\n if (this.HeroEquipBuffConfigList == null) {\n this.InitHeroEquipBuffConfig();\n }\n let data: HeroEquipBuff = this.HeroEquipBuffConfigList.find(item => item.libraryid == buffid);\n if (data) {\n return data;\n }\n return null;\n }\n\n /**************************************HeroEquipExp**************************************** */\n @res_assign(\"HeroEquipExp\")\n public HeroEquipExpConfigList: HeroEquipExp[];\n public InitHeroEquipExpConfig() {\n if (!this.HeroEquipExpConfigList) {\n this.HeroEquipExpConfigList = [];\n }\n let HeroEquipExpConfig = ConfigManager.GetInstance().getValue(\"HeroEquipExp\")\n for (var key in HeroEquipExpConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroEquipExp\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroEquipExpConfigList.push(item);\n }\n }\n }\n\n\n /** 根据等级buffid获取item */\n public GetHeroEquipExpByLv(lv: number) {\n if (this.HeroEquipExpConfigList == null) {\n this.InitHeroEquipExpConfig();\n }\n let data: HeroEquipExp = this.HeroEquipExpConfigList.find(item => item.lv == lv);\n if (data) {\n return data;\n }\n return null;\n }\n /**************************************HeroEquipUp**************************************** */\n @res_assign(\"HeroEquipUp\")\n public HeroEquipUpConfigList: HeroEquipUp[];\n public InitHeroEquipUpConfig() {\n if (!this.HeroEquipUpConfigList) {\n this.HeroEquipUpConfigList = [];\n }\n let HeroEquipUpConfig = ConfigManager.GetInstance().getValue(\"HeroEquipUp\")\n for (var key in HeroEquipUpConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroEquipUp\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroEquipUpConfigList.push(item);\n }\n }\n }\n\n\n /** 根据等级id获取item */\n public GetHeroEquipUpByLvID(id: number) {\n if (this.HeroEquipUpConfigList == null) {\n this.InitHeroEquipUpConfig();\n }\n let data: HeroEquipUp = this.HeroEquipUpConfigList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n /** 根据等级id获取底框名字*/\n public GetHeroEquipUpIconById(upId: number) {\n if (upId == HeroEquipColor.bai) {\n return \"ui_yingxiongyz_sjdb05\";\n } else if (upId == HeroEquipColor.lv) {\n return \"ui_yingxiongyz_sjdb06\";\n }\n else if (upId == HeroEquipColor.lan) {\n return \"ui_yingxiongyz_sjdb07\";\n }\n \n else if (upId == HeroEquipColor.zi) {\n return \"ui_yingxiongyz_sjdb08\";\n }\n else if (upId == HeroEquipColor.cheng) {\n return \"ui_yingxiongyz_sjdb09\";\n }\n else if (upId == HeroEquipColor.hong) {\n return \"ui_yingxiongyz_sjdb10\";\n }\n }\n /** 根据等级id获取品質名字*/\n public GetHeroEquipUpNameById(upId: number) {\n if (upId == HeroEquipColor.bai) {\n return GlobalFunction.GetMsg(20023);\n } else if (upId == HeroEquipColor.lv) {\n return GlobalFunction.GetMsg(20024);\n }\n else if (upId == HeroEquipColor.lan) {\n return GlobalFunction.GetMsg(20025);\n }\n else if (upId == HeroEquipColor.zi) {\n return GlobalFunction.GetMsg(20026);\n }\n else if (upId == HeroEquipColor.cheng) {\n return GlobalFunction.GetMsg(20027);\n }\n else if (upId == HeroEquipColor.hong) {\n return GlobalFunction.GetMsg(20029);\n }\n }\n\n /** 根据等级id获取底框名字*/\n public GetHeroEquipUpPinZhiValueById(upId: number, level: number) {\n let data = this.GetHeroEquipUpByLvID(level);\n if (data == null) return 0;\n if (upId == HeroEquipColor.bai) {\n return data.white;\n } else if (upId == HeroEquipColor.lv) {\n return data.green;\n }\n else if (upId == HeroEquipColor.lan) {\n return data.blue;\n }\n else if (upId == HeroEquipColor.zi) {\n return data.purple;\n }\n else if (upId == HeroEquipColor.cheng) {\n return data.orange;\n }\n else if (upId == HeroEquipColor.hong) {\n return data.red;\n }\n }\n\n /***==========================发送消息给服务器========================= */\n public SendC1105() {\n // 请求 武将装备信息\n var c1105: c1105 = {};\n send2client(\"c1105\", c1105);\n }\n\n public SendC1106() {\n Logger.logNet(\"==============SendC1106==================\");\n // 请求 打造武将装备\n var c1106: c1106 = {};\n send2client(\"c1106\", c1106);\n }\n public SendC1107() {\n Logger.logNet(\"==============SendC1107==================\");\n // 请求 出售武将装备\n var c1107: c1107 = {};\n send2client(\"c1107\", c1107);\n\n }\n public SendC1108() {\n Logger.logNet(\"==============SendC1108==================\");\n // 请求 穿戴武将装备\n var c1108: c1108 = {};\n send2client(\"c1108\", c1108);\n\n }\n public SendC1109() {\n // 请求 购买打造台升级\n var c1109: c1109 = {};\n send2client(\"c1109\", c1109);\n\n }\n public SendC1110() {\n // 请求 升级打造台\n var c1110: c1110 = {};\n send2client(\"c1110\", c1110);\n }\n\n public SendC1111() {\n // 请求 升级打造台\n var c1111: c1111 = {};\n send2client(\"c1111\", c1111);\n }\n\n\n /***==========================服务器数据存储============================== */\n // public HeroDataServerMaps: Map = new Map();//服务器返回-已经获得的英雄列表\n\n public HeroEquipServerInfo: s1105;\n\n //临时存储数据\n public ReFreshHeroEquipType: number =0;//(false, 刷新所有 true刷新模仿数据)\n public ReFreshHeroEquipContrast: boolean;//(false, 关闭界面 true刷新界面)\n\n //临时存储数据 \n public isAutioMakeEquip: boolean = false;\n\n public chooseEquipColor: number = 1;\n public isCheckEquipRenYiFirst: boolean = false;\n public isCheckEquipRenYiSecond: boolean = false;\n public chooseEquipRenYi1: number = 0;\n public chooseEquipRenYi2: number = 0;\n public chooseEquipRenYi3: number = 0;\n public chooseEquipRenYi4: number = 0;\n /** 通过pos返回装备数据 */\n public GotHeroEquipByPos(index: number) {\n if (this.HeroEquipServerInfo.eqList != undefined) {\n let lastequip = this.HeroEquipServerInfo.eqList.find(item => item.pos == index);\n if (lastequip) {\n return lastequip;\n }\n }\n\n return null;\n }\n\n /** 通过裝備部type位確定是否已經穿戴了該部位的装备 */\n public GotHeroEquipByType(type: HeroEquipType) {\n if (this.HeroEquipServerInfo.eqList != undefined) {\n for (let i = 0; i < this.HeroEquipServerInfo.eqList.length; i++) {\n let data = this.HeroEquipServerInfo.eqList[i];\n if (data.pos != 10) {\n let heroequip = HeroEquipProxy.Inst.GetHeroEquipByID(data.eqId);\n if (heroequip) {\n if (type == heroequip.type) {\n return data;\n }\n }\n }\n\n }\n }\n\n return null;\n }\n}\n\n/***==========================接收服务器消息============================= */\n\n/**返回 武将装备界面数据 */\nexport function do_s1105(s1105: s1105) {\n if (s1105 == undefined) return;\n\n HeroEquipProxy.Inst.HeroEquipServerInfo = s1105;\n let refresh = HeroEquipProxy.Inst.ReFreshHeroEquipType;\n // console.log(\"===========refresh==============\"+refresh);Label_adve\n if(refresh==1){\n EventManager.Inst.event(EventType.UPDATE_MAKEHEROEQUIP_POUP);\n\n }else if(refresh==2){\n\n if (HeroEquipProxy.Inst.ReFreshHeroEquipContrast) {\n EventManager.Inst.event(EventType.UPDATE_HEROEQUIPLIST_POUP,2);\n HeroEquipProxy.Inst.ReFreshHeroEquipContrast = false;\n EventManager.Inst.event(EventType.UPDATE_HEROEQUIPCONTRAST_POUP, HeroEquipProxy.Inst.GotHeroEquipByPos(10));\n }else{\n EventManager.Inst.event(EventType.UPDATE_HEROEQUIPLIST_POUP);\n }\n }else if(refresh==4){//打造装备升级\n WindowManager.Instance().Update(GameConst.winPath.HeroEquiptUpUI, null, true);\n EventManager.Inst.event(EventType.UPDATE_HEROEQUIPLIST_POUP,2);\n }else if(refresh==5){\n if(HeroEquipProxy.Inst.isAutioMakeEquip){\n // console.log(\"===============出售裝備再繼續打造装备=========SHOW_AUTOMAKE_EQUIP============\");\n EventManager.Inst.event(EventType.SHOW_AUTOMAKE_EQUIP);\n \n }\n EventManager.Inst.event(EventType.UPDATE_HEROEQUIPLIST_POUP);\n }\n \n else {\n EventManager.Inst.event(EventType.UPDATE_HEROEQUIPLIST_POUP);\n }\n EventManager.Inst.event(EventType.UPDATE_HEROEQUIPUP_UI);\n HeroEquipProxy.Inst.ReFreshHeroEquipType=0;\n}\n\n/**返回 打造武将装备结果 */\nexport function do_s1106(s1106: s1106) {\n // console.log(\"================================S1106========s1106.result==========================\" + s1106.result);\n if (s1106.result == undefined) {\n if (s1106.eqList != undefined) {\n HeroEquipProxy.Inst.ReFreshHeroEquipType = 1;\n HeroEquipProxy.Inst.SendC1105();\n }\n }\n\n}\n\n\n/**返回 出售武将装备结果 */\nexport function do_s1107(s1107: s1107) {\n // console.log(\"==============do_s1107==================\" + s1107.result);\n\n if (s1107.result == undefined) {\n EventManager.Inst.event(EventType.SHOW_GLODJINGYAN_REFRESH);\n HeroEquipProxy.Inst.ReFreshHeroEquipType=5;\n HeroEquipProxy.Inst.SendC1105();\n }\n}\n\n/***返回 穿戴武将装备结果*/\nexport function do_s1108(s1108: s1108) {\n\n // console.log(\"==============do_s1108==================\" + s1108.result);\n if (s1108.result == undefined) {\n HeroEquipProxy.Inst.ReFreshHeroEquipType = 2;\n HeroEquipProxy.Inst.SendC1105();\n\n }\n}\n\n/**返回 购买打造台升级结果 */\nexport function do_s1109(s1109: s1109) {\n // console.log(\"==============do_s1109==================\" + s1109.result);\n if (s1109.result == undefined) {\n HeroEquipProxy.Inst.ReFreshHeroEquipType = 3;\n HeroEquipProxy.Inst.SendC1105();\n\n }\n\n}\n/**返回 升级打造台升级结果 */\nexport function do_s1110(s1110: s1110) {\n // console.log(\"==============do_s1110==================\" + s1110.result);\n if (s1110.result == undefined) {\n HeroEquipProxy.Inst.ReFreshHeroEquipType = 3;\n HeroEquipProxy.Inst.SendC1105();\n }\n}\n\n/**返回 升级打造台升级结果 */\nexport function do_s1111(s1111: s1111) {\n // console.log(\"==============do_s1110==================\" + s1110.result);\n if (s1111.result == undefined) {\n HeroEquipProxy.Inst.ReFreshHeroEquipType = 3;\n HeroEquipProxy.Inst.SendC1105();\n }\n}\n\n\n// HeroEquip\nexport class HeroEquip {\n equipId: number; //id\n lan_name: string; //名称\n type: HeroEquipType;//装备类型\n color: HeroEquipColor;//装备品质\n hp: number; //基础血量\n atk: number; //基础攻击\n def: number; //基础防御\n hpRate: number;//血量成长\n atkRate: number;//攻击成长\n defRate: number; //防御成长\n random: number; //随机次数\n sellExp: number; //出售经验\n silverCoin: number; //出售银币\n icon: string; //icon\n\n}\n\nexport enum HeroEquipType {\n yanjing = 1, //眼睛\n toukui = 2, //头盔\n qugan = 3, //躯干\n shangzhi = 4, //上肢\n xiazhi = 5, //下肢\n dongli = 6, //动力系统\n xinpian = 7, //芯片\n yaoji = 8, //药剂\n shujulian = 9, //数据链\n}\nexport enum HeroEquipColor {\n bai = 1, //白\n lv = 2, //绿\n lan = 3, //蓝\n zi = 4, //紫\n cheng = 5, //橙\n hong = 6, //红\n}\n\n// HeroEquipUp\nexport class HeroEquipUp {\n id: number; //等级id\n white: number; //白色概率\n green: number;//绿色概率\n blue: number;//蓝色概率\n purple: number; //紫色概率\n orange: number; //橙色概率\n red: number; //红色概率\n upNum: number; //升级次数\n coin: number;//升级花费\n time: number;//升级时间\n}\n// HeroEquipBuff\nexport class HeroEquipBuff {\n libraryid: number; //词条id\n color: number; //品质\n type: BuffAttType;//类型\n effect: number;//生效范围 /1英雄 2士兵\n min: number;//最小---万分比\n max: number; //最大---万分比\n\n value: number;//新增具体数值萬分比\n}\n\n// HeroEquipExp\nexport class HeroEquipExp {\n lv: number; //等级\n exp: number; //经验\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport { Layout } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { HeroEquipProxy } from \"../proxy/HeroEquipProxy\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport { RichText } from \"cc\";\nimport { Toggle } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('HeroEquiptAutoUI')\nexport default class HeroEquiptAutoUI extends BasePanel {\n\n chooseEquipColor: number;//义肢品质\n isCheckEquipRenYiFirst: boolean;//筛选条件一\n isCheckEquipRenYiSecond: boolean;//筛选条件二\n chooseEquipRenYi1: number;\n chooseEquipRenYi2: number;\n chooseEquipRenYi3: number;\n chooseEquipRenYi4: number;\n\n Toggle_decone: Node = null;\n Toggle_dectwo: Node = null;\n //品质\n @property(Node) Panle_pinzhixz: Node | null = null;\n @property(Node) Layout_pinzhixz: Node | null = null;\n pinzhixz: Node | null = null;\n prefabpzitem: Node | null = null;\n\n Label_pinzhi: Node | null = null;\n Sprite_pingzhifxup: Node | null = null;\n Sprite_pingzhifxdown: Node | null = null;\n //条件一 任意1\n @property(Node) ScrollView_sxxz1: Node | null = null;\n @property(Node) Layout_sxxz1: Node | null = null;\n sxxz1: Node | null = null;\n prefabsxxz1: Node | null = null;\n\n Label_sxone: Node | null = null;\n Sprite_sxoneup: Node | null = null;\n Sprite_sxonedown: Node | null = null;\n //条件一 任意2\n @property(Node) ScrollView_sxxz2: Node | null = null;\n @property(Node) Layout_sxxz2: Node | null = null;\n sxxz2: Node | null = null;\n prefabsxxz2: Node | null = null;\n\n Label_sxtwo: Node | null = null;\n Sprite_sxtwoup: Node | null = null;\n Sprite_sxtwodown: Node | null = null;\n //条件二 任意1\n @property(Node) ScrollView_sxxz3: Node | null = null;\n @property(Node) Layout_sxxz3: Node | null = null;\n sxxz3: Node | null = null;\n prefabsxxz3: Node | null = null;\n\n Label_sxthr: Node | null = null;\n Sprite_sxthrup: Node | null = null;\n Sprite_sxthrdown: Node | null = null;\n //条件二 任意2\n @property(Node) ScrollView_sxxz4: Node | null = null;\n @property(Node) Layout_sxxz4: Node | null = null;\n sxxz4: Node | null = null;\n prefabsxxz4: Node | null = null;\n\n Label_sxfour: Node | null = null;\n Sprite_sxfourup: Node | null = null;\n Sprite_sxfourdown: Node | null = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_pinzhi\" || name == \"Button_close0\") {\n\n this.SetPinZhi(this.Panle_pinzhixz.active);\n\n } else if (name == \"Button_sxone\" || name == \"Button_close1\") {\n\n this.SetPinZhiOne(this.ScrollView_sxxz1.active);\n\n } else if (name == \"Button_sxtwo\" || name == \"Button_close2\") {\n\n this.SetPinZhiTwo(this.ScrollView_sxxz2.active);\n\n } else if (name == \"Button_sxthr\" || name == \"Button_close3\") {\n\n this.SetPinZhiThr(this.ScrollView_sxxz3.active);\n\n } else if (name == \"Button_sxfour\" || name == \"Button_close4\") {\n\n this.SetPinZhiFour(this.ScrollView_sxxz4.active);\n\n } else if (name == \"Button_go\") {\n // console.log(\"isCheckEquipRenYiFirst===\"+this.isCheckEquipRenYiFirst +\"chooseEquipRenYi1==\"+this.chooseEquipRenYi1 +\" chooseEquipRenYi2==\"+this.chooseEquipRenYi2);\n // console.log(\"isCheckEquipRenYiSecond===\"+this.isCheckEquipRenYiSecond +\"chooseEquipRenYi1==\"+this.chooseEquipRenYi2 +\" chooseEquipRenYi2==\"+this.chooseEquipRenYi3);\n this.SaveHeroEquipInFo();\n EventManager.Inst.event(EventType.SHOW_AUTOMAKE_EQUIP);\n this.close(true);\n }else if(name == \"Toggle_decone\"){\n\n let togg = this.Toggle_decone.getComponent(Toggle);\n const ischeck = togg.isChecked;\n this.isCheckEquipRenYiFirst = !ischeck;\n \n }else if(name == \"Toggle_dectwo\"){\n let togg = this.Toggle_dectwo.getComponent(Toggle);\n const ischeck = togg.isChecked;\n this.isCheckEquipRenYiSecond = !ischeck;\n }\n }\n\n onShow(data: any): void {\n\n this.InitHeroEquipInfo();\n this.ShowRenYiItemList();\n }\n\n InitHeroEquipInfo() {\n this.chooseEquipColor = HeroEquipProxy.Inst.chooseEquipColor;\n this.chooseEquipRenYi1 = HeroEquipProxy.Inst.chooseEquipRenYi1;\n this.chooseEquipRenYi2 = HeroEquipProxy.Inst.chooseEquipRenYi2;\n this.chooseEquipRenYi3 = HeroEquipProxy.Inst.chooseEquipRenYi3;\n this.chooseEquipRenYi4 = HeroEquipProxy.Inst.chooseEquipRenYi4;\n this.isCheckEquipRenYiFirst = HeroEquipProxy.Inst.isCheckEquipRenYiFirst;\n this.isCheckEquipRenYiSecond = HeroEquipProxy.Inst.isCheckEquipRenYiSecond;\n }\n SaveHeroEquipInFo() {\n HeroEquipProxy.Inst.isAutioMakeEquip=true;\n HeroEquipProxy.Inst.chooseEquipColor = this.chooseEquipColor;\n HeroEquipProxy.Inst.chooseEquipRenYi1 = this.chooseEquipRenYi1;\n HeroEquipProxy.Inst.chooseEquipRenYi2 = this.chooseEquipRenYi2;\n HeroEquipProxy.Inst.chooseEquipRenYi3 = this.chooseEquipRenYi3;\n HeroEquipProxy.Inst.chooseEquipRenYi4 = this.chooseEquipRenYi4;\n HeroEquipProxy.Inst.isCheckEquipRenYiFirst = this.isCheckEquipRenYiFirst;\n HeroEquipProxy.Inst.isCheckEquipRenYiSecond = this.isCheckEquipRenYiSecond;\n }\n\n ShowRenYiItemList() {\n this.Label_pinzhi.getComponent(RichText).string = HeroEquipProxy.Inst.GetHeroEquipColorName(this.chooseEquipColor);\n this.Label_sxone.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(this.chooseEquipRenYi1);\n this.Label_sxtwo.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(this.chooseEquipRenYi2);\n this.Label_sxthr.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(this.chooseEquipRenYi3);\n this.Label_sxfour.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(this.chooseEquipRenYi4);\n this.Toggle_decone.getComponent(Toggle).isChecked = this.isCheckEquipRenYiFirst;\n this.Toggle_dectwo.getComponent(Toggle).isChecked = this.isCheckEquipRenYiSecond;\n //品质\n this.prefabpzitem = this.pinzhixz;\n this.Layout_pinzhixz.removeAllChildren();\n for (let i = 0; i < 6; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabpzitem);\n if (itemNode) {\n itemNode.parent = this.Layout_pinzhixz;\n let colorName = HeroEquipProxy.Inst.GetHeroEquipColorName(i + 1);\n let Button_pinzhixz = itemNode.getChildByName(\"Button_pinzhixz\");\n let Label_pinzhixz = Button_pinzhixz.getChildByName(\"Label_pinzhixz\");\n Label_pinzhixz.getComponent(RichText).string = colorName;\n let Sprite_sxxz = Button_pinzhixz.getChildByName(\"Sprite_pinzhixz\");\n if (this.chooseEquipColor == (i + 1)) {\n Sprite_sxxz.active = true;\n } else {\n Sprite_sxxz.active = false;\n }\n this.bindClickColorEvent(Button_pinzhixz, (i + 1));\n\n }\n }\n this.Layout_pinzhixz.position = new Vec3(this.Layout_pinzhixz.position.x, -(this.Layout_pinzhixz.position.y));\n\n //任意1\n this.prefabsxxz1 = this.sxxz1;\n this.Layout_sxxz1.removeAllChildren();\n\n for (let i = 0; i < 14; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabsxxz1);\n if (itemNode) {\n itemNode.parent = this.Layout_sxxz1;\n\n let colorName = GlobalFunction.GotHeroEquipBuffDec(i);\n let Button_pinzhixz = itemNode.getChildByName(\"Button_sxxz1\");\n let Label_pinzhixz = Button_pinzhixz.getChildByName(\"Label_sxxz\");\n Label_pinzhixz.getComponent(Label).string = colorName;\n\n let Sprite_sxxz = Button_pinzhixz.getChildByName(\"Sprite_sxxz\");\n if (this.chooseEquipRenYi1 == i) {\n Sprite_sxxz.active = true;\n } else {\n Sprite_sxxz.active = false;\n }\n\n this.bindClickRenYiOneEvent(Button_pinzhixz, i);\n }\n }\n this.Layout_sxxz1.position = new Vec3(this.Layout_sxxz1.position.x, -(this.Layout_sxxz1.position.y));\n\n\n //任意2\n this.prefabsxxz2 = this.sxxz2;\n this.Layout_sxxz2.removeAllChildren();\n\n for (let i = 0; i < 14; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabsxxz2);\n if (itemNode) {\n itemNode.parent = this.Layout_sxxz2;\n\n let colorName = GlobalFunction.GotHeroEquipBuffDec(i);\n let Button_pinzhixz = itemNode.getChildByName(\"Button_sxxz2\");\n let Label_pinzhixz = Button_pinzhixz.getChildByName(\"Label_sxxz\");\n Label_pinzhixz.getComponent(Label).string = colorName;\n\n let Sprite_sxxz = Button_pinzhixz.getChildByName(\"Sprite_sxxz\");\n if (this.chooseEquipRenYi2 == i) {\n Sprite_sxxz.active = true;\n } else {\n Sprite_sxxz.active = false;\n }\n this.bindClickRenYiTwoEvent(Button_pinzhixz, i);\n }\n }\n this.Layout_sxxz2.position = new Vec3(this.Layout_sxxz2.position.x, -(this.Layout_sxxz2.position.y));\n\n\n //任意3\n this.prefabsxxz3 = this.sxxz3;\n this.Layout_sxxz3.removeAllChildren();\n for (let i = 0; i < 14; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabsxxz3);\n if (itemNode) {\n itemNode.parent = this.Layout_sxxz3;\n let colorName = GlobalFunction.GotHeroEquipBuffDec(i);\n let Button_pinzhixz = itemNode.getChildByName(\"Button_sxxz3\");\n let Label_pinzhixz = Button_pinzhixz.getChildByName(\"Label_sxxz\");\n\n Label_pinzhixz.getComponent(Label).string = colorName;\n let Sprite_sxxz = Button_pinzhixz.getChildByName(\"Sprite_sxxz\");\n if (this.chooseEquipRenYi3 == i) {\n Sprite_sxxz.active = true;\n } else {\n Sprite_sxxz.active = false;\n }\n this.bindClickRenYiThrEvent(Button_pinzhixz, i);\n }\n }\n this.Layout_sxxz3.position = new Vec3(this.Layout_sxxz3.position.x, -(this.Layout_sxxz3.position.y));\n\n\n //任意4\n this.prefabsxxz4 = this.sxxz4;\n this.Layout_sxxz4.removeAllChildren();\n\n for (let i = 0; i < 14; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabsxxz4);\n if (itemNode) {\n itemNode.parent = this.Layout_sxxz4;\n let colorName = GlobalFunction.GotHeroEquipBuffDec(i);\n let Button_pinzhixz = itemNode.getChildByName(\"Button_sxxz4\");\n let Label_pinzhixz = Button_pinzhixz.getChildByName(\"Label_sxxz\");\n Label_pinzhixz.getComponent(Label).string = colorName;\n let Sprite_sxxz = Button_pinzhixz.getChildByName(\"Sprite_sxxz\");\n if (this.chooseEquipRenYi4 == i) {\n Sprite_sxxz.active = true;\n } else {\n Sprite_sxxz.active = false;\n }\n this.bindClickRenYiFourEvent(Button_pinzhixz, i);\n }\n }\n GlobalFunction.InItLayoutPostion(this.Layout_sxxz4.getComponent(Layout));\n }\n\n SetPinZhi(isShow: boolean) {\n this.Sprite_pingzhifxup.active = isShow;\n this.Sprite_pingzhifxdown.active = !isShow;\n this.Panle_pinzhixz.active = !isShow;\n }\n\n SetPinZhiOne(isShow: boolean) {\n this.Sprite_sxoneup.active = isShow;\n this.Sprite_sxonedown.active = !isShow;\n this.ScrollView_sxxz1.active = !isShow;\n }\n\n SetPinZhiTwo(isShow: boolean) {\n this.Sprite_sxtwoup.active = isShow;\n this.Sprite_sxtwodown.active = !isShow;\n this.ScrollView_sxxz2.active = !isShow;\n }\n\n SetPinZhiThr(isShow: boolean) {\n this.Sprite_sxthrup.active = isShow;\n this.Sprite_sxthrdown.active = !isShow;\n this.ScrollView_sxxz3.active = !isShow;\n }\n SetPinZhiFour(isShow: boolean) {\n this.Sprite_sxfourup.active = isShow;\n this.Sprite_sxfourdown.active = !isShow;\n this.ScrollView_sxxz4.active = !isShow;\n }\n\n /** 点击选择义肢品质 */\n bindClickColorEvent(itemnode: Node, type: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickColor\";\n clickEventHandler.customEventData = type + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickColor(itemNode, type) {\n let nodeitem = itemNode.target;\n let colorType = parseInt(type);\n if (colorType == this.chooseEquipColor) return;\n for (let i = 0; i < this.Layout_pinzhixz.children.length; i++) {\n\n let node1 = this.Layout_pinzhixz.children[i];\n let choose = node1.getChildByName(\"Button_pinzhixz\").getChildByName(\"Sprite_pinzhixz\");\n if (choose.active) {\n choose.active = false;\n break;\n }\n }\n nodeitem.getChildByName(\"Sprite_pinzhixz\").active = true;\n this.chooseEquipColor = colorType;\n this.SetPinZhi(this.Panle_pinzhixz.active);\n this.Label_pinzhi.getComponent(RichText).string = HeroEquipProxy.Inst.GetHeroEquipColorName(colorType);\n\n }\n\n /** 点击属性任意1 */\n bindClickRenYiOneEvent(itemnode: Node, type: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickRenYiOne\";\n clickEventHandler.customEventData = type + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickRenYiOne(itemNode, type) {\n let nodeitem = itemNode.target;\n let colorType = parseInt(type);\n if (colorType == this.chooseEquipRenYi1) return;\n for (let i = 0; i < this.Layout_sxxz1.children.length; i++) {\n let node1 = this.Layout_sxxz1.children[i];\n let choose = node1.getChildByName(\"Button_sxxz1\").getChildByName(\"Sprite_sxxz\");\n if (choose.active) {\n choose.active = false;\n break;\n }\n }\n nodeitem.getChildByName(\"Sprite_sxxz\").active = true;\n this.chooseEquipRenYi1 = colorType;\n this.Label_sxone.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(colorType);\n this.SetPinZhiOne(this.ScrollView_sxxz1.active);\n\n }\n\n /** 点击属性任意2 */\n bindClickRenYiTwoEvent(itemnode: Node, type: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickRenYiTwo\";\n clickEventHandler.customEventData = type + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickRenYiTwo(itemNode, type) {\n let nodeitem = itemNode.target;\n let colorType = parseInt(type);\n if (colorType == this.chooseEquipRenYi2) return;\n for (let i = 0; i < this.Layout_sxxz2.children.length; i++) {\n let node1 = this.Layout_sxxz2.children[i];\n let choose = node1.getChildByName(\"Button_sxxz2\").getChildByName(\"Sprite_sxxz\");\n if (choose.active) {\n choose.active = false;\n break;\n }\n }\n nodeitem.getChildByName(\"Sprite_sxxz\").active = true;\n this.chooseEquipRenYi2 = colorType;\n this.Label_sxtwo.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(colorType);\n this.SetPinZhiTwo(this.ScrollView_sxxz2.active);\n }\n\n /** 点击属性任意3 */\n bindClickRenYiThrEvent(itemnode: Node, type: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickRenYiThr\";\n clickEventHandler.customEventData = type + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickRenYiThr(itemNode, type) {\n let nodeitem = itemNode.target;\n let colorType = parseInt(type);\n if (colorType == this.chooseEquipRenYi3) return;\n for (let i = 0; i < this.Layout_sxxz3.children.length; i++) {\n let node1 = this.Layout_sxxz3.children[i];\n let choose = node1.getChildByName(\"Button_sxxz3\").getChildByName(\"Sprite_sxxz\");\n if (choose.active) {\n choose.active = false;\n break;\n }\n }\n nodeitem.getChildByName(\"Sprite_sxxz\").active = true;\n this.chooseEquipRenYi3 = colorType;\n this.Label_sxthr.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(colorType);\n this.SetPinZhiThr(this.ScrollView_sxxz3.active);\n }\n\n\n /** 点击属性任意4 */\n bindClickRenYiFourEvent(itemnode: Node, type: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickRenYiFour\";\n clickEventHandler.customEventData = type + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickRenYiFour(itemNode, type) {\n let nodeitem = itemNode.target;\n let colorType = parseInt(type);\n if (colorType == this.chooseEquipRenYi4) return;\n for (let i = 0; i < this.Layout_sxxz4.children.length; i++) {\n let node1 = this.Layout_sxxz4.children[i];\n let choose = node1.getChildByName(\"Button_sxxz4\").getChildByName(\"Sprite_sxxz\");\n if (choose.active) {\n choose.active = false;\n break;\n }\n }\n nodeitem.getChildByName(\"Sprite_sxxz\").active = true;\n this.chooseEquipRenYi4 = colorType;\n this.Label_sxfour.getComponent(Label).string = GlobalFunction.GotHeroEquipBuffDec(colorType);\n this.SetPinZhiFour(this.ScrollView_sxxz4.active);\n }\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { HeroEquip, HeroEquipProxy } from \"../proxy/HeroEquipProxy\";\nimport { p_hero_equip } from \"../../../proto/proto\";\nimport { Sprite } from \"cc\";\nimport { SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { RichText } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { Button } from \"cc\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('HeroEquiptContrastUI')\nexport default class HeroEquiptContrastUI extends BasePanel {\n\n isCheckOnClickSell: boolean;\n\n\n\n dzHeroEquipData: p_hero_equip;//打造的装备\n dzheroEquipConfig: HeroEquip;//配置英雄装备数据\n\n chuanDaiHeroEquipData: p_hero_equip;//穿戴裝備\n chuanDaiHeroEquipConfig: HeroEquip;//穿戴配置裝備\n\n bufflist: number[];//攻击防御血量\n buffcdlist: number[];//攻击防御血量\n @property(Node) one: Node | null = null;\n @property(Node) pk: Node | null = null;\n\n /** one */\n @property(Node) Label_power: Node | null = null;\n @property(Node) Sprite_itemkuang: Node | null = null;\n @property(Node) Sprite_item: Node | null = null;\n @property(Node) Label_itemlv: Node | null = null;\n @property(Node) Label_itemname: Node | null = null;\n\n //普通\n @property(Node) Layout_decpt: Node | null = null;\n decp: Node | null = null;\n prefabdecp: Node | null = null;\n\n //特殊\n @property(Node) Layout_dec: Node | null = null;\n dects: Node | null = null;\n prefabdects: Node | null = null;\n\n /** pk */\n //left\n @property(Node) Sprite_itemkuangleft: Node | null = null;\n @property(Node) Sprite_itemleft: Node | null = null;\n @property(Node) Label_itemlvleft: Node | null = null;\n @property(Node) Label_itemnameleft: Node | null = null;\n @property(Node) Label_powerleft: Node | null = null;//战斗力 左边\n @property(Node) Sprite_powerupleft: Node | null = null;//战斗力高低图片 ui_shibing_sj_02 ui_shibing_sj_01\n @property(Node) Label_powerright: Node | null = null;//战斗力 右边\n \n @property(Node) Layout_decptleft: Node | null = null;//content\n decptleft: Node | null = null;\n prefabdecptleft: Node | null = null;\n\n @property(Node) Layout_dectsleft: Node | null = null;//content\n dectsleft: Node | null = null;\n prefabdectsleft: Node | null = null;\n\n //right\n @property(Node) Sprite_itemkuangright: Node | null = null;\n @property(Node) Sprite_itemright: Node | null = null;\n @property(Node) Label_itemlvright: Node | null = null;\n @property(Node) Label_itemnameright: Node | null = null;\n\n @property(Node) Layout_decptright: Node | null = null;//content\n decptright: Node | null = null;\n prefabdecptright: Node | null = null;\n\n @property(Node) Layout_dectsright: Node | null = null;//content\n @property(Button) Button_sure: Button | null = null;\n dectsright: Node | null = null;\n prefabdectsright: Node | null = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n EventManager.Inst.event(EventType.SHOW_MAKEHEROEQUIP_POUP);\n this.close(true)\n } else if (name == \"Button_sell\") {\n HeroEquipProxy.Inst.SendC1107();\n this.close(true)\n } else if (name == \"Button_get\") {\n HeroEquipProxy.Inst.ReFreshHeroEquipContrast = true;\n HeroEquipProxy.Inst.SendC1108();\n if(GlobalFunction.ConvertUndefinedToNumber(this.dzHeroEquipData.power) >GlobalFunction.ConvertUndefinedToNumber(this.chuanDaiHeroEquipData.power))\n {\n HeroEquipProxy.Inst.SendC1107();\n this.close(true)\n }\n } else if (name == \"Button_sure\") {\n EventManager.Inst.event(EventType.guideEvent_9004, 9004);\n HeroEquipProxy.Inst.SendC1108();\n this.close(true);\n }\n }\n start() {\n this.addEvent();\n }\n private addEvent() {\n\n EventManager.Inst.on(EventType.UPDATE_HEROEQUIPCONTRAST_POUP, this, this.UpdateHeroEquipContrast);\n }\n\n onShow(data: any): void {\n this.dzHeroEquipData = data;//展台的装备\n this.dzheroEquipConfig = HeroEquipProxy.Inst.GetHeroEquipByID(this.dzHeroEquipData.eqId);\n\n let cdHeroEquipdata = HeroEquipProxy.Inst.GotHeroEquipByType(this.dzheroEquipConfig.type);//穿戴的装备\n this.one.active = cdHeroEquipdata == null;\n this.pk.active = cdHeroEquipdata != null;\n\n if (this.bufflist == undefined) {\n this.bufflist = [];\n }\n this.bufflist.length = 0;\n this.bufflist.push(this.dzHeroEquipData.atk);\n this.bufflist.push(this.dzHeroEquipData.def);\n this.bufflist.push(this.dzHeroEquipData.hp);\n\n if (cdHeroEquipdata) {\n //显示pk\n this.ShowPKInfo(cdHeroEquipdata);\n } else {\n //显示one\n this.ShowOneInfo();\n }\n if(GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_9004, [9004, this.Button_sure.node])\n }\n }\n\n\n /**刷新界面 */\n UpdateHeroEquipContrast(data: any) {\n this.onShow(data);\n }\n\n /**显示pk */\n public ShowPKInfo(cdEquipData: p_hero_equip) {\n\n //获取已经装备的数据\n\n this.chuanDaiHeroEquipData = cdEquipData;// HeroEquipProxy.Inst.GotHeroEquipByPos(10);\n\n this.chuanDaiHeroEquipConfig = HeroEquipProxy.Inst.GetHeroEquipByID(cdEquipData.eqId);\n\n if (this.buffcdlist == undefined) {\n this.buffcdlist = [];\n }\n this.buffcdlist.length = 0;\n\n this.buffcdlist.push(this.chuanDaiHeroEquipData.atk);\n this.buffcdlist.push(this.chuanDaiHeroEquipData.def);\n this.buffcdlist.push(this.chuanDaiHeroEquipData.hp);\n\n\n //左邊新义肢\n let Sprite_itemkuangleft = this.Sprite_itemkuangleft.getComponent(Sprite);\n let Sprite_itemleft = this.Sprite_itemleft.getComponent(Sprite);\n let Label_itemlvleft = this.Label_itemlvleft.getComponent(Label);\n let Label_itemnameleft = this.Label_itemnameleft.getComponent(RichText);\n\n let Label_powerleft = this.Label_powerleft.getComponent(Label);//左边战斗力\n Label_powerleft.string = GlobalFunction.ConvertUndefinedToNumber(this.dzHeroEquipData.power)+\"\";\n let Sprite_powerupleft = this.Sprite_powerupleft.getComponent(Sprite);//战斗力提升显示\n if(GlobalFunction.ConvertUndefinedToNumber(this.dzHeroEquipData.power) >GlobalFunction.ConvertUndefinedToNumber(this.chuanDaiHeroEquipData.power)){\n GlobalFunction.SetSpriteSoldierFrame(Sprite_powerupleft, \"ui_shibing_sj_02\");\n }else if(GlobalFunction.ConvertUndefinedToNumber(this.dzHeroEquipData.power) v2;\n // Sprite_down.active = v1 < v2;\n\n // if(v1>v2){\n // GlobalFunction.SetSpriteFramByAtlas(Sprite_decptupleft, \"ui_shibing_sj_02\",Sprite_decptupleft.spriteAtlas.name);\n // // GlobalFunction.SetSpriteFrame(Sprite_decptupleft, \"ui_shibing_sj_02\");\n // }else if(v1 rightvalue;\n // Sprite_down.active = rightvalue != 0 && GlobalFunction.ConvertUndefinedToNumber(citiao.v) != 0 && GlobalFunction.ConvertUndefinedToNumber(citiao.v) < rightvalue;\n Label_decpt.string = GlobalFunction.GotBuffColorName(equipbuffdata.color, GlobalFunction.GotBuffDecByFuffType(equipbuffdata.type, equipbuffdata.effect));\n Label_numpt.string = GlobalFunction.GotBuffColorName(equipbuffdata.color, GlobalFunction.ConvertExtremelyNumber(GlobalFunction.ConvertUndefinedToNumber(citiao.v)));\n }\n\n }\n }\n\n //右边邊已经穿戴的义肢\n\n let Sprite_itemkuangright = this.Sprite_itemkuangright.getComponent(Sprite);\n let Sprite_itemright = this.Sprite_itemright.getComponent(Sprite);\n let Label_itemlvright = this.Label_itemlvright.getComponent(Label);\n let Label_itemnameright = this.Label_itemnameright.getComponent(RichText);\n\n let Label_powerright = this.Label_powerright.getComponent(Label);//右边战斗力\n Label_powerright.string = GlobalFunction.ConvertUndefinedToNumber(this.chuanDaiHeroEquipData.power)+\"\";\n let icon_itemright = SoldierEquipProxy.Inst.GetSoldierEquipKuang(this.chuanDaiHeroEquipConfig.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuangright, icon_itemright);\n GlobalFunction.SetSpriteFrame(Sprite_itemright, this.chuanDaiHeroEquipConfig.icon);\n Label_itemlvright.string = GlobalFunction.ShowLV(this.chuanDaiHeroEquipData.lv);\n Label_itemnameright.string = HeroEquipProxy.Inst.GetHeroEquipNameByHeroId(this.chuanDaiHeroEquipConfig.equipId);\n let citiaorighrList = this.chuanDaiHeroEquipData.ciTiaoList;\n //pt\n this.prefabdecptright = this.decptright;\n this.Layout_decptright.removeAllChildren();\n\n for (let i = 0; i < 3; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdecptright);\n if (itemNode) {\n itemNode.parent = this.Layout_decptright;\n // let equipbuffdata = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID( this.heroequipdata.equipId);\n let Label_numpt = itemNode.getChildByName(\"Label_decptnumright\").getComponent(Label);\n let Label_decpt = itemNode.getChildByName(\"Label_decptright\").getComponent(Label);\n // let Sprite_up = itemNode.getChildByName(\"Sprite_decptupright\");\n // let Sprite_decptupright = Sprite_up.getComponent(Sprite);\n Label_decpt.string = GlobalFunction.GotBuffDecByFuffType(i + 1, 1);\n Label_numpt.string = GlobalFunction.ConvertUndefinedToNumber(this.buffcdlist[i]) + \"\";\n }\n }\n this.prefabdectsright = this.dectsright;\n this.Layout_dectsright.removeAllChildren();\n if (citiaorighrList != undefined) {\n for (let i = 0; i < citiaorighrList.length; ++i) {\n\n let citiao = citiaorighrList[i];\n let datacofig = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiao.id)\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdectsright);\n if (itemNode) {\n itemNode.parent = this.Layout_dectsright;\n let equipbuffdata = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiao.id);\n\n let Label_numpt = itemNode.getChildByName(\"Label_dectsnumright\").getComponent(RichText);\n let Label_decpt = itemNode.getChildByName(\"Label_dectsright\").getComponent(RichText);\n // let Sprite_up = itemNode.getChildByName(\"Sprite_dectsupright\");\n // let Sprite_decptupleft = Sprite_up.getComponent(Sprite);\n // Sprite_up.active=false;\n Label_decpt.string = GlobalFunction.GotBuffColorName(equipbuffdata.color, GlobalFunction.GotBuffDecByFuffType(equipbuffdata.type, equipbuffdata.effect));\n Label_numpt.string = GlobalFunction.GotBuffColorName(equipbuffdata.color, GlobalFunction.ConvertExtremelyNumber(GlobalFunction.ConvertUndefinedToNumber(citiao.v)));\n }\n }\n }\n }\n\n public GetRightCitiaoValue(citiaoid: number) {\n let leftcitiao = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiaoid);\n if (this.chuanDaiHeroEquipData.ciTiaoList != null) {\n for (let i = 0; i < this.chuanDaiHeroEquipData.ciTiaoList.length; i++) {\n let data = this.chuanDaiHeroEquipData.ciTiaoList[i];\n let rightcitiao = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(data.id);\n if (leftcitiao.type == rightcitiao.type && leftcitiao.effect == rightcitiao.effect) {\n return data.v;\n }\n }\n }\n return 0;\n }\n\n /**显示单个 */\n public ShowOneInfo() {\n let Sprite_itemkuang = this.Sprite_itemkuang.getComponent(Sprite);\n let Sprite_item = this.Sprite_item.getComponent(Sprite);\n let Label_itemlv = this.Label_itemlv.getComponent(Label);\n let Label_itemname = this.Label_itemname.getComponent(RichText);\n let Label_power = this.Label_power.getComponent(Label);\n Label_power.string =GlobalFunction.ConvertUndefinedToNumber( this.dzHeroEquipData.power)+\"\";\n let icon_item = SoldierEquipProxy.Inst.GetSoldierEquipKuang(this.dzheroEquipConfig.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, icon_item);\n GlobalFunction.SetSpriteFrame(Sprite_item, this.dzheroEquipConfig.icon);\n Label_itemlv.string = GlobalFunction.ShowLV(this.dzHeroEquipData.lv);\n Label_itemname.string = HeroEquipProxy.Inst.GetHeroEquipNameByHeroId(this.dzheroEquipConfig.equipId);\n let citiaoptList = this.dzHeroEquipData.ciTiaoList;\n\n //pt\n this.prefabdecp = this.decp;\n this.Layout_decpt.removeAllChildren();\n\n for (let i = 0; i < 3; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdecp);\n if (itemNode) {\n itemNode.parent = this.Layout_decpt;\n // let equipbuffdata = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID( this.heroequipdata.equipId);\n let Label_numpt = itemNode.getChildByName(\"Label_decptnum\").getComponent(Label);\n let Label_decpt = itemNode.getChildByName(\"Label_decpt\").getComponent(Label);\n Label_decpt.string = GlobalFunction.GotBuffDecByFuffType(i + 1, 1);\n Label_numpt.string = GlobalFunction.ConvertUndefinedToNumber(this.bufflist[i]) + \"\"; //GlobalFunction.ConvertExtremelyNumber(this.bufflist[i]);\n }\n }\n\n this.prefabdects = this.dects;\n this.Layout_dec.removeAllChildren();\n if (citiaoptList != undefined) {\n for (let i = 0; i < citiaoptList.length; ++i) {\n\n let citiao = citiaoptList[i];\n let datacofig = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiao.id)\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdects);\n if (itemNode) {\n itemNode.parent = this.Layout_dec;\n let equipbuffdata = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiao.id);\n\n let Label_numpt = itemNode.getChildByName(\"Label_dectsnum\").getComponent(RichText);\n let Label_decpt = itemNode.getChildByName(\"Label_dects\").getComponent(RichText);\n Label_decpt.string = GlobalFunction.GotBuffColorName(equipbuffdata.color, GlobalFunction.GotBuffDecByFuffType(equipbuffdata.type, equipbuffdata.effect));\n Label_numpt.string = GlobalFunction.GotBuffColorName(equipbuffdata.color, GlobalFunction.ConvertExtremelyNumber(citiao.v));\n }\n }\n }\n }\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { HeroEquipColor, HeroEquipProxy } from \"../proxy/HeroEquipProxy\";\nimport { p_ci_tiao, p_hero_equip } from \"../../../proto/proto\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { Sprite } from \"cc\";\nimport { SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { sp } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { CommonMsgProxy } from \"../proxy/CommonMsgProxy\";\nimport { FestivalTimeProxy } from \"../proxy/FestivalTimeProxy\";\nimport { SoundManager } from \"../../../core/utils/SoundManager\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('HeroEquiptUI')\nexport default class HeroEquiptUI extends BasePanel {\n\n //获取服务器数据\n lvLv: number;// 决定装备等级的等级\n expLv: number;// lvLv对应的经验\n lvColor: number;// 决定品质的等级\n expColor: number;// 品质等级的点击次数\n finishTime: number;// 如果打造台升级中,升级完成时间,0表示不在升级种\n eqList: p_hero_equip[];// 装备列表\n\n //前端存储数据\n p_heroequip: p_hero_equip;//最后一个装备,放在魔方里面的\n\n Sprite_cubewait: Node | null = null;\n Sprite_cubeopen: Node | null = null;\n e_ui_heroequiptui_waitshow: Node | null = null;\n e_ui_heroequiptui_open: Node | null = null;\n waitSkeleton: sp.Skeleton;\n openSkeleton: sp.Skeleton;\n Sprite_cubeitem: Node | null = null;\n //pt\n @property(Node) Layout_putong: Node | null = null;\n putong: Node | null = null;\n prefabputong: Node | null = null;\n\n //ts\n @property(Node) Layout_teshu: Node | null = null;\n teshu: Node | null = null;\n prefabteshu: Node | null = null;\n\n @property(Node) Label_cube: Node | null = null;\n @property(Node) Label_chuzhi: Node | null = null;\n @property(Node) Sprite_sell: Node | null = null;\n @property(Button) Button_cube: Button | null = null;\n e_ui_titleui_glodexp: Node | null = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n HeroEquipProxy.Inst.isAutioMakeEquip=false;\n this.close(true)\n } else if (name == \"Button_dec\") {\n //点击详情\n this.showHeroEquipDec();\n } else if (name == \"Button_brand\") {\n WindowManager.Instance().open(GameConst.winPath.HeroEquiptUpUI, null, true);//升级\n } else if (name == \"Button_auto\") {\n if(HeroEquipProxy.Inst.isAutioMakeEquip){\n HeroEquipProxy.Inst.isAutioMakeEquip=false;\n }\n WindowManager.Instance().open(GameConst.winPath.HeroEquiptAutoUI, null, true);//设置\n } else if (name == \"Button_cube\") {\n if( HeroEquipProxy.Inst.isAutioMakeEquip){\n HeroEquipProxy.Inst.isAutioMakeEquip=false;\n }else{\n //打造裝備\n //HeroEquiptContrastUI //装备对比\n if (this.p_heroequip == undefined) {\n if (GlobalFunction.ConvertUndefinedToNumber(dataUser.Instance().magic) <= 0) {\n FestivalTimeProxy.Inst.SendC1031(2);\n CommonMsgProxy.Inst.ShowCommonMsg(1007);\n } else {\n HeroEquipProxy.Inst.SendC1106();\n }\n SoundManager.getInstance().playEffectMusic(\"Cube\");\n\n } else {\n //打开对比界面\n if (this.Sprite_cubeitem.active) {\n this.Sprite_cubeitem.active = false;\n }\n EventManager.Inst.event(EventType.guideEvent_9003, 9003);\n WindowManager.Instance().open(GameConst.winPath.HeroEquiptContrastUI, this.p_heroequip, true);//装备对比\n }\n }\n\n }\n }\n\n start() {\n this.addEvent();\n HeroEquipProxy.Inst.SendC1105();\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.UPDATE_HEROEQUIPLIST_POUP, this, this.UpdateHeroEquip);\n EventManager.Inst.on(EventType.UPDATE_MAKEHEROEQUIP_POUP, this, this.UpDataMakeHeroEquip);\n EventManager.Inst.on(EventType.SHOW_MAKEHEROEQUIP_POUP, this, this.ShowMakeHeroEquip);\n EventManager.Inst.on(EventType.SHOW_GLODJINGYAN_REFRESH, this, this.ShowPlayGlodAnimatin);\n EventManager.Inst.on(EventType.SHOW_AUTOMAKE_EQUIP, this, this.AutoMakeEquip);\n }\n\n onShow(data: any): void {\n\n this.Sprite_sell.active = false;\n this.e_ui_titleui_glodexp.active = false;\n if(GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_9003, [9003, this.Button_cube.node])\n }\n }\n\n /**刷新整个界面 */\n UpdateHeroEquip(data: any) {\n this.showNomalHeroEquipList();\n this.showEspeciallyHeroEquipList();\n if (data == undefined) {\n this.ShowMakeHeroEquip();//展示展示台上的装备\n }\n\n let heroequipserver = HeroEquipProxy.Inst.GotHeroEquipByPos(10);\n\n\n\n }\n\n /**刷新自動升級 */\n AutoMakeEquip() {\n if (!HeroEquipProxy.Inst.isAutioMakeEquip) return;\n this.p_heroequip = HeroEquipProxy.Inst.GotHeroEquipByPos(10);\n // console.log(\"===============开始自动升级=========AutoMakeEquip============\" + this.p_heroequip);\n if (this.p_heroequip == undefined) {\n // console.log(\"===============打造台无装备=====================\" + this.p_heroequip);\n if (GlobalFunction.ConvertUndefinedToNumber(dataUser.Instance().magic) <= 0) {\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n FestivalTimeProxy.Inst.SendC1031(2);\n CommonMsgProxy.Inst.ShowCommonMsg(1007);\n } else {\n // console.log(\"=========有道具======开始打造装备=========SendC1106============\");\n HeroEquipProxy.Inst.SendC1106();\n }\n\n } else {\n\n this.GoONMakeEquip();\n }\n }\n GoONMakeEquip(){\n // console.log(\"===============打造装备结果返回=========UpDataMakeHeroEquip============\" + this.p_heroequip);\n let heroequipserver = HeroEquipProxy.Inst.GotHeroEquipByPos(10);\n // this.p_heroequip = HeroEquipProxy.Inst.GotHeroEquipByPos(10);\n let heroequipcoing = HeroEquipProxy.Inst.GetHeroEquipByID(this.p_heroequip.eqId);\n if (heroequipcoing.color >= HeroEquipProxy.Inst.chooseEquipColor) {\n \n if (!HeroEquipProxy.Inst.isCheckEquipRenYiFirst && !HeroEquipProxy.Inst.isCheckEquipRenYiSecond) {\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n } else {\n if (heroequipserver.ciTiaoList != undefined) {\n if (HeroEquipProxy.Inst.isCheckEquipRenYiFirst) {\n if (HeroEquipProxy.Inst.chooseEquipRenYi1 != 0) {\n if (this.IsExieBuff(heroequipserver.ciTiaoList, HeroEquipProxy.Inst.chooseEquipRenYi1)) {\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n }else{\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n if (HeroEquipProxy.Inst.chooseEquipRenYi2 != 0) {\n if (this.IsExieBuff(heroequipserver.ciTiaoList, HeroEquipProxy.Inst.chooseEquipRenYi2)) {\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n }else{\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n }\n \n if (HeroEquipProxy.Inst.isCheckEquipRenYiSecond) {\n if (HeroEquipProxy.Inst.chooseEquipRenYi3 != 0) {\n if (this.IsExieBuff(heroequipserver.ciTiaoList, HeroEquipProxy.Inst.chooseEquipRenYi3)) {\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n }else{\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n if (HeroEquipProxy.Inst.chooseEquipRenYi4 != 0) {\n if (this.IsExieBuff(heroequipserver.ciTiaoList, HeroEquipProxy.Inst.chooseEquipRenYi4)) {\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n }else{\n HeroEquipProxy.Inst.isAutioMakeEquip = false;\n }\n }\n }\n }\n }\n \n if (!HeroEquipProxy.Inst.isAutioMakeEquip) {\n //打开对比界面\n if (this.Sprite_cubeitem.active) {\n this.Sprite_cubeitem.active = false;\n }\n WindowManager.Instance().open(GameConst.winPath.HeroEquiptContrastUI, this.p_heroequip, true);//装备对比\n \n } else {\n //未打造合适的装备直接出售\n // console.log(\"===============SendC1107=====================\");\n HeroEquipProxy.Inst.SendC1107();\n }\n // } \n }\n private IsExieBuff(list: p_ci_tiao[], number: number) {\n for (let i = 0; i < list.length; ++i) {\n let citiaodata: p_ci_tiao = list[i];\n let equipbuffdata = HeroEquipProxy.Inst.GetHeroEquipBuffByLvID(citiaodata.id);\n if (equipbuffdata) {\n if (number == equipbuffdata.type) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**播放金币经验动画 */\n ShowPlayGlodAnimatin() {\n this.Sprite_sell.active = true;\n let e_ui_titleui_glodexp = this.e_ui_titleui_glodexp.getComponent(sp.Skeleton);\n this.e_ui_titleui_glodexp.active = true;\n e_ui_titleui_glodexp.setAnimation(0, \"e_ui_titleui_glodexp\", false);\n e_ui_titleui_glodexp.setCompleteListener((trackEntry) => {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name) {\n case \"e_ui_titleui_glodexp\":\n this.e_ui_titleui_glodexp.active = false;\n break;\n }\n });\n }\n\n /**打造英雄装备后刷新 */\n UpDataMakeHeroEquip() {\n\n this.Sprite_cubewait.active = false;\n this.Sprite_cubeopen.active = true;\n if (this.p_heroequip == null) {\n this.p_heroequip = HeroEquipProxy.Inst.GotHeroEquipByPos(10);\n }\n\n if (this.p_heroequip != null) {\n let heroequipcoing = HeroEquipProxy.Inst.GetHeroEquipByID(this.p_heroequip.eqId)\n this.openSkeleton.setAnimation(0, this.GetEquipOpenSkeleton(heroequipcoing.color), false);\n this.openSkeleton.setCompleteListener((trackEntry) => {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name) {\n case this.GetEquipOpenSkeleton(heroequipcoing.color):\n this.Sprite_cubewait.active = true;\n this.Sprite_cubeopen.active = false;\n this.Label_cube.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(dataUser.Instance().magic) + \"\";\n if(HeroEquipProxy.Inst.isAutioMakeEquip){\n this.GoONMakeEquip();\n }else{\n WindowManager.Instance().open(GameConst.winPath.HeroEquiptContrastUI, this.p_heroequip, true);//装备对比\n }\n\n break;\n default:\n break;\n }\n });\n }\n\n\n\n\n\n\n }\n\n /**展示打造台上英雄装备 */\n ShowMakeHeroEquip() {\n if (this.p_heroequip) {\n this.Sprite_cubeitem.active = true;\n let heroequipcoing = HeroEquipProxy.Inst.GetHeroEquipByID(this.p_heroequip.eqId)\n let Sprite_equip = this.Sprite_cubeitem.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_equip, heroequipcoing.icon);\n this.waitSkeleton.setAnimation(0, this.GetEquipWaitSkeleton(heroequipcoing.color), true);\n\n } else {\n this.Sprite_cubeitem.active = false;\n this.waitSkeleton.setAnimation(0, \"e_ui_heroequiptui_wait\", true);\n }\n }\n\n GetEquipWaitSkeleton(color: HeroEquipColor) {\n if (color == HeroEquipColor.bai) {\n return \"e_ui_heroequiptui_show_white\";\n } else if (color == HeroEquipColor.lv) {\n return \"e_ui_heroequiptui_show_green\";\n } else if (color == HeroEquipColor.lan) {\n return \"e_ui_heroequiptui_show_blue\";\n }\n else if (color == HeroEquipColor.zi) {\n return \"e_ui_heroequiptui_show_purple\";\n }\n else if (color == HeroEquipColor.cheng) {\n return \"e_ui_heroequiptui_show_orange\";\n }\n else if (color == HeroEquipColor.hong) {\n return \"e_ui_heroequiptui_show_red\";\n }\n }\n\n GetEquipOpenSkeleton(color: HeroEquipColor) {\n if (color == HeroEquipColor.bai) {\n return \"e_ui_heroequiptui_open_white\";\n } else if (color == HeroEquipColor.lv) {\n return \"e_ui_heroequiptui_open_green\";\n } else if (color == HeroEquipColor.lan) {\n return \"e_ui_heroequiptui_open_blue\";\n }\n else if (color == HeroEquipColor.zi) {\n return \"e_ui_heroequiptui_open_purple\";\n }\n else if (color == HeroEquipColor.cheng) {\n return \"e_ui_heroequiptui_open_orange\";\n }\n else if (color == HeroEquipColor.hong) {\n return \"e_ui_heroequiptui_open_red\";\n }\n }\n\n /** 展示普通英雄装备 */\n public showNomalHeroEquipList() {\n // // 装备词条\n // message p_ci_tiao{\n // int32 id=1; // 词条id\n // int32 v=2; // 词条的属性值\n // }\n\n // // 武将装备属性\n // message p_hero_equip{\n // int32 pos=1; // 装备位置,1-9表示9个部位,10表示-生成台上的\n // int32 eqId=2; // 装备配置id\n // int32 lv=3; // 等级\n // int32 atk=4; // 攻击\n // int32 def=5; // 防御\n // int32 hp=6; // 血\n // repeated p_ci_tiao ciTiaoList=7; // 词条列表\n // }\n\n // int32 lvLv=1; // 决定装备等级的等级\n // int32 expLv=2; // lvLv对应的经验\n // int32 lvColor=3; // 决定品质的等级\n // int32 expColor=4; // 品质等级的点击次数\n // int32 finishTime=5; // 如果打造台升级中,升级完成时间,0表示不在升级种\n\n this.p_heroequip = HeroEquipProxy.Inst.GotHeroEquipByPos(10);\n this.lvLv = HeroEquipProxy.Inst.HeroEquipServerInfo.lvLv;\n this.expLv = HeroEquipProxy.Inst.HeroEquipServerInfo.expLv;\n this.lvColor = HeroEquipProxy.Inst.HeroEquipServerInfo.lvColor;\n this.expColor = HeroEquipProxy.Inst.HeroEquipServerInfo.expColor;\n this.finishTime = HeroEquipProxy.Inst.HeroEquipServerInfo.finishTime;\n this.eqList = HeroEquipProxy.Inst.HeroEquipServerInfo.eqList;\n //let Label_chuzhi = this.Label_chuzhi.getComponent(Label);\n // this.Label_chuzhi.string = GlobalFunction.ConvertUndefinedToNumber(this.lvLv)+\"\";\n this.Label_chuzhi.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.lvColor) + \"\";\n // console.log(\"dataUser.Instance().magic====\"+dataUser.Instance().magic);\n this.Label_cube.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(dataUser.Instance().magic) + \"\";\n this.openSkeleton = this.e_ui_heroequiptui_open.getComponent(sp.Skeleton);\n this.waitSkeleton = this.e_ui_heroequiptui_waitshow.getComponent(sp.Skeleton);\n this.prefabputong = this.putong;\n this.Layout_putong.removeAllChildren();\n for (let i = 0; i < 9; i++) {\n let itemNode = instantiate(this.prefabputong);\n if (itemNode) {\n itemNode.parent = this.Layout_putong;\n let Button_putong = itemNode.getChildByName(\"Button_putong\");\n let not_pt = Button_putong.getChildByName(\"not_pt\");//未解锁\n let yes_pt = Button_putong.getChildByName(\"yes_pt\");//已經穿戴\n\n let heroequipserver = HeroEquipProxy.Inst.GotHeroEquipByPos(i + 1);\n not_pt.active = heroequipserver == null;\n if (heroequipserver) {\n\n this.bindClickPTEquipEvent(Button_putong, (i + 1));\n let herodata = HeroEquipProxy.Inst.GetHeroEquipByID(heroequipserver.eqId);\n let Sprite_kuangpt = yes_pt.getChildByName(\"Sprite_kuangpt\").getComponent(Sprite);\n let yes_Sprite_pt = yes_pt.getChildByName(\"Sprite_pt\").getComponent(Sprite);\n let Label_ptlv = yes_pt.getChildByName(\"Label_ptlv\").getComponent(Label);\n let spriteColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(herodata.color);\n GlobalFunction.SetSpriteFrame(Sprite_kuangpt, spriteColor);\n GlobalFunction.SetSpriteFrame(yes_Sprite_pt, herodata.icon);\n Label_ptlv.string = GlobalFunction.ShowLV(GlobalFunction.ConvertUndefinedToNumber(heroequipserver.lv));\n } else {\n let not_spritept = not_pt.getChildByName(\"Sprite_pt\").getComponent(Sprite);\n let spriteicon = HeroEquipProxy.Inst.GetHeroEquipIconByTypeAndColor(i + 1, 1);\n if (spriteicon != \"\") {\n GlobalFunction.SetSpriteFrame(not_spritept, spriteicon);\n }\n\n }\n }\n\n\n }\n }\n /** 展示特殊英雄装备 */\n public showEspeciallyHeroEquipList() {\n this.prefabteshu = this.teshu;\n this.Layout_teshu.removeAllChildren();\n for (let i = 0; i < 6; i++) {\n let itemNode = instantiate(this.prefabteshu);\n if (itemNode) {\n itemNode.parent = this.Layout_teshu;\n let Button_putong = itemNode.getChildByName(\"Button_teshu\")\n let lock_ts = Button_putong.getChildByName(\"lock_ts\");//未解锁\n lock_ts.active = true;\n }\n }\n }\n\n\n public showHeroEquipDec() {\n // var data = new BoxData\n // {\n // };\n GlobalFunction.ShowBox(new BoxData(), BoxStyle.BoxStyle2);\n }\n\n\n /** 点击普通武器 */\n bindClickPTEquipEvent(itemnode: Node, pos: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickPtEquip\";\n clickEventHandler.customEventData = pos + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickPtEquip(itemnode, pos) {\n // let node = itemnode.target;\n WindowManager.Instance().open(GameConst.winPath.EquiptDecUI, parseInt(pos), true);\n\n }\n\n\n\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\n// import { TitleData, TitleProxy, titleStyle } from \"../proxy/TitleProxy\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { HeroEquipProxy, HeroEquipUp } from \"../proxy/HeroEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { Button } from \"cc\";\nimport { ProgressBar } from \"cc\";\nimport ResHelper from \"../../../core/manager/ResHelper\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { BoxData } from \"../common/Component\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { math } from \"cc\";\nimport { CoinType, ItemProxy } from \"../proxy/ItemProxy\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { ShopUiType } from \"../proxy/ShopProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('HeroEquiptUpUI')\nexport default class HeroEquiptUpUI extends BasePanel {\n finishTime :number;\n heroequipUpData :HeroEquipUp;\n\n timeDayCallback: any;\n //main\n @property(Node) Label_ber: Node | null = null;\n @property(Node) Label_aft: Node | null = null;\n\n //max\n @property(Node) Label_bermax: Node | null = null;\n\n @property(Node) max: Node | null = null;\n @property(Node) min: Node | null = null;\n\n //buttom\n @property(Node) Label_money: Node | null = null;\n @property(Node) Label_itme: Node | null = null;\n\n\n //Layout_list\n @property(Node) Layout_list: Node | null = null;//content\n list: Node | null = null;\n prefablist: Node | null = null;\n\n //Max\n @property(Node) Layout_listmax: Node | null = null;//content\n listlistmax: Node | null = null;\n prefablistmax: Node | null = null;\n //not\n @property(Node) not: Node | null = null;\n @property(Node) Label_buy: Node | null = null;\n @property(Node) Label_uptime: Node | null = null;\n @property(Node) three: Node | null = null;\n @property(Node) four: Node | null = null;\n @property(Button) Button_buy: Button | null = null;\n\n @property(Node) ProgressBar_threeone: Node | null = null;\n @property(Node) ProgressBar_threetwo: Node | null = null;\n @property(Node) ProgressBar_threethr: Node | null = null;\n\n\n\n //yes\n @property(Node) yes: Node | null = null;\n @property(Node) Label_dian1: Node | null = null;\n @property(Node) Label_dian2: Node | null = null;\n @property(Node) Label_dian4: Node | null = null;\n @property(Node) Label_lasttime: Node | null = null;\n\n @property(Node) ProgressBar_fourone: Node | null = null;\n @property(Node) ProgressBar_fourtwo: Node | null = null;\n @property(Node) ProgressBar_fourthr: Node | null = null;\n @property(Node) ProgressBar_fourfor: Node | null = null;\n\n @property(Button) Button_up: Button | null = null;\n @property(Button) Button_speed: Button | null = null;\n @property(Button) Button_advert: Button | null = null;\n \n @property(Node) Label_advert: Node | null = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_money\") {\n\n } else if (name == \"Button_itme\") {\n\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.lasttime, true);\n this.close(true);\n\n } else if (name == \"Button_buy\") {\n\n // GlobalFunction.ShowNotEnougthNumber(this.heroequipUpData.coin, CoinType.coin, 1004, itemnum, key, () => { ShopProxy.Inst.SendC1214(goodid, 1) }, () => { this.jumpShopPuop(ShopCoinType.xingzuan) });\n HeroEquipProxy.Inst.SendC1109();\n\n } else if (name == \"Button_up\") {\n HeroEquipProxy.Inst.SendC1110();\n\n } else if (name == \"Button_speed\") {\n\n var data = new BoxData\n {\n data.itemId = 2003;\n data.gongnengid = 1;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle1);\n\n } else if (name == \"Button_advert\") {\n if((HeroEquipProxy.Inst.HeroEquipServerInfo.adNum != undefined) && (HeroEquipProxy.Inst.HeroEquipServerInfo.adNum > 0))\n {\n HeroEquipProxy.Inst.SendC1111();\n }\n }\n else if (name == \"Button_sure\") {\n this.close(true)\n }\n }\n start() {\n\n this.addEvent();\n }\n\n private addEvent() {\n\n EventManager.Inst.on(EventType.UPDATE_HEROEQUIPUP_UI, this, this.ShowAll);\n }\n onShow(data: any): void {\n this.showHeroEquipUpInfo();\n }\n\n protected onLoad(): void {\n }\n\n public ShowAll(){\n this.showHeroEquipUpInfo();\n this.showHeroEquipUpList();\n }\n\n public showHeroEquipUpInfo() {\n let Button_up = this.Button_up.node.getComponent(Sprite);\n Button_up.grayscale=false;\n let Button_speed = this.Button_speed.node.getComponent(Sprite);\n Button_speed.grayscale=true;\n let itemSeverData = ItemProxy.Inst.getServerItem(2003);\n if(itemSeverData){\n // console.log(\"存在加速道具====\"+itemSeverData.num+\" id\"+itemSeverData.itemID);\n Button_speed.grayscale=false;\n Button_speed.getComponent(Button).interactable = true;\n this.Label_itme.getComponent(Label).string = GlobalFunction.ConvertNumberWithUnit(itemSeverData.num);\n }else{\n Button_speed.getComponent(Button).interactable = false;\n this.Label_itme.getComponent(Label).string =0+\"\";\n }\n let Button_advert = this.Button_advert.node.getComponent(Sprite);\n let adNum = 0;\n if(HeroEquipProxy.Inst.HeroEquipServerInfo.adNum != undefined){\n adNum = HeroEquipProxy.Inst.HeroEquipServerInfo.adNum; // 处理undefined\n }\n this.Label_advert.getComponent(Label).string = adNum+\"/\"+HeroEquipProxy.Inst.HeroEquipServerInfo.adMaxNum;\n if( adNum > 0){\n Button_advert.getComponent(Button).interactable = true;\n Button_advert.grayscale=false;\n }\n else{\n Button_advert.grayscale=true;\n Button_advert.getComponent(Button).interactable = false;\n }\n \n let vlColor = GlobalFunction.ConvertUndefinedToNumber(HeroEquipProxy.Inst.HeroEquipServerInfo.lvColor);\n\n let expColor = GlobalFunction.ConvertUndefinedToNumber(HeroEquipProxy.Inst.HeroEquipServerInfo.expColor);\n this.finishTime = GlobalFunction.ConvertUndefinedToNumber(HeroEquipProxy.Inst.HeroEquipServerInfo.finishTime);\n\n this.Label_money.getComponent(Label).string =GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().coin);\n \n this.heroequipUpData = HeroEquipProxy.Inst.GetHeroEquipUpByLvID(vlColor);\n this.Label_ber.getComponent(Label).string = vlColor + \"\";\n this.Label_aft.getComponent(Label).string = (vlColor + 1) + \"\";\n\n // console.log(\"lvColor等级===\"+HeroEquipProxy.Inst.HeroEquipServerInfo.lvColor +\" expColor次数==\"+HeroEquipProxy.Inst.HeroEquipServerInfo.expColor);\n \n let MaxLevel = HeroEquipProxy.Inst.HeroEquipUpConfigList.length;\n this.max.active =vlColor == MaxLevel;\n this.min.active = vlColor < MaxLevel;\n\n if (this.min.active) {\n this.not.active = TimePoxy.Inst.IsTimeOver(this.finishTime);\n this.yes.active = !this.not.active;\n if (this.not.active) {\n\n if(dataUser.Instance().coin>= this.heroequipUpData.coin){\n this.Label_buy.getComponent(Label).string =GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().coin) + \"/\" + this.heroequipUpData.coin;\n }else{\n this.Label_buy.getComponent(Label).string =GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().coin) + \"/\" + this.heroequipUpData.coin;\n }\n this.three.active = this.heroequipUpData.upNum == 3;\n this.four.active = this.heroequipUpData.upNum == 4;\n this.Button_buy.node.active = this.heroequipUpData.upNum !=expColor;\n this.Label_uptime.active = this.heroequipUpData.upNum == expColor;\n this.Label_uptime.getComponent(Label).string = TimePoxy.Inst.ShowminutesTime(this.heroequipUpData.time);\n if (this.three.active){\n this.ProgressBar_threeone.getComponent(ProgressBar).progress = expColor > 0 ? 1 : 0;\n this.ProgressBar_threetwo.getComponent(ProgressBar).progress = expColor > 1 ? 1 : 0;\n this.ProgressBar_threethr.getComponent(ProgressBar).progress = expColor > 2 ? 1 : 0;\n Button_up.grayscale=expColor<3;\n } else {\n this.ProgressBar_fourone.getComponent(ProgressBar).progress = expColor > 0 ? 1 : 0;\n this.ProgressBar_fourtwo.getComponent(ProgressBar).progress = expColor > 1 ? 1 : 0;\n this.ProgressBar_fourthr.getComponent(ProgressBar).progress = expColor > 2 ? 1 : 0;\n this.ProgressBar_fourfor.getComponent(ProgressBar).progress = expColor > 3 ? 1 : 0;\n Button_up.grayscale=expColor<4;\n }\n }\n if (this.yes.active) {\n let lasttime = this.Label_lasttime.getComponent(Label);\n lasttime.string = TimePoxy.Inst.ShowTimeLabelNumberAll(this.finishTime,true);\n this.SetCountDownTime();\n }\n this.showHeroEquipUpList();\n } else {\n this.Label_bermax.getComponent(Label).string = MaxLevel+\"\";\n this.showHeroEquipUpMaxList();\n }\n }\n public SetCountDownTime() {\n\n console.log(\"=========================刷新時間====================\"+this.finishTime);\n if(this.timeDayCallback!=null){\n this.unschedule(this.timeDayCallback);\n }\n let timestamp = this.finishTime;\n let currentTime = GameModleComp.getInstance().serverTime; //当前时间(秒)\n let targetTime = timestamp;// 给定时间戳(秒)\n let Label_lasttime = this.Label_lasttime.getComponent(Label);\n let different =targetTime - currentTime; // 时间差(秒)\n\n if (different > 0) {\n Label_lasttime.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n this.timeDayCallback = function (dt) {\n if (different > 0) {\n different--;\n Label_lasttime.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n \n } else {\n this.unschedule(this.timeDayCallback);\n HeroEquipProxy.Inst.ReFreshHeroEquipType=4;\n HeroEquipProxy.Inst.SendC1105();\n WindowManager.Instance().open(GameConst.winPath.Box1UI, true);\n Label_lasttime.string = TimePoxy.Inst.ShowTimeLabelNumberAll(0);\n }\n }\n this.schedule(this.timeDayCallback, 1.0);\n } else {\n Label_lasttime.string = TimePoxy.Inst.ShowTimeLabelNumberAll(0);\n }\n }\n\n\n /** 显示武将装备升级概率 */\n public showHeroEquipUpList() {\n let currentStage = HeroEquipProxy.Inst.HeroEquipServerInfo.lvColor;\n // let currentlv = HeroEquipProxy.Inst.HeroEquipServerInfo.lvLv;\n this.prefablist = this.list;\n this.Layout_list.removeAllChildren();\n for (let i = 0; i < 6; i++) {\n let itemNode = instantiate(this.prefablist);\n if (itemNode) {\n itemNode.parent = this.Layout_list;\n let data = HeroEquipProxy.Inst.GetHeroEquipUpByLvID(currentStage)\n let MaxLevel = HeroEquipProxy.Inst.HeroEquipUpConfigList.length;\n let Label_name = itemNode.getChildByName(\"Label_name\").getComponent(Label);\n Label_name.string = HeroEquipProxy.Inst.GetHeroEquipUpNameById(i+1);\n let Sprite_list = itemNode.getChildByName(\"Sprite_list\").getComponent(Sprite);\n let Sprite_listicon = HeroEquipProxy.Inst.GetHeroEquipUpIconById(i+1);\n GlobalFunction.SetSpriteFrame(Sprite_list, Sprite_listicon);\n let Sprite_lock = itemNode.getChildByName(\"Sprite_lock\");\n let Label_bernum = itemNode.getChildByName(\"Label_bernum\").getComponent(Label);\n Label_bernum.string = GlobalFunction.ConvertExtremelyNumber(HeroEquipProxy.Inst.GetHeroEquipUpPinZhiValueById((i + 1), currentStage));\n let Label_aftnum = itemNode.getChildByName(\"Label_aftnum\").getComponent(Label);\n let label_aftstring = Label_aftnum.getComponent(Label);\n if (currentStage < MaxLevel) {\n label_aftstring.string = GlobalFunction.ConvertExtremelyNumber(HeroEquipProxy.Inst.GetHeroEquipUpPinZhiValueById((i + 1), currentStage + 1));\n }\n }\n }\n\n // ResHelper.getGebulin();\n }\n\n\n /** 显示武将装备等级MAX概率 */\n public showHeroEquipUpMaxList() {\n let currentStage = HeroEquipProxy.Inst.HeroEquipServerInfo.lvColor;\n this.prefablistmax = this.listlistmax;\n this.Layout_listmax.removeAllChildren();\n for (let i = 0; i < 6; i++) {\n let itemNode = instantiate(this.prefablistmax);\n if (itemNode) {\n itemNode.parent = this.Layout_listmax;\n let data = HeroEquipProxy.Inst.HeroEquipUpConfigList[i];\n let MaxLevel = HeroEquipProxy.Inst.HeroEquipUpConfigList.length;\n let Label_name = itemNode.getChildByName(\"Label_name\").getComponent(Label);\n Label_name.string = HeroEquipProxy.Inst.GetHeroEquipUpNameById(i+1);\n let Sprite_list = itemNode.getChildByName(\"Sprite_list\").getComponent(Sprite);\n let Sprite_listicon = HeroEquipProxy.Inst.GetHeroEquipUpIconById(i+1);\n GlobalFunction.SetSpriteFrame(Sprite_list, Sprite_listicon);\n \n let Sprite_lock = itemNode.getChildByName(\"Sprite_lock\");\n let Label_bernum = itemNode.getChildByName(\"Label_bernum\").getComponent(Label);\n Label_bernum.string = GlobalFunction.ConvertExtremelyNumber(HeroEquipProxy.Inst.GetHeroEquipUpPinZhiValueById((i + 1), currentStage));\n // let Label_aftnum = itemNode.getChildByName(\"Label_aftnum\").getComponent(Label);\n // let label_aftstring = Label_aftnum.getComponent(Label);\n // if (currentStage < MaxLevel) {\n // label_aftstring.string = GlobalFunction.ConvertExtremelyNumber(HeroEquipProxy.Inst.GetHeroEquipUpPinZhiValueById((i + 1), currentStage + 1));\n // }\n }\n }\n \n // ResHelper.getGebulin();\n }\n protected onDestroy(): void {\n }\n\n onHide(): void {\n this.unschedule(this.timeDayCallback);\n }\n clearRes() {\n }\n}\n","/**\n * HeroExp config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { expType, HeroProxy } from './HeroProxy';\n\n@res_auto_bind()\nexport class HeroExpProxy {\n private static _inst: HeroExpProxy;\n public static get Inst(): HeroExpProxy {\n if (HeroExpProxy._inst == null) {\n HeroExpProxy._inst = new HeroExpProxy();\n }\n return HeroExpProxy._inst;\n }\n @res_assign(\"HeroExp\")\n public HeroExpMaps: Map = new Map();\n public InitHeroExpConfig() {\n if(this.HeroExpMaps.size>0){\n this.HeroExpMaps.clear();\n }\n let HeroExpDataConfig = ConfigManager.GetInstance().getValue(\"HeroExp\")\n for (var key in HeroExpDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroExp\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroExpMaps.set(item.lv,item);\n }\n\n }\n }\n\n /** 根据HeroLv获取HeroExpData */\n public GetHeroExpDataBylv(HeroLv: number) {\n\n if (this.HeroExpMaps.size==0) {\n this.InitHeroExpConfig();\n }\n return this.HeroExpMaps.get(HeroLv);\n }\n /** 根据HeroLv,herocolor获取HeroExp */\n public GetHeroExpByColor(HeroLv :number,heroColor: expType) {\n let HeroExpData = this.GetHeroExpDataBylv(HeroLv);\n let exp :number =0;\n switch (heroColor) {\n case expType.Color1:\n exp = HeroExpData.exp1;\n break;\n case expType.Color2:\n exp = HeroExpData.exp2;\n break;\n case expType.Color3:\n exp = HeroExpData.exp3;\n break;\n case expType.Color4:\n exp = HeroExpData.exp4;\n break;\n case expType.Color5:\n exp = HeroExpData.exp5;\n break;\n case expType.Color6:\n exp = HeroExpData.exp6;\n break;\n }\n return exp;\n }\n\n /** 根据Hero最大Lv*/\n public GetHeroExpMaxlv() {\n\n if (this.HeroExpMaps.size==0) {\n this.InitHeroExpConfig();\n }\n return this.HeroExpMaps.size;\n }\n}\nexport class HeroExp {\n // /** 等级 */\n lv: number;\n // /** C品质 */\n exp1: number;\n // /** A品质 */\n exp2: number;\n // /** R品质 */\n exp3: number;\n // /** S品质 */\n exp4: number;\n // /** SS品质 */\n exp5: number;\n // /** SSS品质 */\n exp6: number;\n\n}","import { _decorator } from \"cc\";\r\nimport { Soldiers } from \"../modules/game/proxy/SoldierProxy\";\r\nimport { RoleModleComp } from \"./RoleModle\";\r\nimport { Monster, MonsterPoxy } from \"../modules/game/proxy/MonsterPoxy\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { AttType, RoleTypeEnum } from \"../enum/Enum\";\r\nimport { Hero, HeroProxy } from \"../modules/game/proxy/HeroProxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { p_hero } from \"../proto/proto\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('HeroModle')\r\nexport class HeroModle extends RoleModleComp{\r\n private _hero: Hero;\r\n public get hero(): Hero {\r\n return this._hero;\r\n }\r\n public set hero(value: Hero) {\r\n this._hero = value;\r\n this.speed = value.move;\r\n }\r\n private _skillId: number = 101;\r\n public get skillId(): number {\r\n return this._skillId;\r\n }\r\n public set skillId(value: number) {\r\n this._skillId = value;\r\n }\r\n init(){\r\n super.init();\r\n }\r\n addRoleSkill(skid: number) {\r\n if(skid){\r\n let skill:Skill = new Skill();\r\n skill.init();\r\n skill.SkillModel.id = skid;\r\n skill.SkillModel.showTable(true , RoleTypeEnum.Hero);\r\n this.skills.set(skid, skill);\r\n skill.SkillModel.casting.caster = this.role;\r\n skill.SkillModel.casting.skill = skill;\r\n skill.SkillModel.casting.onPassive();\r\n this.role.skill = skill;\r\n // Logger.logView(\"给Hero\"+this.role.roleId + \"添加技能\" + skid);\r\n }\r\n skid = Number(this.hero.idSkill1);\r\n let skill:Skill = new Skill();\r\n skill.init();\r\n skill.SkillModel.id = skid;\r\n skill.SkillModel.showTable(false , RoleTypeEnum.Hero);\r\n this.skills.set(skid, skill);\r\n this.skillId = skid;\r\n skill.SkillModel.casting.caster = this.role;\r\n skill.SkillModel.casting.skill = skill;\r\n skill.SkillModel.casting.onPassive();\r\n this.role.skill = skill;\r\n // Logger.logView(\"给Hero\"+this.role.roleId + \"添加技能\" + skid);\r\n }\r\n addAttributes(data:string , isChange:boolean = false){\r\n let havehp:number = 0;\r\n if(isChange){\r\n havehp = this.attributes.get(AttType.hpValue).value;\r\n }\r\n let hero:p_hero = HeroProxy.Inst.HeroDataServerMaps.get(this.hero.id);\r\n for(let key in AttType){\r\n if(hero.buffAttr[AttType[key]]){\r\n this.attributes.get(AttType[key]).value = hero.buffAttr[AttType[key]];\r\n }else{\r\n this.attributes.get(AttType[key]).value = 0;\r\n }\r\n }\r\n this.attributes.get(AttType.atkValue).value = hero.atk;\r\n this.attributes.get(AttType.defValue).value = hero.def;\r\n this.attributes.get(AttType.hpValue).value = hero.hp;\r\n let hp:number = this.attributes.get(AttType.hpValue).value;\r\n if(isChange){\r\n if(havehp > hp){\r\n havehp = hp;\r\n }\r\n this.attributes.get(AttType.HpMax).value = hp;\r\n this.attributes.get(AttType.hpValue).value = havehp;\r\n }else{\r\n this.attributes.get(AttType.HpMax).value = hp;\r\n }\r\n }\r\n}","/**\n * hero config配置文件\n **/\nimport { c1100, s1100, c1101, s1101, c1102, s1102, c1103, s1103, c1104, s1104, c1202, s1017,p_hero, Long, p_hero_sz, p_buff } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { log } from \"console\";\nimport { Power } from \"../powerui/PowerUI\";\nimport { Logger } from \"../../../../core/common/log/Logger\";\n@res_auto_bind()\nexport class HeroProxy {\n private static _inst: HeroProxy;\n public static get Inst(): HeroProxy {\n if (HeroProxy._inst == null) {\n HeroProxy._inst = new HeroProxy();\n }\n return HeroProxy._inst;\n }\n @res_assign(\"Hero\")\n public HeroDataConfigList: Hero[];\n public InitHeroConfig() {\n if (!this.HeroDataConfigList) {\n this.HeroDataConfigList = [];\n }\n let HeroDataConfig = ConfigManager.GetInstance().getValue(\"Hero\")\n for (var key in HeroDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Hero\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroDataConfigList.push(item);\n }\n }\n }\n /** 根据id获取item */\n public GetHeroDataByID(id: number) {\n if (this.HeroDataConfigList == null) {\n this.InitHeroConfig();\n }\n let data: Hero = this.HeroDataConfigList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n\n /** 根据color获取英雄列表底框 */\n public GetHeroPzdbByColor(heroColor: expType) {\n let colorpzdb = \"ui_yingxiong_pzdb_01\";\n switch (heroColor) {\n case expType.Color1:\n colorpzdb = \"ui_yingxiong_pzdb_05\";\n break;\n case expType.Color2:\n colorpzdb = \"ui_yingxiong_pzdb_04\";\n break;\n case expType.Color3:\n colorpzdb = \"ui_yingxiong_pzdb_03\";\n break;\n case expType.Color4:\n colorpzdb = \"ui_yingxiong_pzdb_02\";\n break;\n case expType.Color5:\n colorpzdb = \"ui_yingxiong_pzdb_01\";\n break;\n case expType.Color6:\n colorpzdb = \"ui_yingxiong_pzdb_00\";\n break;\n }\n return colorpzdb;\n }\n /** 根据color获取英雄品质框 */\n public GetHeroPzKuangByColor(heroColor: expType) {\n let colorpzdb = \"ui_pinzhi_bai\";\n switch (heroColor) {\n case expType.Color1:\n colorpzdb = \"ui_pinzhi_bai\";\n break;\n case expType.Color2:\n colorpzdb = \"ui_pinzhi_lan\";\n break;\n case expType.Color3:\n colorpzdb = \"ui_pinzhi_zi\";\n break;\n case expType.Color4:\n colorpzdb = \"ui_pinzhi_cheng\";\n break;\n case expType.Color5:\n colorpzdb = \"ui_pinzhi_hong\";\n break;\n case expType.Color6:\n colorpzdb = \"ui_pinzhi_cai\";\n break;\n }\n return colorpzdb;\n }\n /** 根据color获取英雄品质 dj*/\n public GetHeroDjByColor(heroPinColor: expType) {\n let colordj = \"ui_yingxiong_dj_01\";\n switch (heroPinColor) {\n case expType.Color1:\n colordj = \"ui_yingxiong_dj_00\";\n break;\n case expType.Color2:\n colordj = \"ui_yingxiong_dj_01\";\n break;\n case expType.Color3:\n colordj = \"ui_yingxiong_dj_02\";\n break;\n case expType.Color4:\n colordj = \"ui_yingxiong_dj_03\";\n break;\n case expType.Color5:\n colordj = \"ui_yingxiong_dj_04\";\n break;\n case expType.Color6:\n colordj = \"ui_yingxiong_dj_05\";\n break;\n }\n return colordj;\n }\n\n /** 根据color获取英雄tx_dj */\n public GetHeroTxdjByColor(heroPinColor: number) {//洗练后获得buff品质\n let colortxdj = \"ui_yingxiong_tx_dj_01\";\n switch (heroPinColor) {\n case 1:\n colortxdj = \"ui_yingxiong_tx_dj_01\";\n break;\n case 2:\n colortxdj = \"ui_yingxiong_tx_dj_02\";\n break;\n case 3:\n colortxdj = \"ui_yingxiong_tx_dj_03\";\n break;\n case 4:\n colortxdj = \"ui_yingxiong_tx_dj_04\";\n break;\n case 5:\n colortxdj = \"ui_yingxiong_tx_dj_05\";\n break;\n case 6:\n colortxdj = \"ui_yingxiong_tx_dj_06\";\n break;\n case 7:\n colortxdj = \"ui_yingxiong_tx_dj_07\";\n break;\n case 8:\n colortxdj = \"ui_yingxiong_tx_dj_08\";\n break;\n case 9:\n colortxdj = \"ui_yingxiong_tx_dj_09\";\n break;\n }\n return colortxdj;\n }\n /** 根据heroid获取英雄类型图标 */\n public GetHeroTypeIcon(type: HeroType) {\n\n let herotype = \"ui_yingxiong_yxlx_zs\";\n switch (type) {\n case 1:\n herotype = \"ui_yingxiong_yxlx_ss\";\n break;\n case 2:\n herotype = \"ui_yingxiong_yxlx_zs\";\n break;\n case 3:\n herotype = \"ui_yingxiong_yxlx_gc\";\n break;\n case 4:\n herotype = \"ui_yingxiong_yxlx_fs\";\n break;\n case 5:\n herotype = \"ui_yingxiong_yxlx_zy\";\n break;\n }\n return herotype;\n }\n /** 根据heroid以及skillid获取技能解锁等级 */\n public GetUnLevelByIdAnd(heroid: number, skillid: number) {\n\n let herodata = HeroProxy.Inst.GetHeroDataByID(heroid);\n let skillids: Map = new Map();\n skillids.set(herodata.idSkill2, herodata.unLock2);\n skillids.set(herodata.idSkill3, herodata.unLock3);\n skillids.set(herodata.idSkill4, herodata.unLock4);\n skillids.set(herodata.idSkill5, herodata.unLock5);\n skillids.set(herodata.idSkill6, herodata.unLock6);\n return skillids.get(skillid)\n }\n\n /***==========================发送消息给服务器========================= */\n public SendC1100() {\n // 获取所有武将信息\n var c1100: c1100 = {};\n send2client(\"c1100\", c1100);\n }\n\n public SendC1101(pos: number, heroid: string = \"0\") {\n // 武将上阵请求\n Logger.logNet(\"Send1101:\" + pos);\n var c1101: c1101 = { pos: pos, heroId: heroid };\n send2client(\"c1101\", c1101);\n\n }\n public SendC1102() {\n\n //获取上阵武将列表\n var c1102: c1102 = {};\n send2client(\"c1102\", c1102);\n\n }\n public SendC1103() {\n\n // 获取全武将加成请求\n var c1103: c1103 = {};\n send2client(\"c1103\", c1103);\n\n }\n public SendC1104(pos: number) {\n // 武将上阵位置解锁请求\n var c1104: c1104 = { pos: pos };\n send2client(\"c1104\", c1104);\n\n }\n public SendC1202(itemUID: string, num: number, heroId: string, selectList: number[]=null) {\n //升級英雄\n // Logger.logNet(\" 升級英雄 itemUID==\" + itemUID + \" num==\" + num + \" heroid==\" + heroId);\n if (selectList == null) {\n selectList = [];\n }\n var c1202: c1202 = { itemUID, num, heroId, selectList };\n send2client(\"c1202\", c1202);\n }\n\n\n /***==========================服务器数据存储============================== */\n public HeroDataServerMaps: Map = new Map();//服务器返回-已经获得的英雄列表\n\n public Herop_buff: p_buff;//服务器返回-所有英雄的攻击,防御,血量以及其他特殊加成\n\n public power: number;//服务器返回-总的战斗力\n public szHeros: p_hero_sz[];//服务器返回-上阵英雄数据\n\n\n public HeroScreenMaps: Map = new Map();//前端存储-筛选英雄数据\n /** 通过herouid 返回服务器数据p_hero*/\n public GetSeverHeroByUId(uid: string) {\n if (uid == \"0\") {\n return null;\n }\n for (var v of this.HeroDataServerMaps.values()) {\n if (v.heroId == uid) {\n return v;\n }\n }\n return null;\n }\n\n /***通过heroid 返回服务器数据 p_hero */\n public GetSeverHeroById(heroid: number) {\n if (heroid == 0) {\n return null;\n }\n for (var v of this.HeroDataServerMaps.values()) {\n if (v.localId == heroid) {\n return v;\n }\n }\n return null;\n }\n\n /**判断英雄是否上阵uid 返回blooen */\n public HeroIsOnStageByUid(uid: string) {\n if (this.szHeros != null && uid != \"0\") {\n let data: p_hero = this.szHeros.find(item => item.heroId == uid);\n if (data) {\n return true;\n }\n }\n\n return false;\n }\n /** 判断英雄是否上阵id 返回blooen*/\n public HeroIsOnStageById(id: number) {\n\n let data: p_hero = this.GetSeverHeroById(id);\n if (data) {\n\n return this.HeroIsOnStageByUid(data.heroId);\n }\n return false;\n }\n\n /**英雄上阵,获取上阵位置 */\n public HeroOnStageIndex() {\n if (HeroProxy.Inst.szHeros != null) {\n for (let i = 0; i < HeroProxy.Inst.szHeros.length; i++) {\n let szdata = HeroProxy.Inst.szHeros[i];\n if (szdata) {\n if (szdata.heroId == \"0\") {\n return szdata.pos;\n }\n }\n }\n }\n\n return 0;\n }\n\n /**获取下阵位置 */\n public HeroDownStageIndex(id: number) {\n let data: p_hero = this.GetSeverHeroById(id);\n if (data) {\n if (HeroProxy.Inst.szHeros != null) {\n for (let i = 0; i < HeroProxy.Inst.szHeros.length; i++) {\n let szdata = HeroProxy.Inst.szHeros[i];\n if (szdata) {\n if (szdata.heroId == data.heroId) {\n return szdata.pos;\n }\n }\n }\n }\n }\n return 0;\n }\n}\n\n/***==========================接收服务器消息============================= */\n\n/**获取所有武将信息 */\nexport function do_s1100(s1100: s1100) {\n console.log(\"===============1100===============s1100 获取所有武将信息:\"+s1100.type);\n if (s1100 == null || s1100.heroList == null) return;\n let herolist = s1100.heroList;\n if (s1100.type == 1) {//全体武将\n HeroProxy.Inst.HeroDataServerMaps.clear();\n for (let i = 0; i < herolist.length; i++) {\n let data = herolist[i];\n if (data.heroId != \"0\") {\n HeroProxy.Inst.HeroDataServerMaps.set(data.localId, data);\n }\n }\n WindowManager.Instance().Update(GameConst.winPath.HeroUI, 1, true);\n } else if (s1100.type == 2) {//更新部分武将或新增\n\n for (let i = 0; i < herolist.length; i++) {\n let data = herolist[i];\n if (data.heroId != \"0\") {\n\n let herodata = HeroProxy.Inst.HeroDataServerMaps.get(data.localId)\n if(!herodata){\n HeroProxy.Inst.HeroDataServerMaps.set(data.localId, data);\n if(data.localId!=1001){\n WindowManager.Instance().open(GameConst.winPath.AdvanceHeroUI, data.localId);\n }\n\n }else{\n HeroProxy.Inst.HeroDataServerMaps.set(data.localId, data);\n }\n\n }\n }\n WindowManager.Instance().Update(GameConst.winPath.HeroUI, 1, true);\n WindowManager.Instance().Update(GameConst.winPath.HeroTipsUI, null, true);\n HeroProxy.Inst.SendC1103();\n }\n \n EventManager.Inst.event(EventType.GEBOLIN_ATT_CHANGE);\n}\n\n/**返回 武将上阵请求 */\nexport function do_s1101(s1101: s1101) {\n // console.log(\"===============heroproxy===============s1101 武将 上阵 请求结果:\" + s1101.result);\n if (s1101.result == undefined) {\n // HeroProxy.Inst.SendC1102();\n }\n}\n\n\n/**返回 上阵武将列表 */\nexport function do_s1102(s1102: s1102) {\n // console.log(\"=================heroproxy=============s1102 武将上阵列表 请求结果:\");\n if (s1102 == null || s1102.szHeros == null) return;\n HeroProxy.Inst.power =GlobalFunction.ConvertUndefinedToNumber(s1102.power);\n if (HeroProxy.Inst.szHeros == null) {\n HeroProxy.Inst.szHeros = [];\n }\n HeroProxy.Inst.szHeros.length = 0;\n for (let i = 0; i < s1102.szHeros.length; i++) {\n HeroProxy.Inst.szHeros.push(s1102.szHeros[i]);\n }\n HeroProxy.Inst.szHeros.sort(function (a, b) {\n return a.pos - b.pos;\n });\n // console.log(\"power======\"+HeroProxy.Inst.power);\n //去更新 英雄界面的总战斗力和上阵武将列表\n if (GameModleComp.getInstance().isOpenGame) {\n WindowManager.Instance().Update(GameConst.winPath.HeroUI, 2, true);\n EventManager.Inst.event(EventType.HERO_LIST_CHANG, HeroProxy.Inst.szHeros);\n }\n}\n\n/***返回 武将加成*/\nexport function do_s1103(s1103: s1103) {\n //console.log(\"=================heroproxy=============s1103 获取全武将加成 SUCCESS:\");\n if (s1103 == undefined) return;\n HeroProxy.Inst.Herop_buff = s1103.buffAttr;\n if(!HeroProxy.Inst.Herop_buff){\n console.error(\"未获取到英雄数据\")\n return;\n }\n if(s1103.buffAttr!=undefined){\n HeroProxy.Inst.Herop_buff =s1103.buffAttr;\n HeroProxy.Inst.Herop_buff.atkRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.atkRate)\n HeroProxy.Inst.Herop_buff.defValue =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.defValue)\n HeroProxy.Inst.Herop_buff.defRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.defRate)\n \n HeroProxy.Inst.Herop_buff.hpValue =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.hpValue)\n HeroProxy.Inst.Herop_buff.hpRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.hpRate)\n HeroProxy.Inst.Herop_buff.hurtRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.hurtRate)\n HeroProxy.Inst.Herop_buff.skillHurtRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.skillHurtRate)\n \n HeroProxy.Inst.Herop_buff.baoJiRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.baoJiRate)\n HeroProxy.Inst.Herop_buff.baoJiHurtRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.baoJiHurtRate)\n HeroProxy.Inst.Herop_buff.mingRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.mingRate)\n \n HeroProxy.Inst.Herop_buff.zhiRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.zhiRate)\n HeroProxy.Inst.Herop_buff.deHurtRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.deHurtRate)\n HeroProxy.Inst.Herop_buff.deBaoJiRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.deBaoJiRate)\n HeroProxy.Inst.Herop_buff.deShanRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.deShanRate)\n HeroProxy.Inst.Herop_buff.deZhiRate =GlobalFunction.ConvertUndefinedToNumber(HeroProxy.Inst.Herop_buff.deZhiRate)\n WindowManager.Instance().Update(GameConst.winPath.HeroUI, 3, true);\n }\n\n\n}\n\n/**武将上阵位置解锁请求 */\nexport function do_s1104(s1104: s1104) {\n //console.log(\"=================heroproxy=============s1104 武将上阵位置解锁结果 SUCCESS:\" + s1104.result);\n if (s1104.result == undefined) {\n WindowManager.Instance().Update(GameConst.winPath.HeroUI, 2, true);\n }\n\n}\n/**战斗力变化展示 */\nexport function do_s1017(s1017: s1017) {\n // console.log(\"===========战斗里变化======s1017.powerOld=============\"+s1017.powerOld +\"s1017.powerNew=============\"+s1017.powerNew);\n if(s1017.powerOld!=s1017.powerNew){\n let power :Power = new Power();\n power.olderPower =GlobalFunction.ConvertUndefinedToNumber(s1017.powerOld); \n power.newerPower = GlobalFunction.ConvertUndefinedToNumber(s1017.powerNew);\n power.type =GlobalFunction.ConvertUndefinedToNumber(s1017.src); \n WindowManager.Instance().open(GameConst.winPath.PowerUI, power,true);\n }\n}\nexport class Hero {\n id: number; //英雄id\n lan_nameId: string; //英雄名称\n color: expType; //品质 1白色C 2蓝A 3紫R 4橙S 5红SS 6彩色sss\n type: HeroType;\n atk: number; //基础攻击\n def: number; //基础防御\n hp: number; //基础血量\n cs: number;//基础爆率\n vi: number;//基础爆伤\n idSkill1: number; //主动技能\n idSkill2: number; //被动1\n idSkill3: number; //被动2\n idSkill4: number; //被动3\n idSkill5: number; //被动4\n idSkill6: number; //被动5\n unLock1: number; //解锁等级\n unLock2: number; //解锁等级\n unLock3: number; //解锁等级\n unLock4: number; //解锁等级\n unLock5: number; //解锁等级\n unLock6: number; //解锁等级\n\n bulletmodel: string; //普攻动作\n hitEffect: string; //击中动作\n attackDistance: number; //攻击距离\n attackSpeed: number;//攻击速度\n move: number; //移动速度\n heroModel: string;//英雄模型\n heroIcon: string; //武将立绘\n flySpeed: number;\n}\n\n\n\n\n\nexport enum expType {\n Color1 = 1, //C品质\n Color2 = 2, //A品质\n Color3 = 3, //R品质\n Color4 = 4, //S品质\n Color5 = 5, //SS品质\n Color6 = 6, //SSS品质\n}\n\nexport enum HeroType {\n SheShou = 1, //射手\n ZhanShi = 2, //战士\n GongCheng = 3, //工程\n FaShi = 4, //法师\n ZhiYu = 5, //治愈\n}\n\nexport enum HeroScreenType {\n yongyou = 1, //拥有\n weiyongyou = 2, //未拥有\n\n pinzhic = 3, //C\n pinzhia = 4, //A\n pinzhir = 5, //R\n pinzhis = 6, //S\n pinzhiss = 7, //SS\n pinzhisss = 8, //SSS\n\n zhanshi = 9, //战士\n fashi = 10, //法师\n sheshou = 11, //射手\n gongcheng = 12, //工程\n zhiyu = 13, //治愈\n}\n","/**\n * heroRefine config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../../_config/ConfigManager';\nimport { GlobalFunction } from '../../common/GlobalFunction';\nimport { StringUtil } from '../../../../core/utils/StringUtil';\nimport { HeroProxy } from '../HeroProxy';\n@res_auto_bind()\nexport class HeroRefineProxy {\n private static _inst: HeroRefineProxy;\n public static get Inst(): HeroRefineProxy {\n if (HeroRefineProxy._inst == null) {\n HeroRefineProxy._inst = new HeroRefineProxy();\n }\n return HeroRefineProxy._inst;\n }\n @res_assign(\"HeroRefin\")\n public HeroRefineConfigList: HeroRefine[];\n public InitHeroRefineConfig() {\n if (!this.HeroRefineConfigList) {\n this.HeroRefineConfigList = [];\n }\n let HeroRefineConfig = ConfigManager.GetInstance().getValue(\"HeroRefine\")\n for (var key in HeroRefineConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroRefine\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroRefineConfigList.push(item);\n }\n }\n }\n /** 根据level获取item */\n public GetHeroRefineByLevel(level: number) {\n if (this.HeroRefineConfigList == null) {\n this.InitHeroRefineConfig();\n }\n let data: HeroRefine = this.HeroRefineConfigList.find(item => item.level == level);\n if (data) {\n return data;\n }\n return null;\n }\n\n\n //词条最大值\n @res_assign(\"HeroRefineBuff\")\n public HeroRefineBuffConfigList: HeroRefineBuff[];\n public InitHeroRefineBuffConfig() {\n if (!this.HeroRefineBuffConfigList) {\n this.HeroRefineBuffConfigList = [];\n }\n let HeroRefineConfig = ConfigManager.GetInstance().getValue(\"HeroRefineBuff\")\n for (var key in HeroRefineConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroRefineBuff\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroRefineBuffConfigList.push(item);\n }\n }\n }\n\n public GetHeroRefineBuffString(reduction: number, percent: number, value: number) {\n let stringdata = \"\";\n if (reduction == 0) {\n stringdata = \"+\"\n } else {\n stringdata = \"-\"\n }\n stringdata += \"{0}\"\n if (percent == 0) {\n stringdata += \"%\"\n }\n StringUtil.stringFormat(stringdata, value);\n\n }\n /** 根据libraryid获取item */\n public GetHeroRefineBuffByLevel(libraryid: number) {\n if (this.HeroRefineBuffConfigList == null) {\n this.InitHeroRefineBuffConfig();\n }\n let data: HeroRefineBuff = this.HeroRefineBuffConfigList.find(item => item.libraryid == libraryid);\n if (data) {\n return data;\n }\n return null;\n }\n\n\n //洗练概率配置表\n @res_assign(\"HeroRefineChance\")\n public HeroRefineChanceConfigList: HeroRefineChance[];\n public InitHeroRefineChanceConfig() {\n if (!this.HeroRefineChanceConfigList) {\n this.HeroRefineChanceConfigList = [];\n }\n let HeroRefineBuffConfig = ConfigManager.GetInstance().getValue(\"HeroRefineChance\")\n for (var key in HeroRefineBuffConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroRefineChance\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroRefineChanceConfigList.push(item);\n }\n }\n }\n\n /** 根据洗练等级level获取item */\n public GetHeroRefineChanceByLevel(level: number) {\n if (this.HeroRefineChanceConfigList == null) {\n this.InitHeroRefineChanceConfig();\n }\n let data: HeroRefineChance = this.HeroRefineChanceConfigList.find(item => item.level == level);\n if (data) {\n return data;\n }\n return null;\n }\n\n\n\n //词条库配置表\n @res_assign(\"HeroRefineLibrary\")\n public HeroRefineLibraryConfigList: HeroRefineLibrary[];\n public InitHeroRefineLibraryConfig() {\n if (!this.HeroRefineLibraryConfigList) {\n this.HeroRefineLibraryConfigList = [];\n }\n let HeroRefineLibraryConfig = ConfigManager.GetInstance().getValue(\"HeroRefineLibrary\")\n for (var key in HeroRefineLibraryConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroRefineLibrary\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroRefineLibraryConfigList.push(item);\n }\n }\n }\n\n /** 根据词条id获取item */\n public HeroRefineLibraryBypzid(pinzhiid: number) {\n if (this.HeroRefineLibraryConfigList == null) {\n this.InitHeroRefineLibraryConfig();\n }\n let data: HeroRefineLibrary = this.HeroRefineLibraryConfigList.find(item => item.pinzhiid == pinzhiid);\n if (data) {\n return data;\n }\n return null;\n }\n\n \n /**** 根据buffid 判断该buff属于哪个品质阶 */\n public HeroBuffPinZhiBybuffid(pinzhiid: number) {\n if (this.HeroRefineLibraryConfigList == null) {\n this.InitHeroRefineLibraryConfig();\n }\n \n var pinzhiid: number = 0;\n for (let i = 0; i < this.HeroRefineLibraryConfigList.length; i++) {\n let heroLibrary = this.HeroRefineLibraryConfigList[i];\n if (heroLibrary.ay_library.includes(pinzhiid)) {\n pinzhiid = heroLibrary.pinzhiid;\n break;\n }\n }\n var LibarayIcon = HeroProxy.Inst.GetHeroTxdjByColor(pinzhiid);\n return LibarayIcon;\n }\n\n\n}\n\nexport class HeroRefine {\n level: number; //洗练等级\n xilian_exp: number; //洗练获得经验\n levelup_exp: number; //升级所需经验\n}\n\nexport class HeroRefineBuff {\n libraryid: number; //词条id\n type: number;\n reduction: number;//1加者1减\n number_or_percent: number;//增加类型\n min: number; //词条最小数值\n max: number; //词条最大数值\n}\n\nexport class HeroRefineChance {\n level: number; //洗练等级\n white: number; //白色\n green: number; //绿色\n bule: number; //蓝色\n purple: number; //紫色\n yellow: number; //黄色\n orange: number; //橙色\n Gradation_purple: number; //渐变紫色\n pink: number; //粉色\n modena: number; //深紫色\n}\n\nexport class HeroRefineLibrary {\n pinzhiid: number; //品质id\n ay_library: number[]; //词条库\n}","import { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport BasePanel from \"../../../core/component/BasePanel\";\nimport { HeroProxy, HeroScreenType } from \"../proxy/HeroProxy\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { Sprite } from \"cc\";\nimport { ProgressBar } from \"cc\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Buff, BuffPoxy } from \"../proxy/BuffPoxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { HeroExpProxy } from \"../proxy/HeroExpProxy\";\nimport { SkillProxy } from \"../proxy/SkillProxy\";\nimport { SkillUiData } from \"../skillui/SkillUI\";\nimport { Vec3 } from \"cc\";\nimport { Toggle } from \"cc\";\nconst { ccclass, property } = _decorator;\n@ccclass(\"HeroScreenUI\")\nexport default class HeroScreenUI extends BasePanel {\n\n ScreenMaps: Map;\n\n AllToggleNode: Node[] = null;\n Toggle_yes: Node = null;\n Toggle_no: Node = null;\n Toggle_c: Node = null;\n Toggle_a: Node = null;\n Toggle_r: Node = null;\n Toggle_s: Node = null;\n Toggle_ss: Node = null;\n Toggle_sss: Node = null;\n\n\n Toggle_zz: Node = null;\n Toggle_fs: Node = null;\n Toggle_shs: Node = null;\n Toggle_gc: Node = null;\n Toggle_zy: Node = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.clearRes();\n this.close(true)\n } else if (name == \"Button_sure\") {\n this.SetHeroScreenValue();\n this.close(true)\n }\n else if (name == \"Toggle_yes\") {\n if(!this.ScreenMaps.get(2))\n {\n let togg = this.Toggle_yes.getComponent(Toggle);\n const ischeck = togg.isChecked;\n togg.isChecked=!ischeck;\n return;\n };\n this.ShowPanelToggle(this.Toggle_yes);\n }\n else if (name == \"Toggle_no\") {\n if(!this.ScreenMaps.get(1)){\n let togg = this.Toggle_no.getComponent(Toggle);\n const ischeck = togg.isChecked;\n togg.isChecked=!ischeck;\n return;\n };\n this.ShowPanelToggle(this.Toggle_no);\n }\n else if (name == \"Toggle_c\") {\n this.ShowPanelToggle(this.Toggle_c);\n } else if (name == \"Toggle_a\") {\n this.ShowPanelToggle(this.Toggle_a);\n } else if (name == \"Toggle_r\") {\n this.ShowPanelToggle(this.Toggle_r);\n } else if (name == \"Toggle_s\") {\n this.ShowPanelToggle(this.Toggle_s);\n } else if (name == \"Toggle_ss\") {\n this.ShowPanelToggle(this.Toggle_ss);\n } else if (name == \"Toggle_sss\") {\n this.ShowPanelToggle(this.Toggle_sss);\n }\n else if (name == \"Toggle_zz\") {\n this.ShowPanelToggle(this.Toggle_zz);\n } else if (name == \"Toggle_fs\") {\n this.ShowPanelToggle(this.Toggle_fs);\n } else if (name == \"Toggle_shs\") {\n this.ShowPanelToggle(this.Toggle_shs);\n } else if (name == \"Toggle_gc\") {\n this.ShowPanelToggle(this.Toggle_gc);\n } else if (name == \"Toggle_zy\") {\n this.ShowPanelToggle(this.Toggle_zy);\n }\n }\n\n onShow(data: any): void {\n this.AllToggleNode =[];\n this.AllToggleNode.push(this.Toggle_yes);\n this.AllToggleNode.push(this.Toggle_no);\n this.AllToggleNode.push(this.Toggle_c);\n this.AllToggleNode.push(this.Toggle_a);\n this.AllToggleNode.push(this.Toggle_r);\n this.AllToggleNode.push(this.Toggle_s);\n this.AllToggleNode.push(this.Toggle_ss);\n this.AllToggleNode.push(this.Toggle_sss);\n this.AllToggleNode.push(this.Toggle_zz);\n this.AllToggleNode.push(this.Toggle_fs);\n this.AllToggleNode.push(this.Toggle_shs);\n this.AllToggleNode.push(this.Toggle_gc);\n this.AllToggleNode.push(this.Toggle_zy);\n this.ScreenMaps = new Map();\n for(let i=0;i |null = null;\n\n @property(Node) Sprite_skillzhukuang: Node | null = null;\n @property(Node)Sprite_skillzhu: Node | null = null;\n @property(Node)Label_skillname: Node | null = null;\n @property(Node)Label_skilldec: Node | null = null;\n @property(Node)Label_yimanji: Node | null = null;\n \n \n //progress\n @property(Node)lv: Node | null = null;\n @property(Node)ProgressBar_lv: Node | null = null;\n @property(Node)Label_lvnum: Node | null = null;\n\n @property(Node)Label_lv: Node | null = null;\n\n //按钮\n @property(Node)Label_exp: Node | null = null;\n @property(Node)Label_get: Node | null = null;\n @property(Button)Button_get: Button | null = null;\n \n @property(Button)Button_exp: Button | null = null;\n @property(Node)e_ui_hero_up: Node | null = null;\n @property(Button)Button_close: Button | null = null;\n skeleck :sp.Skeleton;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n EventManager.Inst.event(EventType.guideEvent_4006 , 4006);\n } else if (name == \"Button_get\") {//装备\n if(this.IsOnstage){\n if(!GameModleComp.getInstance().fuhuoMap.get(this.heroid)){\n let index= HeroProxy.Inst.HeroDownStageIndex(this.heroid);\n // console.log(\"下阵请求=========\"+index);\n HeroProxy.Inst.SendC1101(index);//下阵\n }else{\n Logger.logView(\"当前武将阵亡,无法操作\")\n }\n this.close(true)\n }else{\n let stageIndex = HeroProxy.Inst.HeroOnStageIndex()\n if(stageIndex!=0){\n if(!GameModleComp.getInstance().fuhuoMap.get(this.heroid)){\n let p_hero = HeroProxy.Inst.GetSeverHeroById(this.heroid);\n // console.log(\"stageIndex===\"+stageIndex+\" p_hero.heroId===\"+p_hero.heroId);\n HeroProxy.Inst.SendC1101(stageIndex,p_hero.heroId);//上阵\n }else{\n Logger.logView(\"当前武将阵亡,无法操作\")\n }\n this.close(true)\n }\n }\n if(GuideManager.getInstance().isInGuide && this.heroid == 1001){\n EventManager.Inst.event(EventType.guideEvent_4005 , 4005);\n setTimeout(() => {\n GuideManager.getInstance().waitSmallId = 4006;\n EventManager.Inst.event(EventType.uiOpenEvent_4006 , [4006,this.Button_close.node])\n }, 100);\n }\n } else if (name == \"Button_exp\") {//升级\n // let itemSeverData = ItemProxy.Inst.getServerItem(this.itemID);\n // if(itemSeverData){\n // let heroserverdata = HeroProxy.Inst.GetSeverHeroById(this.heroid);\n // if(heroserverdata){\n // HeroProxy.Inst.SendC1202(itemSeverData.itemUID,this.currentHeroUpExp,heroserverdata.heroId);\n // }\n // }\n\n } \n else if (name == \"Button_herodec\") { //详情\n // GlobalFunction.Inst.ShowBoxsByBtName(this.node.name,name);\n\n var data = new BoxData\n {\n data.heroid = this.heroid;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle8);\n } \n }\n onLoadUpdate(data: any) {\n this.onShow(null);\n }\n\n onShow(data: any): void {\n if(data!=undefined){\n this.heroid = data;\n }\n this.IsOnstage =HeroProxy.Inst.HeroIsOnStageById(this.heroid)\n let herodata = HeroProxy.Inst.GetHeroDataByID(this.heroid);\n let heroserverdata = HeroProxy.Inst.GetSeverHeroById(this.heroid);\n // if(!herodata || !heroserverdata)return;\n\n this.Label_yimanji.active=heroserverdata==undefined? false: heroserverdata.lv>=HeroExpProxy.Inst.GetHeroExpMaxlv();\n this.lv.active =heroserverdata==undefined? false: heroserverdata.lvheroserverdata.lv;\n yesskill.active= !notskill.active;\n if(notskill.active){\n let Sprite_skill = notskill.getChildByName(\"Sprite_skill\").getComponent(Sprite);\n let Label_skill = notskill.getChildByName(\"Label_skill\").getComponent(Label);\n GlobalFunction.SetSpriteFrame(Sprite_skill,buffdata.icon);\n Label_skill.string =GlobalFunction.ShowLV(value);\n }else{\n let Sprite_skill = yesskill.getChildByName(\"Sprite_skill\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_skill,buffdata.icon);\n }\n }\n\n }\n\n\n\n }\n\n\n\n //主动技能信息\n let skilldata = SkillProxy.Inst.GetSkillDataByID(herodata.idSkill1);\n\n if(skilldata){\n let Sprite_skillzhukuang = this.Sprite_skillzhukuang.getComponent(Sprite);\n let Sprite_skillzhu = this.Sprite_skillzhu.getComponent(Sprite);\n let Label_skillname = this.Label_skillname.getComponent(Label);\n let Label_skilldec = this.Label_skilldec.getComponent(Label);\n let skilldb = HeroProxy.Inst.GetHeroPzKuangByColor(herodata.color);\n GlobalFunction.SetSpriteFrame(Sprite_skillzhukuang, skilldb);\n GlobalFunction.SetSpriteFrame(Sprite_skillzhu, skilldata.icon.replace(\".png\",\"\"));//.replace(\".png\",\"\")\n Sprite_skillzhu.grayscale = heroserverdata==undefined?true: false;\n Label_skillname.string = skilldata.lan_name;\n Label_skilldec.string =StringUtil.stringAyFormat(skilldata.lan_des,skilldata.ay_params);\n }\n \n //进度条信息\n this.lv.active= heroserverdata==undefined? false :true;\n this.Button_get.node.active = heroserverdata==undefined? false :true;\n this.Button_exp.node.active = heroserverdata==undefined? false :true;\n if(!this.lv.active)return;\n let ProgressBar_lv = this.ProgressBar_lv.getComponent(ProgressBar);\n let Label_lvnum = this.Label_lvnum.getComponent(Label);\n //Label_lvnum.string = \"100/300\";\n let Label_lv = this.Label_lv.getComponent(Label);\n Label_lv.string = GlobalFunction.ShowLV(heroserverdata.lv);\n\n this.currentHeroUpExp = HeroExpProxy.Inst.GetHeroExpByColor(heroserverdata.lv,herodata.color)\n let itemSeverData = ItemProxy.Inst.getServerItem(this.itemID);\n if(itemSeverData){\n this.currentHeroUpItemNum = itemSeverData.num;\n }else{\n this.currentHeroUpItemNum =0;\n }\n let exp_label = this.Label_exp.getComponent(Label);\n exp_label.string = this.currentHeroUpItemNum +\"/\"+this.currentHeroUpExp;\n if(this.currentHeroUpItemNum0){\n if(!this.e_ui_hero_up.active){\n this.e_ui_hero_up.active=true;\n }\n HeroProxy.Inst.SendC1202(itemSeverData.itemUID,this.currentHeroUpExp,heroserverdata.heroId);\n this.skeleck = this.e_ui_hero_up.getComponent(sp.Skeleton);\n this.skeleck.setAnimation(0, \"a_e_ui_hero_up\", false);\n // }\n }\n }else{\n this.unschedule(this.timeDayCallback);\n }\n }\n }\n this.schedule(this.timeDayCallback, 0.5);\n }\n private onTouchEnd(){\n if(this.currentHeroUpItemNum {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name) {\n case \"a_e_ui_hero_up\":\n this.e_ui_hero_up.active=false;\n break;\n default:\n break;\n }\n });\n }\n }\n }\n }\n\n bindClickSkillEvent(itemnode: Node, buff: Buff) {\n // itemnode.on('click', this.onClickButton, this, buff.buff_id+\"\");\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"OnclickSkillItem\";\n clickEventHandler.customEventData =buff.buff_id+\"\";\n //clickEventHandler.emit([itemnode, buff.buff_id]);\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n OnclickSkillItem(itemnode, buff_id) {\n let node :Node = itemnode.target;\n let buffdata = BuffPoxy.Inst.getBuffById(parseInt(buff_id));\n if(buffdata){\n let skillUiData = new SkillUiData();\n skillUiData.content = BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n skillUiData.node = node.parent;\n WindowManager.Instance().open(GameConst.winPath.SkillUI, skillUiData, true);\n }\n }\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n clearRes() {\n }\n}","/**\n * HeroTuJian config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class HeroTuJianProxy {\n private static _inst: HeroTuJianProxy;\n public static get Inst(): HeroTuJianProxy {\n if (HeroTuJianProxy._inst == null) {\n HeroTuJianProxy._inst = new HeroTuJianProxy();\n }\n return HeroTuJianProxy._inst;\n }\n @res_assign(\"HeroTuJian\")\n public HeroTuJianConfigList: HeroTuJian[];\n public InitHeroConfig() {\n\n if (!this.HeroTuJianConfigList) {\n this.HeroTuJianConfigList = [];\n }\n let HeroTuJianDataConfig = ConfigManager.GetInstance().getValue(\"HeroTuJian\")\n for (var key in HeroTuJianDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"HeroTuJian\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.HeroTuJianConfigList.push(item);\n }\n\n }\n }\n}\nexport class HeroTuJian {\n id: number; //英雄id\n lan_name :string;//图鉴名称\n kv_heroitem: Map; //英雄id,英雄等级\n buffid: number; //品质\n power: string; //对应战斗力\n}","import { _decorator, Component, Event, Node, Toggle, EventHandler } from 'cc';\nimport { c1100, c1101, c1102, c1103, c1104, p_hero } from \"../../../proto/proto\";\nconst { ccclass, property } = _decorator;\nimport { ScrollView } from 'cc';\nimport { instantiate } from 'cc';\nimport BasePanel from '../../../core/component/BasePanel';\nimport { ToggleContainer } from 'cc';\nimport { find } from 'cc';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { expType, Hero, HeroProxy, HeroScreenType, HeroType } from '../proxy/HeroProxy';\nimport { Sprite } from 'cc';\nimport { Label } from 'cc';\nimport { Button } from 'cc';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport { HeroCaoProxy } from '../proxy/HeroCaoProxy';\nimport { HeroTuJian, HeroTuJianProxy } from '../proxy/HeroTuJianProxy';\nimport { PassPoxy } from '../proxy/PassPoxy';\nimport { WordMapPoxy } from '../proxy/WordMapPoxy';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport Utils from '../../../core/utils/Utils';\nimport { Prefab } from 'cc';\nimport { Layers } from 'cc';\nimport { UITransform } from 'cc';\nimport { Vec3 } from 'cc';\nimport { v2 } from 'cc';\nimport { ItemProxy } from '../proxy/ItemProxy';\nimport { RichText } from 'cc';\nimport { BoxData } from '../common/Component';\nimport { dataUser } from '../../gameData/dataUser';\nimport { Color } from 'cc';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { GuideManager } from '../guilde/GuideManager';\n@ccclass(\"HeroUI\")\nexport default class HeroUI extends BasePanel {\n\n // heroScreenList: Hero[];\n heroList: Hero[];\n heroTuJianList: HeroTuJian[];\n itemID: number = 2005;\n currentlevel = 100;//当前解锁的关卡\n currentkey = 0;//当前所拥有的钥匙\n // 所有英雄列表\n @property(Node) Layout_heros: Node = null;\n heros: Node = null;\n itemHeroPrefabs: Node = null;\n\n Ceter: Node = null;\n //上阵英雄配置\n // @property(Node) Layout_heroup: Node = null;\n // heroup: Node = null;\n // heroupPrefabs: Node = null;\n @property(Node) ScrollView_tujian: Node = null;\n\n @property(Node) Label_zhanli: Node = null;//总战斗力\n @property(Node) Labe_att: Node = null;//攻击加成\n @property(Node) Labe_def: Node = null;//防御加成\n @property(Node) Labe_hp: Node = null;//生命加成\n @property(Node) Model1: Node = null;//Model1\n @property(Node) Model2: Node = null;//Model2\n @property(Node) Model3: Node = null;//Model3\n @property(Node) Model4: Node = null;//Model4\n @property(Node) Model5: Node = null;//Model5\n\n @property(Node) Panle_heros: Node = null;\n @property(Node) Panle_texing: Node = null;\n @property(Node) Pamle_tujian: Node = null;\n\n Toggle_heros: Node = null;\n Toggle_texing: Node = null;\n Toggle_jingtong: Node = null;\n Toggle_tujian: Node = null;\n PanleNodes: Node[] = null;\n ModelNodes: Node[] = null;\n ModelBooleans: boolean[] = null;\n //scroll组件scrolltujian\n @property(Node) Layou_tujian: Node = null;\n tujian: Node = null;\n itemTuJianPrefabs: Node = null;\n\n onBtnClicked(e: any, name: string) {\n switch (name) {\n case 'Button_back':\n this.close(true);\n break;\n case \"Toggle_heros\":\n this.showPanel(this.Toggle_heros, this.Panle_heros);\n GlobalFunction.OpenTitlePoup(this.node.name, this.Panle_heros.name);\n break;\n\n case \"Toggle_texing\":\n GlobalFunction.ShowBox5();\n // this.showPanel(this.Toggle_texing, this.Panle_texing);\n // GlobalFunction.OpenTitlePoup(this.node.name, this.Panle_texing.name);\n break;\n case \"Toggle_jingtong\":\n GlobalFunction.ShowBox5();\n // this.showPanel(this.Toggle_jingtong, this.Panle_texing);\n // GlobalFunction.OpenTitlePoup(this.node.name, this.Panle_texing.name);\n break;\n case \"Toggle_tujian\":\n GlobalFunction.ShowBox5();\n // this.showPanel(this.Toggle_tujian, this.Pamle_tujian);\n // GlobalFunction.OpenTitlePoup(this.node.name, this.Pamle_tujian.name);\n break;\n case 'Button_dectx':\n //详情按钮\n this.showHeroDec();\n break;\n\n case 'Button_txlock':\n //锁按钮\n break;\n\n case 'Button_clear':\n //洗练按钮\n break;\n\n case 'Button_allhero':\n WindowManager.Instance().open(GameConst.winPath.Herodec, null, true);\n break;\n\n case 'Button_screen':\n WindowManager.Instance().open(GameConst.winPath.HeroScreenUI, null, true);\n break;\n\n }\n }\n\n onHide(): void {\n this.PanleNodes = null;\n this.ModelNodes = null;\n this.ModelBooleans = null;\n }\n protected onLoad(): void {\n\n //let stringmsg= CommonMsgProxy.Inst.GetCommonMsgById(1001);\n // 获取所有武将信息\n // HeroProxy.Inst.SendC1100();\n // 获取上阵武将请求\n HeroProxy.Inst.SendC1102();\n // 获取全武将加成请求\n HeroProxy.Inst.SendC1103();\n }\n onLoadUpdate(data: any) {\n if (data == 1) {\n this.showHeroPanelInfo();//更新或者新增\n } else if (data == 2) {//上下陣刷新界面數據\n this.ShowShangZhenHero();\n this.showHeroPanelInfo();\n this.ShowTogerPower();\n } else if (data == 3) {\n this.ShowTogerPower();\n }\n }\n onShow(data: any) {\n this.InitModelNode();\n this.showTeXingPanelInfo();\n //this.showTuJianPanelInfo();\n }\n\n InitModelNode() {\n if (this.ModelNodes == undefined) {\n GlobalFunction.OpenTitlePoup(this.node.name, this.Panle_heros.name);\n this.ModelNodes = [];\n this.ModelNodes.push(this.Model1);\n this.ModelNodes.push(this.Model2);\n this.ModelNodes.push(this.Model3);\n this.ModelNodes.push(this.Model4);\n this.ModelNodes.push(this.Model5);\n this.ModelBooleans = [false, false, false, false, false];\n }\n if (this.PanleNodes == undefined) {\n this.PanleNodes = [];\n this.PanleNodes.push(this.Panle_heros);\n this.PanleNodes.push(this.Panle_texing);\n // this.PanleNodes.push(this.Toggle_jingtong);\n // this.PanleNodes.push(this.Pamle_tujian);\n }\n this.Panle_heros.active = true;// Panel_heros 初始化显示\n\n this.Ceter.active=false;\n\n //初始化HeroProxy.Inst.HeroScreenMaps 筛选Maps\n if (HeroProxy.Inst.HeroScreenMaps.size == 0) {\n for (let i = 0; i < 13; i++) {\n HeroProxy.Inst.HeroScreenMaps.set((i + 1), true);\n }\n }\n }\n\n ShowTogerPower() {\n\n //总战斗力以及战力加成\n let Herop_buff = HeroProxy.Inst.Herop_buff;\n if (Herop_buff != undefined) {\n this.Labe_att.getComponent(RichText).string =\"\" + GlobalFunction.GetMsg(20183) +\"\"+ \" \" + \"\" +GlobalFunction.ConvertExtremelyNumber(Herop_buff.atkRate) +\"\";\n this.Labe_def.getComponent(RichText).string = \"\" +GlobalFunction.GetMsg(20184) +\"\"+ \" \" + \"\" +GlobalFunction.ConvertExtremelyNumber(Herop_buff.defRate)+\"\";\n this.Labe_hp.getComponent(RichText).string = \"\" +GlobalFunction.GetMsg(20185) +\"\"+ \" \" + \"\" +GlobalFunction.ConvertExtremelyNumber(Herop_buff.hpRate)+\"\";\n }\n if (HeroProxy.Inst.power != undefined) {\n this.Label_zhanli.getComponent(Label).string = HeroProxy.Inst.power + \"\";\n } else {\n this.Label_zhanli.getComponent(Label).string = 0 + \"\";\n }\n }\n\n ShowShangZhenHero() {\n //展示上阵英雄 解锁\n // this.heroupPrefabs = this.heroup;\n // this.Layout_heroup.removeAllChildren();\n let heroCaoList = HeroCaoProxy.Inst.HeroCaoDataList;\n for (let i = 0; i < heroCaoList.length; ++i) {\n\n let heroup = this.Panle_heros.getChildByName(\"heroup\" + (i + 1));\n\n let heroCaoData = heroCaoList[i];\n let itemNodeChild = heroup.getChildByName(\"Button_heroup\" + (i + 1));\n let model = heroup.getChildByName(\"Model\" + (i + 1));\n model.active = true;\n let heroup_yes = itemNodeChild.getChildByName(\"yes\" + (i + 1));\n let Label_herouplvNode = heroup_yes.getChildByName(\"Label_herouplv\" + (i + 1));\n let heroup_no = itemNodeChild.getChildByName(\"no\" + (i + 1));\n let Label_map = heroup_no.getChildByName(\"Label_map\" + (i + 1)).getComponent(Label);\n let heroup_jiesuo = itemNodeChild.getChildByName(\"jiesuo\" + (i + 1));\n let jiesuolabel = heroup_jiesuo.getChildByName(\"Label_jiesuo\" + (i + 1)).getComponent(Label);\n heroup_yes.active = false;\n\n let p_hero_sz = HeroProxy.Inst.szHeros.find(item => item.pos == i + 1);\n if (p_hero_sz) {\n heroup_yes.active = true;\n heroup_no.active = false;\n heroup_jiesuo.active = false;\n\n let p_hero = HeroProxy.Inst.GetSeverHeroByUId(p_hero_sz.heroId);\n if (p_hero != null) {\n this.ModelBooleans[i] = true;\n this.bindClickXiaZhenEvent(itemNodeChild, p_hero.localId);\n let herodata = HeroProxy.Inst.GetHeroDataByID(p_hero.localId);\n if (herodata) {\n // heropzNode.active = true;\n Label_herouplvNode.active = true;\n // let heropzSprite = heropzNode.getComponent(Sprite);\n let Label_herouplv = Label_herouplvNode.getComponent(Label);\n let heroicon = HeroProxy.Inst.GetHeroDjByColor(herodata.color);\n // GlobalFunction.SetSpriteFrame(heropzSprite, heroicon);\n Label_herouplv.string = GlobalFunction.ShowLV(p_hero.lv);\n let vecs3 = new Vec3(1, 1);\n let vecps3 = new Vec3(-2, -60, 0);\n if (herodata.id == 1004) {\n vecs3 = new Vec3(0.25, 0.25);\n vecps3 = new Vec3(-2, -68, 0);\n }\n Utils.loadResUIOnly(\"spine/hero/\" + herodata.heroModel, \"resources\", Prefab, (err: Error, res: Prefab) => {\n if (!err) {\n if (this.ModelNodes[i].children.length > 0) {\n return;\n }\n res.addRef();\n let heronode: Node = instantiate(res)\n if (heronode) {\n heronode.layer = this.node.layer;\n heronode.position = vecps3;\n heronode.setParent(this.ModelNodes[i]);\n heronode.scale = vecs3;\n }\n }\n });\n }\n } else {\n // heropzNode.active = false;\n Label_herouplvNode.active = false;\n this.ModelBooleans[i] = false;\n this.ModelNodes[i].removeAllChildren();\n }\n }\n if (!heroup_yes.active) {\n let levelid = heroCaoData.unlocklevel;//解锁关卡 \n heroup_no.active = (dataUser.Instance().passId + 1) <= heroCaoData.unlocklevel;\n if (heroup_no.active) {\n let passdata = PassPoxy.Inst.getPassById(levelid);\n if (passdata != null) {\n let worldmapdata = WordMapPoxy.Inst.getWordMapById(passdata.wordMapID);\n if (worldmapdata != null) {\n Label_map.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20065), worldmapdata.lan_classify, worldmapdata.typeId, passdata.typeId);\n }\n }\n } else {\n heroup_jiesuo.active = !heroup_no.active;\n let severItem = ItemProxy.Inst.getServerItem(this.itemID);\n if (severItem) {\n this.currentkey = severItem.num;\n }\n jiesuolabel.string = this.currentkey + \"/\" + heroCaoData.needkey;\n if (this.currentkey < heroCaoData.needkey) {\n jiesuolabel.color = new Color(255, 63, 63, 255);\n } else {\n jiesuolabel.color = new Color(255, 255, 255, 255);\n this.bindClickJieSuoEvent(itemNodeChild, heroCaoData.id);\n }\n\n }\n }\n\n\n }\n\n // for (let i = 0; i < heroCaoList.length; ++i) {\n // // 克隆并将节点添加到content中\n // let itemNode = instantiate(this.heroupPrefabs);\n // if (itemNode) {\n // itemNode.parent = this.Layout_heroup;\n // let heroCaoData = heroCaoList[i];\n // let itemNodeChild = itemNode.getChildByName(\"Button_heroup\");\n\n // let heroup_yes = itemNodeChild.getChildByName(\"yes\");\n // let heroup_no = itemNodeChild.getChildByName(\"no\");\n // let heroup_jiesuo = itemNodeChild.getChildByName(\"jiesuo\");\n // let Label_map = heroup_no.getChildByName(\"Label_map\").getComponent(Label);\n\n // heroup_yes.active = false;\n // // heroup_no.active = true;\n // // heroup_jiesuo.active = false;\n // let p_hero_sz = HeroProxy.Inst.szHeros.find(item => item.pos == i + 1);\n // if (p_hero_sz) {\n // heroup_yes.active = true;\n // heroup_no.active = false;\n // heroup_jiesuo.active = false;\n // let heropzNode = heroup_yes.getChildByName(\"Sprite_herouppinzhi\");\n // let Label_herouplvNode = heroup_yes.getChildByName(\"Label_herouplv\");\n // let p_hero = HeroProxy.Inst.GetSeverHeroByUId(p_hero_sz.heroId);\n // if (p_hero != null) {\n // this.ModelBooleans[i] = true;\n // this.bindClickXiaZhenEvent(itemNodeChild, p_hero.localId);\n // let herodata = HeroProxy.Inst.GetHeroDataByID(p_hero.localId);\n // if (herodata) {\n // heropzNode.active = true;\n // Label_herouplvNode.active = true;\n // let heropzSprite = heropzNode.getComponent(Sprite);\n // let Label_herouplv = Label_herouplvNode.getComponent(Label);\n // let heroicon = HeroProxy.Inst.GetHeroDjByColor(herodata.color);\n // GlobalFunction.SetSpriteFrame(heropzSprite, heroicon);\n // Label_herouplv.string = GlobalFunction.ShowLV(p_hero.lv);\n // let vecs3 = new Vec3(0.55, 0.55);\n // if (herodata.id == 1004) {\n // vecs3 = new Vec3(0.15, 0.15);\n // }\n // Utils.loadResUIOnly(\"spine/hero/\" + herodata.heroModel, \"resources\", Prefab, (err: Error, res: Prefab) => {\n // if (!err) {\n // if (this.ModelNodes[i].children.length > 0) {\n // return;\n // }\n // res.addRef();\n // let heronode: Node = instantiate(res)\n // if (heronode) {\n // heronode.layer = this.node.layer;\n // heronode.position = new Vec3(-2, -82, 0);\n // heronode.setParent(this.ModelNodes[i]);\n // heronode.scale = vecs3;\n // }\n // }\n // });\n // }\n\n // } else {\n\n // heropzNode.active = false;\n // Label_herouplvNode.active = false;\n // this.ModelBooleans[i] = false;\n // this.ModelNodes[i].removeAllChildren();\n // }\n // }\n\n // if (!heroup_yes.active) {\n // let levelid = heroCaoData.unlocklevel;//解锁关卡 \n // heroup_no.active = (dataUser.Instance().passId+1) <= heroCaoData.unlocklevel;\n // if (heroup_no.active) {\n // let passdata = PassPoxy.Inst.getPassById(levelid);\n // if (passdata != null) {\n // let worldmapdata = WordMapPoxy.Inst.getWordMapById(passdata.wordMapID);\n // if (worldmapdata != null) {\n // Label_map.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20065), worldmapdata.lan_classify, worldmapdata.typeId, passdata.typeId);\n // }\n // }\n // } else {\n // heroup_jiesuo.active = !heroup_no.active;\n // let severItem = ItemProxy.Inst.getServerItem(this.itemID);\n // if (severItem) {\n // this.currentkey = severItem.num;\n // }\n // let jiesuolabel = heroup_jiesuo.getChildByName(\"Label_jiesuo\").getComponent(Label);\n // jiesuolabel.string = this.currentkey + \"/\" + heroCaoData.needkey;\n // if(this.currentkeyb.color-a.color);\n }\n\n private InItHeroList() {\n\n this.SetHeroListValue();//设置herolist为所有武将列表\n //判断是否拥有或者未拥有\n let value_yy = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.yongyou);\n if (value_yy) {\n let value_wyy = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.weiyongyou);\n if (!value_wyy) {\n if (HeroProxy.Inst.HeroDataServerMaps != undefined) {\n if (this.heroList.length > 0) {\n this.heroList.length = 0;\n }\n for (const [key, value] of Array.from(HeroProxy.Inst.HeroDataServerMaps.entries())) {\n let data = HeroProxy.Inst.GetHeroDataByID(key);\n if (data) this.heroList.push(data);\n }\n }\n }\n // else{\n // this.SetHeroListValue();\n // }\n } else {\n // this.SetHeroListValue();\n if (HeroProxy.Inst.HeroDataServerMaps != undefined) {\n for (const [key, value] of Array.from(HeroProxy.Inst.HeroDataServerMaps.entries())) {\n let data = HeroProxy.Inst.GetHeroDataByID(key);\n if (data) {\n this.heroList = this.heroList.filter(item => item.id !== data.id);\n }\n }\n }\n }\n\n //判断是否根据品质选择\n let value_c = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.pinzhic);\n if (!value_c) {\n this.heroList = this.heroList.filter(item => item.color !== expType.Color1);\n }\n let value_a = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.pinzhia);\n if (!value_a) {\n this.heroList = this.heroList.filter(item => item.color !== expType.Color2);\n }\n let value_r = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.pinzhir);\n if (!value_r) {\n this.heroList = this.heroList.filter(item => item.color !== expType.Color3);\n }\n let value_s = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.pinzhis);\n if (!value_s) {\n this.heroList = this.heroList.filter(item => item.color !== expType.Color4);\n }\n let value_ss = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.pinzhiss);\n if (!value_ss) {\n this.heroList = this.heroList.filter(item => item.color !== expType.Color5);\n }\n let value_sss = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.pinzhisss);\n if (!value_sss) {\n this.heroList = this.heroList.filter(item => item.color !== expType.Color6);\n }\n //判断是否根据类型选择\n let value_zs = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.zhanshi);\n if (!value_zs) {\n this.heroList = this.heroList.filter(item => item.type !== HeroType.ZhanShi);\n }\n let value_fs = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.fashi);\n if (!value_fs) {\n this.heroList = this.heroList.filter(item => item.type !== HeroType.FaShi);\n }\n let value_shs = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.sheshou);\n if (!value_shs) {\n this.heroList = this.heroList.filter(item => item.type !== HeroType.SheShou);\n }\n let value_gc = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.gongcheng);\n if (!value_gc) {\n this.heroList = this.heroList.filter(item => item.type !== HeroType.GongCheng);\n }\n let value_zy = HeroProxy.Inst.HeroScreenMaps.get(HeroScreenType.zhiyu);\n if (!value_zy) {\n this.heroList = this.heroList.filter(item => item.type !== HeroType.ZhiYu);\n }\n }\n\n\n private SetHeroListValue() {\n if (this.heroList == null) {\n this.heroList = [];\n }\n this.heroList.length = 0;\n for (let i = 0; i < HeroProxy.Inst.HeroDataConfigList.length; i++) {\n this.heroList.push(HeroProxy.Inst.HeroDataConfigList[i]);\n }\n }\n bindClickJieSuoEvent(itemnode: Node, index: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickJieSuoHero\";\n clickEventHandler.customEventData = index + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickJieSuoHero(itemnode, index) {\n HeroProxy.Inst.SendC1104(index);//解鎖\n }\n\n bindClickXiaZhenEvent(itemnode: Node, heroid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickXiaZhenHero\";\n clickEventHandler.customEventData = heroid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickXiaZhenHero(itemnode, heroid) {\n //HeroProxy.Inst.SendC1101(index);//下阵\n WindowManager.Instance().open(GameConst.winPath.HeroTipsUI, heroid, true);\n }\n\n /*** texingPanel */\n showTeXingPanelInfo() {\n }\n\n /*** TuJianPanel */\n showTuJianPanelInfo() {\n this.heroTuJianList = HeroTuJianProxy.Inst.HeroTuJianConfigList;\n this.itemTuJianPrefabs = this.tujian;\n this.Layou_tujian.removeAllChildren();\n\n for (let i = 0; i < this.heroTuJianList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.itemTuJianPrefabs);\n if (itemNode) {\n itemNode.parent = this.Layou_tujian;\n let heroTujianData = this.heroTuJianList[i];\n let Layout_item = itemNode.getChildByName(\"Layout_item\");\n let item = Layout_item.getChildByName(\"item\");\n let itemprefab = item;\n Layout_item.removeAllChildren();\n let Button_jihuonot = itemNode.getChildByName(\"Button_jihuonot\");\n let Button_jihuo = itemNode.getChildByName(\"Button_jihuo\");\n let Label_name = itemNode.getChildByName(\"Label_name\").getComponent(Label);\n Label_name.string = heroTujianData.lan_name;\n this.bindClickJiHuoEvent(Button_jihuo, heroTujianData);\n this.bindClickJiHuoNotEvent(Button_jihuonot, heroTujianData);\n for (const [key, value] of Array.from(heroTujianData.kv_heroitem.entries())) {\n let itemChildNode = instantiate(itemprefab);\n if (itemChildNode) {\n itemChildNode.parent = Layout_item;\n let herodata = HeroProxy.Inst.GetHeroDataByID(parseInt(key));\n let heropzdb = HeroProxy.Inst.GetHeroPzKuangByColor(herodata.color);\n let Sprite_itemkuang = itemChildNode.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let Sprite_item = itemChildNode.getChildByName(\"Sprite_item\").getComponent(Sprite);\n let Label_itemlv = itemChildNode.getChildByName(\"Label_itemlv\").getComponent(Label);\n Label_itemlv.string = GlobalFunction.ShowLV(Number(value));\n // this.bindHeroClickTJEvent(itemChildNode,herodata);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, heropzdb);\n GlobalFunction.SetSpriteFrame(Sprite_item, herodata.heroIcon);\n }\n }\n }\n }\n\n this.Layou_tujian.position = new Vec3(this.Layou_tujian.position.x, -(this.Layou_tujian.position.y));\n }\n\n\n showHeroDec() {\n\n var data = new BoxData\n {\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle2);\n }\n showPanel(tog: Node, node: Node) {\n\n let toggle = tog.getComponent(Toggle);\n if (!toggle) return;\n const isCheck = toggle.isChecked;\n if (!isCheck) toggle.isChecked = !isCheck;\n for (let i = 0; i < this.PanleNodes.length; ++i) {\n if (node.name == this.PanleNodes[i].name) {\n if (!this.PanleNodes[i].active) {\n this.PanleNodes[i].active = true;\n }\n } else {\n this.PanleNodes[i].active = false;\n }\n }\n }\n\n /**點擊解鎖英雄頭像 */\n bindClickEvent(itemnode: Node, herodata: Hero) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickHero\";\n clickEventHandler.customEventData = herodata.id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n\n if (herodata.id == 1001 && GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_4004, [4004, itemnode])\n }\n }\n\n CallOnclickHero(itemnode, heroid) {\n if (Number(heroid) == 1001) {\n EventManager.Inst.event(EventType.guideEvent_4004, 4004);\n }\n // let heroserver = HeroProxy.Inst.GetSeverHeroById(heroid)\n // if(!heroserver)return;\n WindowManager.Instance().open(GameConst.winPath.HeroTipsUI, heroid, true);\n }\n\n\n /**点击未解锁英雄头像 */\n bindClickLockHeroEvent(itemnode: Node, herodata: Hero) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickHero\";\n clickEventHandler.customEventData = herodata.id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickLockHero(itemnode, heroid) {\n var data = new BoxData\n {\n data.heroid = parseInt(heroid);\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle8);\n\n }\n\n\n bindClickJiHuoEvent(itemnode: Node, herodata: HeroTuJian) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickTJJHHero\";\n clickEventHandler.customEventData = herodata.buffid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickTJJHHero(itemnode, heroid) {\n WindowManager.Instance().open(GameConst.winPath.HeroTipsUI, heroid, true);\n }\n\n\n\n //图鉴激活按钮\n bindClickJiHuoNotEvent(itemnode: Node, herodata: HeroTuJian) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickTJJHNTHero\";\n clickEventHandler.customEventData = herodata.buffid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickTJJHNTHero(itemnode, heroid) {\n WindowManager.Instance().open(GameConst.winPath.HeroTipsUI, heroid, true);\n }\n}","import { _decorator } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { AllRoleTypeEnum, AttType, HeroAiType, RoleTypeEnum } from \"../enum/Enum\";\r\nimport Utils from \"../core/utils/Utils\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { CharactorDirection } from \"../map/charactor/Charactor\";\r\nimport { sp } from \"cc\";\r\nimport { Color } from \"cc\";\r\nimport { ICharactorClip } from \"../map/charactor/ICharactorClip\";\r\nimport { BaseRole, GebolinMapType } from \"./Role\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { EffectSingleCase, IEffectParams } from \"../skill/EffectSingleCase\";\r\nimport { Vec3 } from \"cc\";\r\nimport { GebolInAttTypeEnum } from \"./GebolinView\";\r\nimport { MonsterPoxy } from \"../modules/game/proxy/MonsterPoxy\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { BossAiComp } from \"./BossAiComp\";\r\nimport { HeroModle } from \"./HeroModle\";\r\nimport { SkillCasting } from \"../skill/SkillCasting\";\r\nimport { HeroAiComp } from \"./HeroAiComp\";\r\nimport { HeroProxy } from \"../modules/game/proxy/HeroProxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { Model, ModelPoxy } from \"../modules/game/proxy/ModelPoxy\";\r\nimport { Sprite } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { tween } from \"cc\";\r\nimport { Timer } from \"../core/utils/Timer\";\r\nimport { MuBeiItemComp } from \"../item/MuBeiItemComp\";\r\nimport { instantiate } from \"cc\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nimport { MainTitle, MainTitlePoxy } from \"../modules/game/proxy/MainTitlePoxy\";\r\nimport { SkillProxy, Skills } from \"../modules/game/proxy/SkillProxy\";\r\nimport { GlobalFunction } from \"../modules/game/common/GlobalFunction\";\r\nimport { SkillEffect } from \"../modules/game/proxy/SkillEffectProxy\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { p_bat_hero } from \"../proto/proto\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('HeroView')\r\nexport class HeroView extends BaseRole implements ICharactorClip{\r\n @property(Node)\r\n scaleNodes : Node = null;\r\n public spine!: sp.Skeleton;\r\n heroAiType:HeroAiType;\r\n private heroAi:HeroAiComp;\r\n @property(Node)\r\n wuqi:Node = null;\r\n @property(Sprite)\r\n wuqiSprite : Sprite = null;\r\n @property(ProgressBar)\r\n ProgressBar_skilltime : ProgressBar = null;\r\n @property(Label)\r\n Label_skilltime : Label = null;\r\n @property(Node)\r\n fangxiangNode:Node = null;\r\n @property(Node)\r\n Panle_heroskill : Node = null;\r\n @property(Sprite)\r\n skillSprite:Sprite = null;\r\n private _fightPoint: Vec3;\r\n public get fightPoint(): Vec3 {\r\n return this._fightPoint;\r\n }\r\n public set fightPoint(value: Vec3) {\r\n this._fightPoint = value;\r\n }\r\n\r\n private _pId: string = \"0\";\r\n public get pId(): string {\r\n return this._pId;\r\n }\r\n public set pId(value: string) {\r\n this._pId = value;\r\n }\r\n private cdSkill:Skill ;\r\n\r\n private _p_bat_hero: p_bat_hero = {};\r\n public get p_bat_hero(): p_bat_hero {\r\n return this._p_bat_hero;\r\n }\r\n public set p_bat_hero(value: p_bat_hero) {\r\n this._p_bat_hero = value;\r\n }\r\n onLoad(){\r\n super.onLoad()\r\n }\r\n init(mapType:GebolinMapType = GebolinMapType.PveBoss){\r\n this.gebolinMapType = mapType;\r\n super.init(mapType);\r\n this.heroAiType = HeroAiType.ToFight;\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.addComponent(HeroModle);\r\n this.modle = this.getComponent(HeroModle);\r\n this.modle.init();\r\n this.modle.role = this;\r\n this.friendType = AllRoleTypeEnum.Enemy;\r\n this.RoleType = RoleTypeEnum.Hero;\r\n this.roleId = Utils.AddId();\r\n this.roleName = this.roleId;\r\n if(mapType == GebolinMapType.PveBoss){\r\n this.Panle_heroskill.active = true;\r\n this.changeTitle();\r\n }else if(mapType == GebolinMapType.PveCopy){\r\n this.Panle_heroskill.active = false;\r\n }\r\n }\r\n setHeroId(value:number){\r\n (this.modle as HeroModle).hero = HeroProxy.Inst.GetHeroDataByID(value);\r\n this.showRole((this.modle as HeroModle).hero.heroModel , ()=>{\r\n setTimeout(() => {\r\n this.heroAi = new HeroAiComp(this);\r\n }, 200);\r\n })\r\n this.modle.addRoleSkill(value);\r\n this.modle.addAttributes(\"\");\r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n this.initSkillIcon();\r\n }\r\n let hero:p_bat_hero = null;\r\n let fightList:Array = this.gebolinMapType == GebolinMapType.PveBoss ? GameModleComp.getInstance().heroFight : GameModleComp.getInstance().copyHeroFight;\r\n for(let i = 0 ; i < fightList.length ; i++){\r\n if(fightList[i].heroUID == this.pId){\r\n hero = fightList[i];\r\n }\r\n }\r\n if(!hero){\r\n hero = {};\r\n hero.newNum = hero.newNum ? hero.newNum++ : 1;\r\n }\r\n }\r\n private initSkillIcon(){\r\n let skillId:number = Number((this.modle as HeroModle).hero.idSkill1);\r\n let skill:Skills = SkillProxy.Inst.GetSkillDataByID(skillId);\r\n GlobalFunction.SetSpriteFrame(this.skillSprite , skill.icon);\r\n\r\n }\r\n private changeTitle(){\r\n let maintitle:MainTitle = MainTitlePoxy.Inst.getTitleById(3);\r\n if(maintitle.ay_hp && maintitle.ay_hp.length){\r\n let pos:Vec3 = this.hpPro.node.position;\r\n let off:Vec3 = new Vec3(Number(maintitle.ay_hp[0]) , Number(maintitle.ay_hp[1]) , 1);\r\n this.hpPro.node.position = new Vec3(pos.x + off.x , pos.y + off.y , 1);\r\n }\r\n if(maintitle.ay_heroskill && maintitle.ay_heroskill.length){\r\n let pos:Vec3 = this.Panle_heroskill.position;\r\n let off:Vec3 = new Vec3(Number(maintitle.ay_heroskill[0]) , Number(maintitle.ay_heroskill[1]) , 1);\r\n this.Panle_heroskill.position = new Vec3(pos.x + off.x , pos.y + off.y , 1);\r\n }\r\n }\r\n showRole(str:string , callFun:Function){\r\n let path: string = \"spineRes/characters/\"+str+\"/\" + str;\r\n let sktd = ResHelper.get(path, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n callFun();\r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n callFun();\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n setDirection(value: CharactorDirection): void {\r\n if (value > 4) {\r\n this.skeleton.getComponent(sp.Skeleton)!.node.setScale(-1, 1, 1);\r\n }\r\n else {\r\n this.skeleton.getComponent(sp.Skeleton)!.node.setScale(-1, 1, 1);\r\n }\r\n let v3:Vec3 = new Vec3(1 , 1 , 1);\r\n let ids:number = 0;\r\n ids = (this.modle as HeroModle).hero.id \r\n let model:Model = ModelPoxy.Inst.getModelById(ids);\r\n if(model && model.ay_fight && model.ay_fight.length==2){\r\n v3.x = Number(model.ay_fight[0]);\r\n v3.y = Number(model.ay_fight[1]);\r\n }\r\n this.scaleNodes!.setScale(v3)\r\n }\r\n setAlpha(value: number): void {\r\n var color: Color = this.skeleton.getComponent(sp.Skeleton).color;\r\n color.a = 255 * (value / 1);\r\n this.skeleton.getComponent(sp.Skeleton).color = color;\r\n }\r\n async showHit(skill:Skill){\r\n if(this.isDie){\r\n return;\r\n }\r\n this.goblin_Hit();\r\n let v3:Vec3 = this.node.position;\r\n let newPoint:Vec3 = new Vec3(1,1,0);\r\n newPoint.x = Math.random()*100 > 50 ? v3.x - Math.random()*100 : v3.x + Math.random()*100;\r\n newPoint.y = v3.y + Math.random()*100;\r\n let data:IEffectParams = {\r\n pos:newPoint,\r\n isPlayFinishedRelease:true\r\n }\r\n await EffectSingleCase.instance.loadAndShow(skill.SkillModel.ballisticHitRes, GameEntry.Inst.mapView.nowScene.EffectLayer,data);\r\n }\r\n /**\r\n * 攻击目标动作\r\n * @param target 攻击\r\n */\r\n attack(sc:SkillCasting ,target: BaseRole | Vec3, skill: Skill) {\r\n if(this.isDie){\r\n return;\r\n }\r\n this.isAttackOver = false;\r\n // Logger.logView(\"请求播放攻击动作\");\r\n let tempX = target instanceof BaseRole ? this.node.position.x - target.node.position.x : this.node.position.x - target.x;\r\n let tempY = target instanceof BaseRole ? this.node.position.y - target.node.position.y : this.node.position.y - target.y;\r\n if(tempX > 0){\r\n this.fangxiangNode.scale = new Vec3(-1 , 1 ,1)\r\n this.fangxiang = 1;\r\n }else{\r\n this.fangxiangNode.scale = new Vec3(1 , 1 ,1)\r\n this.fangxiang = 0;\r\n }\r\n this.goblin_attack(sc , target,skill);\r\n }\r\n dead(){\r\n if(this.isDie){\r\n return;\r\n }\r\n let hero:p_bat_hero = null;\r\n let fightList:Array = this.gebolinMapType == GebolinMapType.PveBoss ? GameModleComp.getInstance().heroFight : GameModleComp.getInstance().copyHeroFight;\r\n for(let i = 0 ; i < fightList.length ; i++){\r\n if(fightList[i].heroUID == this.pId){\r\n hero = fightList[i];\r\n }\r\n }\r\n if(!hero){\r\n hero = {};\r\n hero.deadNum = hero.deadNum ? hero.deadNum++ : 1;\r\n }\r\n this.goblin_dead();\r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n let isJinzhan:boolean = false;\r\n if((this.modle as HeroModle).hero.bulletmodel == \"\" || (this.modle as HeroModle).hero.bulletmodel == null){\r\n isJinzhan = true;\r\n }else{\r\n isJinzhan = false;\r\n }\r\n let mubei:MuBeiItemComp = instantiate(GameEntry.Inst.mapView.nowScene.mubei).getComponent(MuBeiItemComp);\r\n mubei.node.position = MapRoadUtils.AStarToPoint(this.fightPoint);\r\n mubei.init(GameModleComp.getInstance().fuhuoTime , (this.modle as HeroModle).hero.id , isJinzhan , this.fightPoint);\r\n GameEntry.Inst.mapView.nowScene.footEffNode.addChild(mubei.node);\r\n GameModleComp.getInstance().fuhuoPreArr.push(mubei);\r\n }else if(this.gebolinMapType == GebolinMapType.PveCopy){\r\n EventManager.Inst.event(EventType.COPY_HERO_DEAD);\r\n }\r\n }\r\n\r\n huishouPoint(){\r\n if((this.modle as HeroModle).hero.bulletmodel == \"\" || (this.modle as HeroModle).hero.bulletmodel == null){\r\n GameModleComp.getInstance().heroJinzhanPointArr.push(this.fightPoint);\r\n }else{\r\n GameModleComp.getInstance().heroYuanchengPointArr.push(this.fightPoint);\r\n }\r\n }\r\n\r\n changeHp(value){\r\n if(this.isDie){\r\n return;\r\n }\r\n this.modle.attributes.setArr(AttType.hpValue , value);\r\n let max:number=this.modle.attributes.get(AttType.HpMax).value;\r\n let now:number=this.modle.attributes.get(AttType.hpValue).value;\r\n if(now >= max){\r\n now = max;\r\n }\r\n let pro:number = now / max;\r\n if(pro >= 1){\r\n pro = 1;\r\n }\r\n if(pro <= 0){\r\n pro = 0;\r\n }\r\n this.hpPro.progress = pro;\r\n if(pro == 0){\r\n this.dead();\r\n }\r\n // Logger.logView(\"hero受击==>\"+value);\r\n }\r\n showCd(time:number , skill:Skill){\r\n this.cdSkill = skill;\r\n this.ProgressBar_skilltime.progress = 1\r\n tween(this.ProgressBar_skilltime).to(time , {progress:0}).call(()=>{\r\n if(this.ProgressBar_skilltime){\r\n this.ProgressBar_skilltime.progress = 1;\r\n }\r\n }).start();\r\n }\r\n update(dt){\r\n super.update(dt);\r\n if(this.heroAi){\r\n this.heroAi.update(dt);\r\n }\r\n if(this.skillIn1){\r\n this.skillIn1.update(dt);\r\n }\r\n if(this.skillIn2){\r\n this.skillIn2.update(dt);\r\n }\r\n if(this.cdSkill){\r\n if(this.cdSkill.skillInterval){\r\n let time:number = this.cdSkill.SkillModel.table.skillcd - this.cdSkill.skillInterval._timerDuration.elapsedTime;\r\n this.Label_skilltime.string = Math.ceil(time)+\"\";\r\n }\r\n }\r\n }\r\n /**效果击退*/\r\n showJiTui(skillEff:SkillEffect){\r\n let toY1:number = this.node.position.y + 5;\r\n let toY2:number = this.node.position.y;\r\n let off1:number = this.fangxiang ? this.node.position.x + Number(skillEff.value)*20 : this.node.position.x - Number(skillEff.value)*20;\r\n let off:number = this.fangxiang ? this.node.position.x + Number(skillEff.value)*40 : this.node.position.x - Number(skillEff.value)*40;\r\n tween(this.node).to(0.3,{position:new Vec3(off1 , toY1 , 1)}).call(()=>{\r\n tween(this.node).to(0.3,{position:new Vec3(off , toY2 , 1)}).call(()=>{\r\n if(!this.isDie){\r\n this.charactor.pos = this.node.position;\r\n let v3:Vec3 = MapRoadUtils.AStarToPoint(this.fightPoint);\r\n // this.heroAiType = HeroAiType.ToMove;\r\n GameEntry.Inst.mapView.nowScene.movePlayer(this , v3.x , v3.y, 1 , ()=>{\r\n // this.heroAiType = HeroAiType.Fight;\r\n this.isAttackOver = true;\r\n })\r\n }\r\n }).start();\r\n }).start();\r\n\r\n }\r\n desTory(){\r\n this.skill = null;\r\n let id:number = (this.modle as HeroModle).hero.id;\r\n if(GameModleComp.getInstance().isInCopy){\r\n if(GameEntry.Inst.mapView.copyheroMap.get(id)){\r\n GameEntry.Inst.mapView.copyheroMap.delete(id);\r\n }\r\n }else{\r\n if(GameEntry.Inst.mapView.heroMap.get(id)){\r\n GameEntry.Inst.mapView.heroMap.delete(id);\r\n }\r\n }\r\n super.desTory();\r\n }\r\n}","import { _decorator, Component as CC_Compnent, EffectAsset, Enum, Vec2, v2, Sprite, Material, UITransform, tween, warn } from 'cc';\r\nconst { ccclass, property, requireComponent, executeInEditMode, disallowMultiple, executionOrder } = _decorator;\r\nimport { DEV, EDITOR } from \"cc/env\";\r\n\r\nimport EditorAsset from \"../misc/EditorAsset\";\r\nimport { Tween } from 'cc';\r\n/** 镂空形状 */\r\nexport enum HollowOutShape {\r\n /** 矩形 */\r\n Rect = 1,\r\n /** 圆形 */\r\n Circle\r\n}\r\n\r\n/**\r\n * [Shader] 挖孔组件,该组件需要对应的 Effect 才能正常使用!\r\n * @author 陈皮皮 (ifaswind)\r\n * @version 20210429\r\n * @see HollowOut.ts https://gitee.com/ifaswind/eazax-ccc/blob/master/components/effects/HollowOut.ts\r\n * @see eazax-hollowout.effect https://gitee.com/ifaswind/eazax-ccc/blob/master/resources/effects/eazax-hollowout.effect\r\n */\r\n\r\n\r\n@ccclass('HollowOut')\r\n@requireComponent(Sprite)\r\n@executeInEditMode\r\n@disallowMultiple\r\n@executionOrder(-10)\r\nexport default class HollowOut extends CC_Compnent {\r\n @property\r\n protected _effect: EffectAsset | null = null;\r\n\r\n @property({ type: EffectAsset, tooltip: DEV && 'Effect 资源', readonly: true })\r\n public get effect() { return this._effect; }\r\n public set effect(value: EffectAsset) {\r\n this._effect = value; this.init();\r\n }\r\n\r\n @property\r\n protected _shape: HollowOutShape = HollowOutShape.Rect;\r\n @property({ type: Enum(HollowOutShape), tooltip: DEV && '镂空形状' })\r\n public get shape() { return this._shape; }\r\n public set shape(value: HollowOutShape) {\r\n this._shape = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _center: Vec2 = v2();\r\n @property({ tooltip: DEV && '中心坐标' })\r\n public get center() { return this._center; }\r\n public set center(value: Vec2) {\r\n this._center = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _width: number = 300;\r\n @property({ tooltip: DEV && '宽', visible() { return this._shape === HollowOutShape.Rect; } })\r\n public get width() { return this._width; }\r\n public set width(value: number) {\r\n this._width = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _height: number = 300;\r\n @property({ tooltip: DEV && '高', visible() { return this._shape === HollowOutShape.Rect; } })\r\n public get height() { return this._height; }\r\n public set height(value: number) {\r\n this._height = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _round: number = 1;\r\n @property({ tooltip: DEV && '圆角半径', visible() { return this._shape === HollowOutShape.Rect; } })\r\n public get round() { return this._round; }\r\n public set round(value: number) {\r\n this._round = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _radius: number = 200;\r\n @property({ tooltip: DEV && '半径', visible() { return this._shape === HollowOutShape.Circle; } })\r\n public get radius() { return this._radius; }\r\n public set radius(value: number) {\r\n this._radius = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _feather: number = 0.5;\r\n @property({ tooltip: DEV && '边缘虚化宽度', visible() { return this._shape === HollowOutShape.Circle || this.round > 0; } })\r\n public get feather() { return this._feather; }\r\n public set feather(value: number) {\r\n this._feather = value;\r\n this.updateProperties();\r\n }\r\n\r\n set active(v: boolean) {\r\n this.node.active = v;\r\n }\r\n\r\n protected sprite: Sprite | null = null;\r\n protected material: Material | null = null;\r\n protected tweenRes: () => void = null;\r\n protected onLoad() {\r\n this.init();\r\n }\r\n\r\n public resetInEditor() {\r\n this.init();\r\n }\r\n\r\n /**\r\n * 初始化组件\r\n */\r\n protected async init() {\r\n /**\r\n * 编辑器环境下自动绑定 Effect 资源\r\n * 依赖于 EditorAsset 模块,没有该模块请将此代码块以及顶部导入语句去除\r\n * @see EditorAsset.ts https://gitee.com/ifaswind/eazax-ccc/blob/master/misc/EditorAsset.ts\r\n */\r\n if (EDITOR && !this._effect) {\r\n await new Promise(res => {\r\n const path = 'shaders/eazax-hollowout.effect';\r\n EditorAsset.load(path, 'effect', (err: Error, result: EffectAsset) => {\r\n if (err) {\r\n warn(`[${this['__proto__']['__classname__']}]`, '请手动指定组件的 Effect 资源!');\r\n res();\r\n return;\r\n }\r\n this._effect = result;\r\n res();\r\n });\r\n });\r\n }\r\n if (!this._effect) return;\r\n\r\n // 使用自定义 Effect 需禁用纹理的 packable 属性(因为动态合图之后无法正确获取纹理 UV 坐标)\r\n // 详情请看:https://docs.cocos.com/creator/manual/zh/asset-workflow/sprite.html#packable\r\n const sprite = this.sprite = this.node.getComponent(Sprite);\r\n // sprite.spriteFrame && (sprite.spriteFrame.getTexture().packable = false);\r\n // 生成并应用材质\r\n this.material = new Material();\r\n this.material.initialize({effectAsset: this._effect});\r\n sprite.setMaterialInstance(this.material, 0);\r\n // 更新材质属性\r\n this.updateProperties();\r\n }\r\n\r\n /**\r\n * 更新材质属性\r\n */\r\n protected updateProperties() {\r\n switch (this._shape) {\r\n case HollowOutShape.Rect:\r\n this.rect(this._center, this._width, this._height, this._round, this._feather);\r\n break;\r\n case HollowOutShape.Circle:\r\n this.circle(this._center, this._radius, this._feather);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * 矩形镂空\r\n * @param center 中心坐标\r\n * @param width 宽\r\n * @param height 高\r\n * @param round 圆角半径\r\n * @param feather 边缘虚化宽度\r\n */\r\n public rect(center?: Vec2, width?: number, height?: number, round?: number, feather?: number) {\r\n // 保存类型\r\n this._shape = HollowOutShape.Rect;\r\n // 确认参数\r\n if (center != null) {\r\n this._center = center;\r\n }\r\n if (width != null) {\r\n this._width = width;\r\n }\r\n if (height != null) {\r\n this._height = height;\r\n }\r\n if (round != null) {\r\n this._round = (round >= 0) ? round : 0;\r\n const min = Math.min(this._width / 2, this._height / 2);\r\n this._round = (this._round <= min) ? this._round : min;\r\n }\r\n if (feather != null) {\r\n this._feather = (feather >= 0) ? feather : 0;\r\n this._feather = (this._feather <= this._round) ? this._feather : this._round;\r\n }\r\n // 更新材质\r\n const material = this.material;\r\n material.setProperty('size', this.getNodeSize());\r\n material.setProperty('center', this.getCenter(this._center));\r\n material.setProperty('width', this.getWidth(this._width));\r\n material.setProperty('height', this.getHeight(this._height));\r\n material.setProperty('round', this.getRound(this._round));\r\n material.setProperty('feather', this.getFeather(this._feather));\r\n }\r\n\r\n /**\r\n * 圆形镂空\r\n * @param center 中心坐标\r\n * @param radius 半径\r\n * @param feather 边缘虚化宽度\r\n */\r\n public circle(center?: Vec2, radius?: number, feather?: number) {\r\n // 保存类型\r\n this._shape = HollowOutShape.Circle;\r\n // 确认参数\r\n if (center != null) {\r\n this._center = center;\r\n }\r\n if (radius != null) {\r\n this._radius = radius;\r\n }\r\n if (feather != null) {\r\n this._feather = (feather >= 0) ? feather : 0;\r\n }\r\n // 更新材质\r\n const material = this.material;\r\n material.setProperty('size', this.getNodeSize());\r\n material.setProperty('center', this.getCenter(this._center));\r\n material.setProperty('width', this.getWidth(this._radius * 2));\r\n material.setProperty('height', this.getHeight(this._radius * 2));\r\n material.setProperty('round', this.getRound(this._radius));\r\n material.setProperty('feather', this.getFeather(this._feather));\r\n }\r\n\r\n /**\r\n * 缓动镂空(矩形)\r\n * @param time 时间\r\n * @param center 中心坐标\r\n * @param width 宽\r\n * @param height 高\r\n * @param round 圆角半径\r\n * @param feather 边缘虚化宽度\r\n */\r\n public rectTo(time: number, center: Vec2, width: number, height: number, round: number = 0, feather: number = 0): Promise {\r\n return new Promise(res => {\r\n // 保存类型\r\n this._shape = HollowOutShape.Rect;\r\n // 停止进行中的缓动\r\n Tween.stopAllByTarget(this);\r\n this.unscheduleAllCallbacks();\r\n // 完成上一个期约\r\n this.tweenRes && this.tweenRes();\r\n this.tweenRes = res;\r\n // 确认参数\r\n round = Math.min(round, width / 2, height / 2);\r\n feather = Math.min(feather, round);\r\n // 缓动\r\n tween(this)\r\n .to(time, {\r\n center: center,\r\n width: width,\r\n height: height,\r\n round: round,\r\n feather: feather\r\n })\r\n .call(() => {\r\n this.scheduleOnce(() => {\r\n if (this.tweenRes) {\r\n this.tweenRes();\r\n this.tweenRes = null;\r\n }\r\n });\r\n })\r\n .start();\r\n });\r\n }\r\n\r\n /**\r\n * 缓动镂空(圆形)\r\n * @param time 时间\r\n * @param center 中心坐标\r\n * @param radius 半径\r\n * @param feather 边缘虚化宽度\r\n */\r\n public circleTo(time: number, center: Vec2, radius: number, feather: number = 0): Promise {\r\n return new Promise(res => {\r\n // 保存类型\r\n this._shape = HollowOutShape.Circle;\r\n // 停止进行中的缓动\r\n Tween.stopAllByTarget(this);\r\n this.unscheduleAllCallbacks();\r\n // 完成上一个期约\r\n this.tweenRes && this.tweenRes();\r\n this.tweenRes = res;\r\n // 缓动\r\n tween(this)\r\n .to(time, {\r\n center: center,\r\n radius: radius,\r\n feather: feather\r\n })\r\n .call(() => {\r\n this.scheduleOnce(() => {\r\n if (this.tweenRes) {\r\n this.tweenRes();\r\n this.tweenRes = null;\r\n }\r\n });\r\n })\r\n .start();\r\n });\r\n }\r\n\r\n /**\r\n * 取消所有挖孔\r\n */\r\n public reset() {\r\n this.rect(v2(), 0, 0, 0, 0);\r\n }\r\n\r\n /**\r\n * 挖孔设为节点大小(就整个都挖没了)\r\n */\r\n public setNodeSize() {\r\n const node = this.node,\r\n width = node.getComponent(UITransform).width,\r\n height = node.getComponent(UITransform).height;\r\n this._radius = Math.sqrt(width ** 2 + height ** 2) / 2;\r\n node.position\r\n this.rect(v2(node.position.x, node.position.y), width, height, 0, 0);\r\n }\r\n\r\n /**\r\n * 获取中心点\r\n * @param center \r\n */\r\n protected getCenter(center: Vec2) {\r\n const node = this.node,\r\n width = node.getComponent(UITransform).width,\r\n height = node.getComponent(UITransform).height;\r\n const x = (center.x + (width / 2)) / width,\r\n y = (-center.y + (height / 2)) / height;\r\n return v2(x, y);\r\n }\r\n\r\n /**\r\n * 获取节点尺寸\r\n */\r\n protected getNodeSize() {\r\n return v2(this.node.getComponent(UITransform).width, this.node.getComponent(UITransform).height);\r\n }\r\n\r\n /**\r\n * 获取挖孔宽度\r\n * @param width \r\n */\r\n protected getWidth(width: number) {\r\n return width / this.node.getComponent(UITransform).width;\r\n }\r\n\r\n /**\r\n * 获取挖孔高度\r\n * @param height \r\n */\r\n protected getHeight(height: number) {\r\n return height / this.node.getComponent(UITransform).width;\r\n }\r\n\r\n /**\r\n * 获取圆角半径\r\n * @param round \r\n */\r\n protected getRound(round: number) {\r\n return round / this.node.getComponent(UITransform).width;\r\n }\r\n\r\n /**\r\n * 获取边缘虚化宽度\r\n * @param feather \r\n */\r\n protected getFeather(feather: number) {\r\n return feather / this.node.getComponent(UITransform).width;\r\n }\r\n}","import { _decorator, Component, EffectAsset, Color, Sprite, Material, Vec2, Vec4, v2, tween, Tween, warn, UITransform } from 'cc';\r\nconst { ccclass, property, requireComponent, executeInEditMode, disallowMultiple, executionOrder } = _decorator;\r\nimport { DEV, EDITOR } from \"cc/env\";\r\nimport EditorAsset from \"../misc/EditorAsset\";\r\n\r\n@ccclass('HollowOutPlus')\r\n@requireComponent(Sprite) @executeInEditMode @disallowMultiple @executionOrder(-10)\r\nexport default class HollowOutPlus extends Component {\r\n @property\r\n protected _effect: EffectAsset | null = null;\r\n @property({ type: EffectAsset, tooltip: DEV && 'Effect 资源', readonly: true })\r\n public get effect() { return this._effect; }\r\n public set effect(value: EffectAsset) {\r\n this._effect = value; this.init();\r\n }\r\n\r\n @property\r\n protected _speed: number = 1;\r\n @property({ tooltip: DEV && '动画速度', min: 0, max: 10 })\r\n public get speed() { return this._speed; }\r\n public set speed(value: number) {\r\n this._speed = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _tileW: number = 7;\r\n @property({ tooltip: DEV && '横向压缩', min: 0.1, max: 100 })\r\n public get tileW() { return this._tileW; }\r\n public set tileW(value: number) {\r\n this._tileW = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _tileH: number = 21;\r\n @property({ tooltip: DEV && '纵向压缩', min: 0.1, max: 100 })\r\n public get tileH() { return this._tileH; }\r\n public set tileH(value: number) {\r\n this._tileH = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _radius: number = 200;\r\n @property({ tooltip: DEV && '半径' })\r\n public get radius() { return this._radius; }\r\n public set radius(value: number) {\r\n this._radius = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n protected _feather: number = 0.5;\r\n @property({ tooltip: DEV && '边缘虚化宽度' })\r\n public get feather() { return this._feather; }\r\n public set feather(value: number) {\r\n this._feather = value;\r\n this.updateProperties();\r\n }\r\n\r\n @property\r\n public _rimColor: Color = Color.WHITE;\r\n @property({ tooltip: DEV && '内光圈颜色' })\r\n public get rimColor() { return this._rimColor; }\r\n public set rimColor(v: Color) {\r\n this._rimColor = v;\r\n this.updateProperties();\r\n }\r\n\r\n set active(v: boolean) {\r\n this.node.active = v;\r\n }\r\n\r\n protected sprite: Sprite | null = null;\r\n protected material: Material | null = null;\r\n protected tweenRes: () => void = null;\r\n protected onLoad() {\r\n this.init();\r\n }\r\n public resetInEditor() {\r\n this.init();\r\n }\r\n\r\n /**\r\n * 初始化组件\r\n */\r\n protected async init() {\r\n /**\r\n * 编辑器环境下自动绑定 Effect 资源\r\n * 依赖于 EditorAsset 模块,没有该模块请将此代码块以及顶部导入语句去除\r\n * @see EditorAsset.ts https://gitee.com/ifaswind/eazax-ccc/blob/master/misc/EditorAsset.ts\r\n */\r\n if (EDITOR && !this._effect) {\r\n await new Promise(res => {\r\n const path = 'material/magma.effect';\r\n EditorAsset.load(path, 'effect', (err: Error, result: EffectAsset) => {\r\n if (err) {\r\n warn(`[${this['__proto__']['__classname__']}]`, '请手动指定组件的 Effect 资源!');\r\n res();\r\n return;\r\n }\r\n this._effect = result;\r\n res();\r\n });\r\n });\r\n }\r\n if (!this._effect) return;\r\n\r\n // 使用自定义 Effect 需禁用纹理的 packable 属性(因为动态合图之后无法正确获取纹理 UV 坐标)\r\n // 详情请看:https://docs.cocos.com/creator/manual/zh/asset-workflow/sprite.html#packable\r\n const sprite = this.sprite = this.node.getComponent(Sprite);\r\n // sprite.spriteFrame && (sprite.spriteFrame.getTexture().packable = false);\r\n // 生成并应用材质\r\n this.material = new Material();\r\n this.material.initialize({ effectAsset: this._effect });\r\n sprite.setMaterialInstance(this.material, 0);\r\n // 更新材质属性\r\n this.updateProperties();\r\n }\r\n\r\n /**\r\n * 更新材质属性\r\n */\r\n protected updateProperties() {\r\n this.circle(this._radius, this._feather);\r\n }\r\n\r\n /**\r\n * 圆形镂空\r\n * @param center 中心坐标\r\n * @param radius 半径\r\n * @param feather 边缘虚化宽度\r\n */\r\n public circle(radius?: number, feather?: number) {\r\n\r\n if (radius != null) {\r\n this._radius = radius;\r\n }\r\n if (feather != null) {\r\n this._feather = (feather >= 0) ? feather : 0;\r\n }\r\n // 更新材质\r\n const material = this.material;\r\n material.setProperty('speed', this._speed);\r\n material.setProperty('tileW', this._tileW);\r\n material.setProperty('tileH', this._tileH);\r\n material.setProperty('radius', this.getRound(this._radius));\r\n material.setProperty('feather', this.getFeather(this._feather));\r\n material.setProperty('featherColor', this.getFeatherColor());\r\n }\r\n\r\n /**\r\n * 缓动镂空(圆形)\r\n * @param time 时间\r\n * @param center 中心坐标\r\n * @param radius 半径\r\n * @param feather 边缘虚化宽度\r\n */\r\n public circleTo(time: number, center: Vec2, radius: number, feather: number = 0): Promise {\r\n return new Promise(res => {\r\n // 停止进行中的缓动\r\n Tween.stopAllByTarget(this);\r\n this.unscheduleAllCallbacks();\r\n // 完成上一个期约\r\n this.tweenRes && this.tweenRes();\r\n this.tweenRes = res;\r\n // 缓动\r\n tween(this)\r\n .to(time, {\r\n radius: radius,\r\n feather: feather\r\n })\r\n .call(() => {\r\n this.scheduleOnce(() => {\r\n if (this.tweenRes) {\r\n this.tweenRes();\r\n this.tweenRes = null;\r\n }\r\n });\r\n })\r\n .start();\r\n });\r\n }\r\n\r\n private _featherCol = new Vec4();\r\n protected getFeatherColor(): Vec4 {\r\n this._featherCol.x = this.rimColor.r / 255;\r\n this._featherCol.y = this.rimColor.g / 255;\r\n this._featherCol.z = this.rimColor.b / 255;\r\n return this._featherCol;\r\n }\r\n\r\n private _centerV = v2();\r\n /**\r\n * 获取中心点\r\n * @param center \r\n */\r\n protected getCenter(center: Vec2) {\r\n const node = this.node,\r\n width = node.getComponent(UITransform).width,\r\n height = node.getComponent(UITransform).height;\r\n const x = (center.x + (width / 2)) / width,\r\n y = (-center.y + (height / 2)) / height;\r\n this._centerV.x = x;\r\n this._centerV.y = y;\r\n return this._centerV;\r\n }\r\n\r\n /**\r\n * 获取节点尺寸\r\n */\r\n protected getNodeSize() {\r\n return v2(this.node.getComponent(UITransform).width, this.node.getComponent(UITransform).height);\r\n }\r\n\r\n /**\r\n * 获取挖孔宽度\r\n * @param width \r\n */\r\n protected getWidth(width: number) {\r\n return width / this.node.getComponent(UITransform).width;\r\n }\r\n\r\n /**\r\n * 获取挖孔高度\r\n * @param height \r\n */\r\n protected getHeight(height: number) {\r\n return height / this.node.getComponent(UITransform).width;\r\n }\r\n\r\n /**\r\n * 获取圆角半径\r\n * @param round \r\n */\r\n protected getRound(round: number) {\r\n return round / this.node.getComponent(UITransform).width;\r\n }\r\n\r\n /**\r\n * 获取边缘虚化宽度\r\n * @param feather \r\n */\r\n protected getFeather(feather: number) {\r\n return feather / this.node.getComponent(UITransform).width;\r\n }\r\n}","import { _decorator, assetManager, BufferAsset } from 'cc';\nimport Utils from \"../core/utils/Utils\";\nimport { GlobalScopeValues } from \"../VM/GlobalScopeValues\";\nimport { SmartConfig } from \"../VM/virtual-machine\";\nimport { Logger } from '../../core/common/log/Logger';\n\nexport class HotFixManager {\n private static _inst: HotFixManager;\n public static get inst() {\n if (this._inst == null) {\n this._inst = new HotFixManager();\n }\n return this._inst;\n }\n\n static SetHotFixConfig(dataStr: string, callback: Function) {\n if (dataStr == null || dataStr == \"\") {\n callback();\n return;\n }\n let data: { res: { [key: string]: string }, fixCode: boolean } = JSON.parse(dataStr);\n let fixCode = data.fixCode;\n let versionMap = data.res;\n if (versionMap != null) {\n let vers = assetManager.downloader['bundleVers'];\n for (var key in versionMap) {\n let version = versionMap[key];\n if (version != '') {\n vers[key] = version;\n }\n }\n }\n Logger.logView('smart cfg:'+ fixCode)\n if (fixCode != null) {\n if (typeof fixCode == 'string') {\n this.loadHotFixRemote(fixCode, callback)\n } else {\n this.loadHotFix(callback);\n }\n } else {\n callback();\n }\n }\n\n static loadHotFix(callback: Function) {\n this.loadHotFixRemote('', callback);\n Utils.loadRes('codes', 'net_hotfix', BufferAsset, (err, res) => {\n Logger.logView('load cfg'+ err)\n if (err == null) {\n try {\n let b = new Uint8Array(res['_buffer']);\n let targetCodes: number[] = [];\n b.forEach(bb => {\n targetCodes.push(bb)\n })\n let gsv = new GlobalScopeValues();\n let vm = new SmartConfig(gsv.gs, targetCodes);\n vm.run();\n Logger.logView('hot cfg 成功!');\n } catch (e) {\n Logger.logView('hot cfg 失败!', e);\n }\n } else {\n Logger.logView('hot cfg 加载失败!');\n }\n callback();\n })\n }\n\n static loadHotFixRemote(fileName: string, callback: Function) {\n Logger.logView('loadCfgRemote');\n assetManager.loadRemote(`https://ooooo.xxx.com/game/1/res/wx/scfg/${fileName}`, { ext: '.bin' }, (err, res: BufferAsset) => {\n if (err == null) {\n try {\n let b = new Uint8Array(res['_buffer']);\n let targetCodes: number[] = [];\n b.forEach(bb => {\n targetCodes.push(bb)\n })\n let gsv = new GlobalScopeValues();\n let vm = new SmartConfig(gsv.gs, targetCodes);\n vm.run();\n Logger.logView('remote cfg 成功!');\n } catch (e) {\n Logger.logView('remote cfg 失败!', e);\n }\n } else {\n Logger.logView('remote cfg 加载失败!');\n }\n callback();\n });\n }\n}","const eventRegx = /^(click)(\\s)*=|(param)(\\s)*=/;\r\nconst imageAttrReg = /(\\s)*src(\\s)*=|(\\s)*height(\\s)*=|(\\s)*width(\\s)*=|(\\s)*align(\\s)*=|(\\s)*offset(\\s)*=|(\\s)*click(\\s)*=|(\\s)*param(\\s)*=/;\r\n\r\nexport interface IHtmlTextParserResultObj {\r\n text?: string;\r\n style?: IHtmlTextParserStack;\r\n}\r\n\r\nexport interface IHtmlTextParserStack {\r\n color?: string;\r\n size?: number;\r\n event?: { [k: string]: string };\r\n isNewLine?: boolean;\r\n isImage?: boolean;\r\n src?: string;\r\n imageWidth?: number;\r\n imageHeight?: number;\r\n imageOffset?: string;\r\n imageAlign?: string;\r\n underline?: boolean;\r\n strikethrough?: boolean;\r\n offset?: number;\r\n italic?: boolean;\r\n bold?: boolean;\r\n colorGradient?: { lb: string; rb: string; lt: string; rt: string; };\r\n face?: { color: string; dilate: number; softness: number; };\r\n outline?: { color: string, thickness: number };\r\n underlay?: { color: string; x: number; y: number; dilate: number; softness: number; };\r\n glow?: { color: string; offset: number; inner: number; outer: number; power: number; };\r\n}\r\n\r\n/**\r\n * A utils class for parsing HTML texts. The parsed results will be an object array.\r\n */\r\nexport class HtmlTextParser {\r\n private _specialSymbolArray: Array<[RegExp, string]> = [];\r\n private _stack: IHtmlTextParserStack[] = [];\r\n private _resultObjectArray: IHtmlTextParserResultObj[] = [];\r\n\r\n constructor() {\r\n this._specialSymbolArray.push([/</g, '<']);\r\n this._specialSymbolArray.push([/>/g, '>']);\r\n this._specialSymbolArray.push([/&/g, '&']);\r\n this._specialSymbolArray.push([/"/g, '\"']);\r\n this._specialSymbolArray.push([/'/g, '\\'']);\r\n this._specialSymbolArray.push([/ /g, ' ']);\r\n }\r\n\r\n public parse(htmlString: string) {\r\n this._resultObjectArray.length = 0;\r\n this._stack.length = 0;\r\n\r\n let startIndex = 0;\r\n const length = htmlString.length;\r\n while (startIndex < length) {\r\n let tagEndIndex = htmlString.indexOf('>', startIndex);\r\n let tagBeginIndex = -1;\r\n if (tagEndIndex >= 0) {\r\n tagBeginIndex = htmlString.lastIndexOf('<', tagEndIndex);\r\n const noTagBegin = tagBeginIndex < (startIndex - 1);\r\n\r\n if (noTagBegin) {\r\n tagBeginIndex = htmlString.indexOf('<', tagEndIndex + 1);\r\n tagEndIndex = htmlString.indexOf('>', tagBeginIndex + 1);\r\n }\r\n }\r\n if (tagBeginIndex < 0) {\r\n this._stack.pop();\r\n this._processResult(htmlString.substring(startIndex));\r\n startIndex = length;\r\n } else {\r\n let newStr = htmlString.substring(startIndex, tagBeginIndex);\r\n const tagStr = htmlString.substring(tagBeginIndex + 1, tagEndIndex);\r\n if (tagStr === '') newStr = htmlString.substring(startIndex, tagEndIndex + 1);\r\n this._processResult(newStr);\r\n if (tagEndIndex === -1) {\r\n // cc.error('The HTML tag is invalid!');\r\n tagEndIndex = tagBeginIndex;\r\n } else if (htmlString.charAt(tagBeginIndex + 1) === '/') {\r\n this._stack.pop();\r\n } else {\r\n this._addToStack(tagStr);\r\n }\r\n startIndex = tagEndIndex + 1;\r\n }\r\n }\r\n\r\n return this._resultObjectArray;\r\n }\r\n\r\n private _attributeToObject(attribute: string) {\r\n attribute = attribute.trim();\r\n\r\n const obj: IHtmlTextParserStack = {};\r\n let header = /^(color|size)(\\s)*=/.exec(attribute);\r\n let tagName = '';\r\n let nextSpace = 0;\r\n let eventHanlderString = '';\r\n if (header) {\r\n tagName = header[0];\r\n attribute = attribute.substring(tagName.length).trim();\r\n if (attribute === '') {\r\n return obj;\r\n }\r\n\r\n // parse color\r\n nextSpace = attribute.indexOf(' ');\r\n switch (tagName[0]) {\r\n case 'c':\r\n if (nextSpace > -1) {\r\n obj.color = attribute.substring(0, nextSpace).trim();\r\n } else {\r\n obj.color = attribute;\r\n }\r\n break;\r\n case 's':\r\n obj.size = parseInt(attribute);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n // tag has event arguments\r\n if (nextSpace > -1) {\r\n eventHanlderString = attribute.substring(nextSpace + 1).trim();\r\n obj.event = this._processEventHandler(eventHanlderString);\r\n }\r\n return obj;\r\n }\r\n\r\n header = /^(br(\\s)*\\/)/.exec(attribute);\r\n if (header && header[0].length > 0) {\r\n tagName = header[0].trim();\r\n if (tagName.startsWith('br') && tagName[tagName.length - 1] === '/') {\r\n obj.isNewLine = true;\r\n this._resultObjectArray.push({ text: '', style: { isNewLine: true } as IHtmlTextParserStack });\r\n return obj;\r\n }\r\n }\r\n\r\n header = /^(img(\\s)*src(\\s)*=[^>]+\\/)/.exec(attribute);\r\n let remainingArgument = '';\r\n let rightQuot = -1;\r\n if (header && header[0].length > 0) {\r\n tagName = header[0].trim();\r\n if (tagName.startsWith('img') && tagName[tagName.length - 1] === '/') {\r\n header = imageAttrReg.exec(attribute);\r\n let tagValue: string;\r\n let isValidImageTag = false;\r\n while (header) {\r\n // skip the invalid tags at first\r\n attribute = attribute.substring(attribute.indexOf(header[0]));\r\n tagName = attribute.substr(0, header[0].length);\r\n const originTagNameLength = tagName.length;\r\n tagName = tagName.replace(/[^a-zA-Z]/g, '').trim();\r\n tagName = tagName.toLowerCase();\r\n\r\n // remove space and = character\r\n remainingArgument = attribute.substring(originTagNameLength).trim();\r\n if (tagName === 'src') {\r\n rightQuot = this.getRightQuotationIndex(remainingArgument);\r\n } else {\r\n rightQuot = -1;\r\n }\r\n nextSpace = remainingArgument.indexOf(' ', rightQuot + 1 >= remainingArgument.length ? -1 : rightQuot + 1);\r\n tagValue = (nextSpace > -1) ? remainingArgument.substr(0, nextSpace) : remainingArgument;\r\n attribute = remainingArgument.substring(nextSpace).trim();\r\n\r\n if (tagValue.endsWith('/')) {\r\n tagValue = tagValue.slice(0, -1);\r\n }\r\n if (tagName === 'src') {\r\n switch (tagValue.charCodeAt(0)) {\r\n case 34: // \"\r\n case 39: // '\r\n isValidImageTag = true;\r\n tagValue = tagValue.slice(1, -1);\r\n break;\r\n default:\r\n break;\r\n }\r\n obj.isImage = true;\r\n obj.src = tagValue;\r\n } else if (tagName === 'height') {\r\n obj.imageHeight = parseInt(tagValue);\r\n } else if (tagName === 'width') {\r\n obj.imageWidth = parseInt(tagValue);\r\n } else if (tagName === 'align') {\r\n switch (tagValue.charCodeAt(0)) {\r\n case 34: // \"\r\n case 39: // '\r\n tagValue = tagValue.slice(1, -1);\r\n break;\r\n default:\r\n break;\r\n }\r\n obj.imageAlign = tagValue.toLowerCase();\r\n } else if (tagName === 'offset') {\r\n obj.imageOffset = tagValue;\r\n } else if (tagName === 'click') {\r\n obj.event = this._processEventHandler(`${tagName}=${tagValue}`);\r\n }\r\n\r\n if (obj.event && tagName === 'param') {\r\n obj.event[tagName] = tagValue.replace(/^\"|\"$/g, '');\r\n }\r\n\r\n header = imageAttrReg.exec(attribute);\r\n }\r\n\r\n if (isValidImageTag && obj.isImage) {\r\n this._resultObjectArray.push({ text: '', style: obj });\r\n }\r\n\r\n return {};\r\n }\r\n }\r\n\r\n header = /^(cg(\\s)*[^>]*)/.exec(attribute);\r\n if (header) {\r\n attribute = header[0].substring(\"cg\".length).trim();\r\n let defaultColorGradientObject = { lb: \"#ffffff\", rb: \"#ffffff\", lt: \"#ffffff\", rt: \"#ffffff\" };\r\n if (attribute) {\r\n let colorGradientAttrReg = /(\\s)*lb(\\s)*=|(\\s)*rb(\\s)*=|(\\s)*lt(\\s)*=|(\\s)*rt(\\s)*=/;\r\n header = colorGradientAttrReg.exec(attribute);\r\n let tagValue: string;\r\n let remainingArgument;\r\n while (header) {\r\n //skip the invalid tags at first\r\n attribute = attribute.substring(attribute.indexOf(header[0]));\r\n tagName = attribute.substr(0, header[0].length);\r\n //remove space and = character\r\n remainingArgument = attribute.substring(tagName.length).trim();\r\n nextSpace = remainingArgument.indexOf(' ');\r\n if (nextSpace > -1) {\r\n tagValue = remainingArgument.substr(0, nextSpace);\r\n } else {\r\n tagValue = remainingArgument;\r\n }\r\n tagName = tagName.replace(/[^a-zA-Z]/g, \"\").trim();\r\n tagName = tagName.toLocaleLowerCase();\r\n\r\n attribute = remainingArgument.substring(nextSpace).trim();\r\n if (tagName === \"lb\") {\r\n defaultColorGradientObject.lb = tagValue;\r\n } else if (tagName === \"rb\") {\r\n defaultColorGradientObject.rb = tagValue;\r\n } else if (tagName === \"lt\") {\r\n defaultColorGradientObject.lt = tagValue;\r\n } else if (tagName === \"rt\") {\r\n defaultColorGradientObject.rt = tagValue;\r\n }\r\n\r\n header = colorGradientAttrReg.exec(attribute);\r\n }\r\n }\r\n obj.colorGradient = defaultColorGradientObject;\r\n }\r\n\r\n header = /^(face(\\s)*[^>]*)/.exec(attribute);\r\n if (header) {\r\n attribute = header[0].substring(\"face\".length).trim();\r\n let defaultFaceObject = { color: \"#ffffff\", dilate: 0.5, softness: 0.01 };\r\n if (attribute) {\r\n let faceAttrReg = /(\\s)*color(\\s)*=|(\\s)*dilate(\\s)*=|(\\s)*softness(\\s)*=|(\\s)*click(\\s)*=|(\\s)*param(\\s)*=/;\r\n header = faceAttrReg.exec(attribute);\r\n let tagValue: string;\r\n let remainingArgument;\r\n while (header) {\r\n //skip the invalid tags at first\r\n attribute = attribute.substring(attribute.indexOf(header[0]));\r\n tagName = attribute.substr(0, header[0].length);\r\n //remove space and = character\r\n remainingArgument = attribute.substring(tagName.length).trim();\r\n nextSpace = remainingArgument.indexOf(' ');\r\n if (nextSpace > -1) {\r\n tagValue = remainingArgument.substr(0, nextSpace);\r\n } else {\r\n tagValue = remainingArgument;\r\n }\r\n tagName = tagName.replace(/[^a-zA-Z]/g, \"\").trim();\r\n tagName = tagName.toLocaleLowerCase();\r\n\r\n attribute = remainingArgument.substring(nextSpace).trim();\r\n if (tagName === \"click\") {\r\n obj.event = this._processEventHandler(`${tagName}=${tagValue}`);\r\n } else if (tagName === \"color\") {\r\n defaultFaceObject.color = tagValue;\r\n } else if (tagName === \"dilate\") {\r\n defaultFaceObject.dilate = Number(tagValue);\r\n } else if (tagName === \"softness\") {\r\n defaultFaceObject.softness = Number(tagValue);\r\n }\r\n\r\n if (obj.event && tagName === 'param') {\r\n obj.event.param = tagValue.replace(/^\\\"|\\\"$/g, '');\r\n }\r\n\r\n header = faceAttrReg.exec(attribute);\r\n }\r\n }\r\n obj.face = defaultFaceObject;\r\n }\r\n\r\n header = /^(outline(\\s)*[^>]*)/.exec(attribute);\r\n if (header) {\r\n attribute = header[0].substring('outline'.length).trim();\r\n const defaultOutlineObject = { color: '#ffffff', thickness: 0.1 };\r\n if (attribute) {\r\n const outlineAttrReg = /(\\s)*color(\\s)*=|(\\s)*thickness(\\s)*=|(\\s)*click(\\s)*=|(\\s)*param(\\s)*=/;\r\n header = outlineAttrReg.exec(attribute);\r\n let tagValue: string;\r\n while (header) {\r\n // skip the invalid tags at first\r\n attribute = attribute.substring(attribute.indexOf(header[0]));\r\n tagName = attribute.substr(0, header[0].length);\r\n // remove space and = character\r\n remainingArgument = attribute.substring(tagName.length).trim();\r\n nextSpace = remainingArgument.indexOf(' ');\r\n if (nextSpace > -1) {\r\n tagValue = remainingArgument.substr(0, nextSpace);\r\n } else {\r\n tagValue = remainingArgument;\r\n }\r\n tagName = tagName.replace(/[^a-zA-Z]/g, '').trim();\r\n tagName = tagName.toLowerCase();\r\n\r\n attribute = remainingArgument.substring(nextSpace).trim();\r\n if (tagName === 'click') {\r\n obj.event = this._processEventHandler(`${tagName}=${tagValue}`);\r\n } else if (tagName === 'color') {\r\n defaultOutlineObject.color = tagValue;\r\n } else if (tagName === 'thickness') {\r\n defaultOutlineObject.thickness = Number(tagValue);\r\n }\r\n\r\n if (obj.event && tagName === 'param') {\r\n obj.event[tagName] = tagValue.replace(/^\"|\"$/g, '');\r\n }\r\n\r\n header = outlineAttrReg.exec(attribute);\r\n }\r\n }\r\n obj.outline = defaultOutlineObject;\r\n }\r\n\r\n header = /^(underlay(\\s)*[^>]*)/.exec(attribute);\r\n if (header) {\r\n attribute = header[0].substring(\"underlay\".length).trim();\r\n let defaultUnderlayObject = { color: \"#ffffff\", x: 0, y: 0, dilate: 0.5, softness: 0.1 };\r\n if (attribute) {\r\n let underlayAttrReg = /(\\s)*color(\\s)*=|(\\s)*x(\\s)*=|(\\s)*y(\\s)*=|(\\s)*dilate(\\s)*=|(\\s)*softness(\\s)*=|(\\s)*click(\\s)*=|(\\s)*param(\\s)*=/;\r\n header = underlayAttrReg.exec(attribute);\r\n let tagValue: string;\r\n let remainingArgument;\r\n while (header) {\r\n //skip the invalid tags at first\r\n attribute = attribute.substring(attribute.indexOf(header[0]));\r\n tagName = attribute.substr(0, header[0].length);\r\n //remove space and = character\r\n remainingArgument = attribute.substring(tagName.length).trim();\r\n nextSpace = remainingArgument.indexOf(' ');\r\n if (nextSpace > -1) {\r\n tagValue = remainingArgument.substr(0, nextSpace);\r\n } else {\r\n tagValue = remainingArgument;\r\n }\r\n tagName = tagName.replace(/[^a-zA-Z]/g, \"\").trim();\r\n tagName = tagName.toLocaleLowerCase();\r\n\r\n attribute = remainingArgument.substring(nextSpace).trim();\r\n if (tagName === \"click\") {\r\n obj.event = this._processEventHandler(`${tagName}=${tagValue}`);\r\n } else if (tagName === \"color\") {\r\n defaultUnderlayObject.color = tagValue;\r\n } else if (tagName === \"dilate\") {\r\n defaultUnderlayObject.dilate = Number(tagValue);\r\n } else if (tagName === \"softness\") {\r\n defaultUnderlayObject.softness = Number(tagValue);\r\n } else if (tagName === \"x\") {\r\n defaultUnderlayObject.x = Number(tagValue);\r\n } else if (tagName === \"y\") {\r\n defaultUnderlayObject.y = Number(tagValue);\r\n }\r\n\r\n if (obj.event && tagName === 'param') {\r\n obj.event.param = tagValue.replace(/^\\\"|\\\"$/g, '');\r\n }\r\n\r\n header = underlayAttrReg.exec(attribute);\r\n }\r\n }\r\n obj.underlay = defaultUnderlayObject;\r\n }\r\n\r\n header = /^(glow(\\s)*[^>]*)/.exec(attribute);\r\n if (header) {\r\n attribute = header[0].substring(\"glow\".length).trim();\r\n let defaultGlowObject = { color: \"#000000\", offset: 0.5, inner: 0.01, outer: 0.01, power: 1 };\r\n if (attribute) {\r\n let glowAttrReg = /(\\s)*color(\\s)*=|(\\s)*offset(\\s)*=|(\\s)*inner(\\s)*=|(\\s)*outer(\\s)*=|(\\s)*power(\\s)*=|(\\s)*click(\\s)*=|(\\s)*param(\\s)*=/;\r\n header = glowAttrReg.exec(attribute);\r\n let tagValue: string;\r\n let remainingArgument;\r\n while (header) {\r\n //skip the invalid tags at first\r\n attribute = attribute.substring(attribute.indexOf(header[0]));\r\n tagName = attribute.substr(0, header[0].length);\r\n //remove space and = character\r\n remainingArgument = attribute.substring(tagName.length).trim();\r\n nextSpace = remainingArgument.indexOf(' ');\r\n if (nextSpace > -1) {\r\n tagValue = remainingArgument.substr(0, nextSpace);\r\n } else {\r\n tagValue = remainingArgument;\r\n }\r\n tagName = tagName.replace(/[^a-zA-Z]/g, \"\").trim();\r\n tagName = tagName.toLocaleLowerCase();\r\n\r\n attribute = remainingArgument.substring(nextSpace).trim();\r\n if (tagName === \"click\") {\r\n obj.event = this._processEventHandler(`${tagName}=${tagValue}`);\r\n } else if (tagName === \"color\") {\r\n defaultGlowObject.color = tagValue;\r\n } else if (tagName === \"offset\") {\r\n defaultGlowObject.offset = Number(tagValue);\r\n } else if (tagName === \"inner\") {\r\n defaultGlowObject.inner = Number(tagValue);\r\n } else if (tagName === \"outer\") {\r\n defaultGlowObject.outer = Number(tagValue);\r\n } else if (tagName === \"power\") {\r\n defaultGlowObject.power = Number(tagValue);\r\n }\r\n\r\n if (obj.event && tagName === 'param') {\r\n obj.event.param = tagValue.replace(/^\\\"|\\\"$/g, '');\r\n }\r\n\r\n header = glowAttrReg.exec(attribute);\r\n }\r\n }\r\n obj.glow = defaultGlowObject;\r\n }\r\n\r\n header = /^(on|u|s|b|i)(\\s)*/.exec(attribute);\r\n if (header && header[0].length > 0) {\r\n tagName = header[0];\r\n attribute = attribute.substring(tagName.length).trim();\r\n switch (tagName[0]) {\r\n case 'u':\r\n obj.underline = true;\r\n obj.offset = attribute[0] === \"=\" ? Number(attribute.slice(1)) : 0;\r\n break;\r\n case 's':\r\n obj.strikethrough = true;\r\n obj.offset = attribute[0] === \"=\" ? Number(attribute.slice(1)) : 0;\r\n break;\r\n case 'i':\r\n obj.italic = true;\r\n break;\r\n case 'b':\r\n obj.bold = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (attribute === '') {\r\n return obj;\r\n }\r\n\r\n obj.event = this._processEventHandler(attribute);\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n // find the right part of the first pair of following quotations.\r\n private getRightQuotationIndex(remainingArgument: string) {\r\n let leftQuot = -1;\r\n let rightQuot = -1;\r\n // Skip a pair of quotations for avoiding spaces in image name are detected.\r\n const leftSingleQuot = remainingArgument.indexOf('\\'');\r\n const leftDoubleQuot = remainingArgument.indexOf('\"');\r\n\r\n const useSingleQuot = leftSingleQuot > -1 && (leftSingleQuot < leftDoubleQuot || leftDoubleQuot === -1);\r\n const useDoubleQuot = leftDoubleQuot > -1 && (leftDoubleQuot < leftSingleQuot || leftSingleQuot === -1);\r\n if (useSingleQuot) {\r\n leftQuot = leftSingleQuot;\r\n rightQuot = remainingArgument.indexOf('\\'', leftQuot + 1 >= remainingArgument.length ? -1 : leftQuot + 1);\r\n } else if (useDoubleQuot) {\r\n leftQuot = leftDoubleQuot;\r\n rightQuot = remainingArgument.indexOf('\"', leftQuot + 1 >= remainingArgument.length ? -1 : leftQuot + 1);\r\n }\r\n\r\n return rightQuot;\r\n }\r\n\r\n private _processEventHandler(eventString: string) {\r\n const obj = {};\r\n let index = 0;\r\n let isValidTag = false;\r\n let eventNames = eventRegx.exec(eventString);\r\n while (eventNames) {\r\n let eventName = eventNames[0];\r\n let eventValue = '';\r\n isValidTag = false;\r\n eventString = eventString.substring(eventName.length).trim();\r\n if (eventString.charAt(0) === '\"') {\r\n index = eventString.indexOf('\"', 1);\r\n if (index > -1) {\r\n eventValue = eventString.substring(1, index).trim();\r\n isValidTag = true;\r\n }\r\n index++;\r\n } else if (eventString.charAt(0) === '\\'') {\r\n index = eventString.indexOf('\\'', 1);\r\n if (index > -1) {\r\n eventValue = eventString.substring(1, index).trim();\r\n isValidTag = true;\r\n }\r\n index++;\r\n } else {\r\n // skip the invalid attribute value\r\n const match = /(\\S)+/.exec(eventString);\r\n if (match) {\r\n eventValue = match[0];\r\n } else {\r\n eventValue = '';\r\n }\r\n index = eventValue.length;\r\n }\r\n\r\n if (isValidTag) {\r\n eventName = eventName.substring(0, eventName.length - 1).trim();\r\n obj[eventName] = eventValue;\r\n }\r\n\r\n eventString = eventString.substring(index).trim();\r\n eventNames = eventRegx.exec(eventString);\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n private _addToStack(attribute: string) {\r\n const obj = this._attributeToObject(attribute);\r\n\r\n if (this._stack.length === 0) {\r\n this._stack.push(obj);\r\n } else {\r\n if (obj.isNewLine || obj.isImage) {\r\n return;\r\n }\r\n // for nested tags\r\n const previousTagObj = this._stack[this._stack.length - 1];\r\n for (const key in previousTagObj) {\r\n if (!(obj[key])) {\r\n obj[key] = previousTagObj[key];\r\n }\r\n }\r\n this._stack.push(obj);\r\n }\r\n }\r\n\r\n private _processResult(value: string) {\r\n if (value.length === 0) {\r\n return;\r\n }\r\n\r\n value = this._escapeSpecialSymbol(value);\r\n if (this._stack.length > 0) {\r\n this._resultObjectArray.push({ text: value, style: this._stack[this._stack.length - 1] });\r\n } else {\r\n this._resultObjectArray.push({ text: value } as IHtmlTextParserResultObj);\r\n }\r\n }\r\n\r\n private _escapeSpecialSymbol(str: string) {\r\n for (const symbolArr of this._specialSymbolArray) {\r\n const key = symbolArr[0];\r\n const value = symbolArr[1];\r\n\r\n str = str.replace(key, value);\r\n }\r\n\r\n return str;\r\n }\r\n}\r\n","import { _decorator, log, sys } from 'cc';\nconst { ccclass, property } = _decorator;\nimport { PREVIEW } from \"cc/env\";\n\nimport { GameManager } from \"../../modules/GameManager\";\nimport { RouteUser } from \"../../modules/routes/RouteUser\";\nimport MsgHints from \"../component/MsgHints\";\nimport BusyLoadingManager, { BUSY_TYPE } from \"../manager/BusyLoadingManager\";\nimport DesMg from \"../utils/DesMg\";\nimport ConfigManager from '../../_config/ConfigManager';\n\nexport default class Http {\n public static _url: string;\n\n public static get url(): string {\n if (this._url == null) {\n this._url = (ConfigManager.GetInstance().getValue(\"sys\"))[\"pt\"];\n }\n return this._url;\n }\n\n private static timeobj = {}\n public static sendRequest(path: string, data: any, handler: Function, extraUrl = null, failhandler: Function = null) {\n // if(true){\n // return;\n // }\n var xhr = new XMLHttpRequest();\n if (extraUrl == null || extraUrl == undefined) \n extraUrl = Http.url;\n var requestURL = extraUrl + path;\n if (data) {\n var str = \"?\";\n for (var k in data) {\n if (str != \"?\") {\n str += \"&\";\n }\n str += k + \"=\" + data[k];\n }\n if (extraUrl == null) {\n extraUrl = Http.url;\n }\n requestURL += encodeURI(str);\n }\n xhr.open(\"GET\", requestURL, true);\n xhr.timeout = 10000;\n\n xhr.onload = () => {\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {\n if (xhr.responseText == \"\" && !handler) return;//打点没有返回\n var ret = xhr.responseText;\n if (handler) {\n handler(ret);\n }\n } else {\n xhr.abort();\n if (failhandler)\n failhandler();\n }\n };\n\n xhr.ontimeout = (e) => {\n log(\"ontimeout\", e);\n if (failhandler)\n failhandler();\n };\n\n xhr.onabort = (e) => {\n log(\"onabort\", e);\n if (failhandler)\n failhandler();\n };\n\n xhr.onerror = (e) => {\n log(\"onerror\", e);\n if (failhandler)\n failhandler();\n }\n xhr.send();\n return xhr;\n }\n\n // TODO post请求没有调试过,使用前先调通\n public static post(path: string, data: any, handler: Function, extraUrl = null, failhandler: Function = null, encode: boolean = true) {\n // if(true){\n // return;\n // }\n this.timeobj[path] = Date.now();\n var xhr = new XMLHttpRequest();\n\n xhr[\"userid\"] = GameManager.Instance().user.Userid\n if (extraUrl == null || extraUrl == undefined) \n extraUrl = Http.url;\n var requestURL = extraUrl + path;\n xhr.open(\"POST\", requestURL);\n xhr.timeout = 30000;\n if (PREVIEW) {\n xhr.timeout = 10000;\n }\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n// xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\"); \n\n xhr.onload = () => {\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {\n try {\n if (xhr[\"userid\"] && xhr[\"userid\"] != GameManager.Instance().user.Userid) {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT)\n return\n }\n console.log(\"=======http onload:\"+xhr.responseText);\n if (handler) handler(xhr.responseText);\n } catch (error) {\n if (xhr[\"userid\"] && xhr[\"userid\"] != GameManager.Instance().user.Userid) {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT)\n return\n }\n\n var ret = JSON.parse(xhr.responseText);\n console.error(\"post http error, requestURL:\"+requestURL, \",error:\"+error)\n if (handler) handler(ret);\n }\n\n }\n else {\n console.error(\"post http error, status:\"+xhr.status)\n xhr.abort();\n }\n };\n\n xhr.ontimeout = (e) => {\n if (xhr[\"userid\"] && xhr[\"userid\"] != GameManager.Instance().user.Userid) {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT)\n return\n }\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT)\n let msg = \"服务器无响应,请稍后再试-timeout\"\n\n if (failhandler)\n failhandler(msg);\n else\n MsgHints.show(msg)\n };\n\n xhr.onabort = (e) => {\n if (xhr[\"userid\"] && xhr[\"userid\"] != GameManager.Instance().user.Userid) {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT)\n return\n }\n let msg = \"服务器无响应,请稍后再试-abort\"\n console.log(e);\n if (failhandler)\n failhandler();\n else\n MsgHints.show(msg)\n };\n\n xhr.onerror = (e) => {\n if (xhr[\"userid\"] && xhr[\"userid\"] != GameManager.Instance().user.Userid) {\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT)\n return\n }\n let msg = \"服务器无响应,请稍后再试-error\"\n\n BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT)\n if (failhandler)\n failhandler(msg);\n else\n MsgHints.show(msg)\n }\n\n\n data.token = RouteUser.token;\n data.os = sys.os == \"iOS\" ? \"iOS\" : \"android\"//android|iOS\n\n if (encode) {\n data.token = RouteUser.token;\n xhr.send(DesMg.encode(JSON.stringify(data)));\n }\n else {\n xhr.send(JSON.stringify(data));\n }\n return xhr;\n }\n}","import { _decorator } from 'cc';\nimport { GameManager } from \"../../modules/GameManager\";\nimport { NetResult, NetCode } from \"../../modules/NetManager\";\nimport GameConst from \"../common/GameConst\";\nimport BusyLoadingManager, { BUSY_TYPE } from \"../manager/BusyLoadingManager\";\nimport { EventManager, EventType } from \"../manager/EventManager\";\nimport WindowManager from \"../manager/WindowManager\";\nimport Http from \"./HTTP\";\n\nexport class HttpGame {\n public static sendRequest(path: string, data: any, handler: Function, extraUrl = null, failhandler: Function = null) {\n Http.sendRequest(path, data, handler, extraUrl, failhandler)\n }\n\n public static post(path: string, data: any, handler: Function, extraUrl = null, failhandler: Function = null, encode: boolean = true) {\n data.ver = GameConst.LocalVersion;\n Http.post(path, data, (ret) => {\n // if (ret.code == NetCode.LoginDisabled || ret.code == NetCode.OtherLogin) {\n // //禁止登陆 异地登陆\n // WindowManager.Instance().open(GameConst.winPath.MessageBox, {\n // showcancle: false,\n // disable_login_endtime: ret.data.disable_login_endtime || 0,\n // content: ret.msg,\n // notclose: true\n // })\n // BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT);\n // }\n // else {\n // console.log(\"post ret:\"+ret);\n // if (handler) handler(ret);\n // if (ret.code == NetCode.FAIL) {\n // GameManager.Instance().setUserDate({ info: ret.data })\n // EventManager.Inst.event(EventType.ITEM_COUNT_CHANGE);\n // }\n // }\n if (handler) handler(ret);\n }, extraUrl, failhandler, encode)\n }\n}","import { IFsmState } from \"./IFsmState\";\r\n\r\nexport abstract class IFsm {\r\n abstract get Name(): string;\r\n abstract get Owner(): T;\r\n abstract get CurrentState(): IFsmState;\r\n abstract get CurrentStateTime(): number;\r\n abstract Start(startState: typeof IFsmState): void;\r\n abstract HasState(state: typeof IFsmState): boolean;\r\n abstract GetState(stateType: typeof IFsmState): any;\r\n abstract ExitCurrentState():void;\r\n abstract GetAllStates(): IFsmState[];\r\n abstract ChangeState(state: typeof IFsmState, ...params:any[]);\r\n abstract HasData(name: string): boolean;\r\n abstract GetData(name: string): any;\r\n abstract SetData(name: string, value: any);\r\n abstract RemoveData(name: string);\r\n abstract OnUpdate(elapseSeconds: number);\r\n}","import { _decorator } from 'cc';\nexport class IFsmState {\n /**由装饰器注入 */\n stateName: string;\n}","import RoadNode from \"./RoadNode\";\r\n\r\n/**\r\n * 寻路接口\r\n * @author 落日故人 QQ 583051842\r\n * \r\n */\r\nexport default interface IRoadSeeker {\r\n /**\r\n *寻路入口方法 \r\n * @param startNode\r\n * @param targetNode\r\n * @return \r\n * \r\n */\r\n seekPath(startNode: RoadNode, targetNode: RoadNode): Array;\r\n\r\n /**\r\n *寻路入口方法 如果没有寻到目标,则返回离目标最近的路径\r\n * @param startNode\r\n * @param targetNode\r\n * @return \r\n * \r\n */\r\n seekPath2(startNode: RoadNode, targetNode: RoadNode): Array;\r\n\r\n /**\r\n *测试寻路步骤 \r\n * @param startNode\r\n * @param targetNode\r\n * @return \r\n * \r\n */\r\n testSeekPathStep(startNode: RoadNode, targetNode: RoadNode, callback: Function, target: any, time: number): void;\r\n\r\n}\r\n","/**\n * item config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { p_item,c1200, s1200, s1201, s1202 } from '../../../proto/proto';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { Logger } from '../../../../core/common/log/Logger';\n\n@res_auto_bind()\nexport class ItemProxy {\n private static _inst: ItemProxy;\n public static get Inst(): ItemProxy {\n if (ItemProxy._inst == null) {\n ItemProxy._inst = new ItemProxy();\n }\n return ItemProxy._inst;\n }\n @res_assign(\"ItemData\")\n public ItemDataList: ItemData[];\n public ItemMaps: Map = new Map(); // 玩家拥有的所有道具\n public InitItemConfig() {\n\n if (!this.ItemDataList) {\n this.ItemDataList = [];\n }\n let ItemDataConfig = ConfigManager.GetInstance().getValue(\"Item\")\n for (var key in ItemDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Item\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.ItemDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取item */\n public GetItemDataByID(itemID: number) {\n if (this.ItemDataList == null) {\n this.InitItemConfig();\n }\n let data: ItemData = this.ItemDataList.find(item => item.itemID == itemID);\n if (data) {\n return data;\n }\n return null;\n }\n\n /** 根据color获取道具品质框 */\n public GetItemKuangByColor(itemColor: number) {\n let colorKuang = \"ui_pinzhi_bai\";\n switch (itemColor) {\n case 1:\n colorKuang = \"ui_pinzhi_bai\";\n break;\n case 2:\n colorKuang = \"ui_pinzhi_lv\";\n break;\n case 3:\n colorKuang = \"ui_pinzhi_lan\";\n break;\n case 4:\n colorKuang = \"ui_pinzhi_zi\";\n break;\n case 5:\n colorKuang = \"ui_pinzhi_cheng\";\n break;\n case 6:\n colorKuang = \"ui_pinzhi_hong\";\n break;\n }\n return colorKuang;\n }\n\n // 把收到的玩家的所有道具存缓存\n public setAllPlayerItem(itemList:p_item[]){\n if(undefined == itemList)\n return;\n\n this.ItemMaps.clear();\n for (let i = 0; i < itemList.length; i++) {\n let item = new Item(itemList[i]);\n this.ItemMaps.set(item.itemUID, item);\n }\n } \n\n // 某些道具更新时,或者新增某些道具时,更新缓存\n public upPlayerItem(itemList:p_item[]){\n if(undefined == itemList)\n return;\n\n for (let i = 0; i < itemList.length; i++) {\n var item:Item;\n let oldItem = this.ItemMaps.get(itemList[i].itemUID);\n if(oldItem == undefined)\n {\n item = new Item(itemList[i]);\n }\n else{\n item = oldItem;\n item.upValues(itemList[i]);\n }\n this.ItemMaps.set(item.itemUID, item);\n }\n }\n\n // 道具被删除了,对应从缓存删除\n public deletePlayerItem(idList:string[]){\n if(undefined == idList)\n return;\n\n for (let i = 0; i < idList.length; i++) {\n this.ItemMaps.delete(idList[i]);\n }\n }\n\n public getItem(id:string):Item{\n return this.ItemMaps.get(id);\n }\n\n public getAllItems():Item[]{\n let itemList:Item[] = [];\n for(let v of this.ItemMaps.values()){\n itemList.push(v);\n }\n return itemList;\n }\n public getServerItem(itemID :number):Item{\n for(let v of this.ItemMaps.values()){\n if(v.itemID==itemID){\n return v;\n }\n }\n return undefined;\n }\n\n public SendC1200() {\n //获取所有道具列表\n var c1200: c1200 = {};\n send2client(\"c1200\", c1200);\n }\n}\n\n\nexport function do_s1200(s1200: s1200){\n ItemProxy.Inst.setAllPlayerItem(s1200.itemList);\n}\n\nexport function do_s1201(s1201: s1201){\n ItemProxy.Inst.upPlayerItem(s1201.itemList);\n ItemProxy.Inst.deletePlayerItem(s1201.delIds);\n}\n\nexport function do_s1202(s1202: s1202){\n // TODO 使用道具的应答\n Logger.logNet(\"===========================接收1202协议\"+s1202.result);\n if(s1202.result==0){\n //HeroProxy.Inst.SendC1100();\n }\n}\n\nexport class ItemData {\n // /** id */\n itemID: number;\n // /** name */\n lan_name: string;\n // /** color */\n color: number;\n // /** image */\n icon: string;\n // /** 用途 */\n lan_channels: string;\n // /** 说明 */\n lan_tips: string;\n \n}\n\nexport class Item {\n itemUID: string; // 道具uid\n itemID: number; // 道具配置id\n pos: number; // 道具存放位置\n num: number; // 道具数量\n\n public constructor(pItem: p_item){\n this.itemUID = pItem.itemUID;\n this.itemID = pItem.itemID;\n this.pos = pItem.pos;\n this.num = pItem.num;\n }\n\n public upValues(pItem: p_item){\n this.itemID = pItem.itemID;\n this.pos = pItem.pos;\n this.num = pItem.num;\n }\n}\n\nexport enum CoinType {\n xingzhuan,\n zuanshi,\n jinbi,\n zhaohuan,\n tiaozhan,\n coin\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('ItenDecUI')\nexport default class ItenDecUI extends BasePanel {\n\n itemid: number;\n @property(Node) Sprite_itemkuang: Node = null;\n @property(Node) Sprite_item: Node = null;\n @property(Node) Label_itemname: Node = null;\n @property(Node) Label_itemdec: Node = null;\n @property(Node) Label_itemtips: Node = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_sure\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n this.itemid = data;\n let itemdata = ItemProxy.Inst.GetItemDataByID(this.itemid);\n if(itemdata!=undefined){\n let Sprite_itemkuang = this.Sprite_itemkuang.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n \n let Sprite_item = this.Sprite_item.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, itemdata.icon);\n \n let Label_itemname = this.Label_itemname.getComponent(Label);\n Label_itemname.string =itemdata.lan_name;\n \n let Label_itemdec = this.Label_itemdec.getComponent(Label);\n Label_itemdec.string =StringUtil.stringFormat(GlobalFunction.GetMsg(20200),itemdata.lan_tips);\n \n let Label_itemtips = this.Label_itemtips.getComponent(Label);\n Label_itemtips.string =StringUtil.stringFormat(GlobalFunction.GetMsg(20201),itemdata.lan_channels);\n }\n }\n}\n","/*\r\n * @Author: dgflash\r\n * @Date: 2021-08-18 17:00:59\r\n * @LastEditors: dgflash\r\n * @LastEditTime: 2022-09-02 14:48:29\r\n */\r\n\r\nimport { error, JsonAsset } from \"cc\";\r\nimport { resolve } from \"path\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\n\r\n/** 资源路径 */\r\nvar path: string = \"config/\";\r\n\r\n/** 数据缓存 */\r\nvar data: Map = new Map();\r\n\r\n/** JSON数据表工具 */\r\nexport class JsonUtil {\r\n /**\r\n * 通知资源名从缓存中获取一个Json数据表\r\n * @param name 资源名\r\n */\r\n static get(name: string): any {\r\n if (data.has(name))\r\n return data.get(name);\r\n }\r\n\r\n /**\r\n * 通知资源名加载Json数据表\r\n * @param name 资源名\r\n * @param callback 资源加载完成回调\r\n */\r\n static load(name: string, callback: Function): void {\r\n if (data.has(name))\r\n callback(data.get(name));\r\n else {\r\n var url = path + name;\r\n ResHelper.load(url, JsonAsset, (err: Error | null, content: JsonAsset) => {\r\n if (err) {\r\n error(err.message);\r\n }\r\n data.set(name, content.json);\r\n callback(content.json)\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 异步加载Json数据表\r\n * @param name 资源名\r\n */\r\n static loadAsync(name: string) {\r\n return new Promise((resolve, reject) => {\r\n if (data.has(name)) {\r\n resolve(data.get(name))\r\n }\r\n else {\r\n var url = path + name;\r\n ResHelper.load(url, JsonAsset, (err: Error | null, content: JsonAsset) => {\r\n if (err) {\r\n error(err.message);\r\n }\r\n data.set(name, content.json);\r\n Logger.logView(\"配置表加载:\" + name);\r\n resolve(content.json)\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 通过指定资源名释放资源\r\n * @param name 资源名\r\n */\r\n static release(name: string) {\r\n var url = path + name;\r\n data.delete(name);\r\n ResHelper.releaseDir(url);\r\n }\r\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator} from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass\nexport default class KeFuLoadingUI extends BasePanel {\n onBtnClicked(e: any, name: string) {\n\n if (name == \"btn_close\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n // this.refreshUI()\n }\n}\n","\n\nimport BasePanel from \"../../../core/component/BasePanel\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { GameManager } from \"../../GameManager\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class KeFuUI extends BasePanel {\n onBtnClicked(e: any, name: string) {\n\n if (name == \"btn_close\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n this.refreshUI()\n }\n\n node_wjq: cc.Node = null;\n\n page_gzh: boolean = false;\n\n sp_code_gzh: cc.Sprite = null;\n sp_code_wjq: cc.Sprite = null;\n refreshUI() {\n this.setSpriteUrl(this.sp_code_gzh, Utils.randomItem(GameManager.Instance().Kefu));\n\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingAccountUI')\nexport default class KingAccountUI extends BasePanel {\n\n @property(Node) Layout_item: Node = null;\n item: Node = null;\n prefabitem: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_sure\") {\n this.close(true)\n } else if (name == \"Button_close\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n\n\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport ConfigManager from \"../../../_config/ConfigManager\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { HttpGame } from \"../../../core/http/HttpGame\";\nimport { BusyNetDone } from \"../../../core/manager/BusyLoadingManager\";\nimport { CommonMsgProxy } from \"../proxy/CommonMsgProxy\";\nimport { dataServerList } from \"../../gameData/dataServerList\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingCdkUI')\nexport default class KingCdkUI extends BasePanel {\n\n @property(Node) Label_name: Node = null;\n\n kingCdk :string;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_sure\") {\n let cade = this.Label_name.getComponent(Label).string;\n console.log(\"cade====\"+cade);\n if(cade!=null){\n this.SendCDKEY(cade);\n }else{\n GlobalFunction.ShowBox5();\n }\n }\n }\n \n SendCDKEY( text :string) {\n // dataUser\n let sysConfig = ConfigManager.GetInstance().getValue(\"sys\");\n\n let severs :string =\"code/convertCode\";\n let version :string = \"1\";\n let chanel :string= \"\";\n let client :string= \"\";\n let sign :string= \"\";\n let code :string= \"\";\n let userId :string= \"\";\n let unitUID :string= \"\";\n let gmServerId :string= \"\";\n version = sysConfig.apiVersion;\n //渠道\n chanel = sysConfig.channel;\n code = text;\n client = \"ANDROID\";\n gmServerId =dataServerList.Instance().selectServer.gmServerId+\"\";//XXXXX\n userId =dataUser.Instance().userId;//XXXXXX\n unitUID = dataUser.Instance().unitUID;\n let str =version + chanel + client + code + userId + unitUID + gmServerId + sysConfig.secretKey;\n sign = Utils.md5(str);\n var obj = {\n apiVersion: version, code: code, userId: userId, unitUID: unitUID,\n gmServerId: gmServerId, channel: chanel, client: client, sign: sign\n };\n HttpGame.sendRequest(severs, obj, (ret) => {\n BusyNetDone();\n var retJson = JSON.parse(ret);\n if (retJson.success == true) {\n //success\n CommonMsgProxy.Inst.ShowCommonMsg(1025,null,()=>{},this.kingCdk); \n this.close(true);\n }\n else {\n BusyNetDone(); \n console.log(ret)\n if(retJson.errCode ==\"1006\"){\n CommonMsgProxy.Inst.ShowCommonMsg(1021); \n }else if(retJson.errCode ==\"1007\"){\n CommonMsgProxy.Inst.ShowCommonMsg(1022); \n }else if(retJson.errCode ==\"1008\"){\n CommonMsgProxy.Inst.ShowCommonMsg(1023); \n }\n else if(retJson.errCode ==\"1009\"){\n CommonMsgProxy.Inst.ShowCommonMsg(1024); \n }else if(retJson.errCode ==\"40\"){\n CommonMsgProxy.Inst.ShowCommonMsg(1017);\n }\n }\n }, null, (msg) => {\n BusyNetDone();\n //faile\n // let strings :string[] =[\"获取\"];\n // CommonMsgProxy.Inst.ShowCommonMsg(1008,strings,()=>{},this.kingCdk); \n })\n }\n\n\n onShow(data: any): void {\n this.kingCdk = this.node.name;\n }\n}\n","/**\n * item config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { p_item,c1200, s1200, s1201, s1202 } from '../../../proto/proto';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { dataUser } from '../../gameData/dataUser';\n\n@res_auto_bind()\nexport class KingCustomerProxy {\n private static _inst: KingCustomerProxy;\n public static get Inst(): KingCustomerProxy {\n if (KingCustomerProxy._inst == null) {\n KingCustomerProxy._inst = new KingCustomerProxy();\n }\n return KingCustomerProxy._inst;\n }\n @res_assign(\"KingCustomer\")\n public KingCustomerDataList: KingCustomer[];\n public InitiCustomerConfig(){\n if (!this.KingCustomerDataList) {\n this.KingCustomerDataList = [];\n }\n let CustomerDataConfig = ConfigManager.GetInstance().getValue(\"KingCustomer\");\n for (var key in CustomerDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"KingCustomer\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.KingCustomerDataList.push(item);\n }\n }\n }\n\n /** 根据id获取item */\n public GetCustomerDataByID(itemID: number) {\n if (this.KingCustomerDataList == null) {\n this.InitiCustomerConfig();\n }\n let data: KingCustomer = this.KingCustomerDataList.find(item => item.customerId == itemID);\n if (data) {\n return data;\n }\n return null;\n }\n}\n\nexport class KingCustomer {\n // /** id */\n customerId: number;\n // /** name */\n lan_nameId: string;\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport ConfigManager from \"../../../_config/ConfigManager\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { HttpGame } from \"../../../core/http/HttpGame\";\nimport { BusyNetDone } from \"../../../core/manager/BusyLoadingManager\";\nimport { CommonMsgProxy } from \"../proxy/CommonMsgProxy\";\nimport { dataServerList } from \"../../gameData/dataServerList\";\nimport { ContactUsDetails, e_action, KingInfoProxy } from \"../proxy/KingInfoProxy\";\nimport { instantiate } from \"cc\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport { KingCustomerProxy } from \"../proxy/KingCustomerProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingCustomerUI')\nexport default class KingCustomerUI extends BasePanel {\n\n @property(Node) Layout_customer: Node = null;\n customer: Node = null;\n prefabcustomer: Node = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_sure\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n\n this.prefabcustomer = this.customer;\n this.Layout_customer.removeAllChildren();\n for (let i = 0; i < KingInfoProxy.Inst.contactUs.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabcustomer);\n if (itemNode) {\n itemNode.parent = this.Layout_customer;\n let data: ContactUsDetails = KingInfoProxy.Inst.contactUs[i];\n\n let Button_get =itemNode.getChildByName(\"Button_get\"); \n this.bindClickButtonEvent(Button_get, data.topic);\n let Label_name = itemNode.getChildByName(\"Label_name\").getComponent(Label);\n let Label_customer = itemNode.getChildByName(\"Label_customer\").getComponent(Label);\n let Label_get = Button_get.getChildByName(\"Label_get\").getComponent(Label);\n Label_name.string = data.topic;\n Label_customer.string=data.content\n if(data.action==e_action.jump){\n Label_get.string = GlobalFunction.GetMsg(10109);\n }else if(data.action==e_action.copy){\n Label_get.string = GlobalFunction.GetMsg(20219);\n }\n\n }\n }\n }\n\n //点击跳转\n bindClickButtonEvent(itemnode: Node, topic: string) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickCustor\";\n clickEventHandler.customEventData = topic;\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickCustor(itemnode, topic) {\n let data = KingInfoProxy.Inst.contactUs.find(item=>item.topic.endsWith(topic));\n if(data){\n if(data.action==e_action.jump){\n // console.log(\"前往网页===\"+data.QQorWeb);\n }else if(data.action==e_action.copy){\n // console.log(\"赋值网页===\"+data.QQorWeb);\n\n if (navigator) {\n var clipboard = navigator.clipboard;\n if (clipboard) {\n console.log(\"复制成功\")\n clipboard.writeText(data.QQorWeb);\n }\n } else {\n console.log(\"复制失败\")\n }\n }\n }\n // WindowManager.Instance().open(GameConst.winPath.MailDecUI, mailid, true);\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { Clothes, ClothesType, KingDressProxy } from \"../proxy/KingDressProxy\";\nimport { instantiate } from \"cc\";\nimport { Buff, BuffPoxy } from \"../proxy/BuffPoxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingDressDecUI')\nexport default class KingDressDecUI extends BasePanel {\n\n @property(Node) Layout_vllage: Node = null;\n vllage: Node = null;\n prefabvllage: Node = null;\n\n @property(Node) Layout_factory: Node = null;\n factory: Node = null;\n prefabfactory: Node = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_sure\") {\n this.close(true)\n }\n }\n ClothesVillageDataList: Clothes[];\n ClothesFactoryDataList: Clothes[];\n Village_mybuff: string[];\n factory_mybuff: string[];\n\n Village_mybuffList: Buff[];\n factory_mybuffList: Buff[];\n onShow(data: any): void {\n if (this.ClothesVillageDataList == undefined) {\n this.ClothesVillageDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.chunluo);\n }\n if (this.ClothesFactoryDataList == undefined) {\n this.ClothesFactoryDataList = KingDressProxy.Inst.GetClothesListMoreByType(ClothesType.zhanshi);\n }\n if (this.Village_mybuff == undefined) {\n this.Village_mybuff = [];\n }\n if (this.factory_mybuff == undefined) {\n this.factory_mybuff = [];\n }\n if (this.Village_mybuffList == undefined) {\n this.Village_mybuffList = [];\n }\n if (this.factory_mybuffList == undefined) {\n this.factory_mybuffList = [];\n }\n this.Village_mybuffList.length=0;\n this.factory_mybuffList.length=0;\n\n for (let i = 0; i < this.ClothesVillageDataList.length; ++i) {\n let clothesData: Clothes = this.ClothesVillageDataList[i];\n if (clothesData.type == 1) {\n for (let t = 0; t < data.ay_mybuff.length; t++) {\n this.Village_mybuff.push(data.ay_mybuff[t]);\n }\n }\n }\n\n\n for (let t = 0; t < this.Village_mybuff.length; t++) {\n let buffdata = BuffPoxy.Inst.getBuffById(Number(this.Village_mybuff[t]));\n if (buffdata) {\n if(this.Village_mybuffList.length==0){\n this.Village_mybuffList.push(buffdata);\n }else{\n let data = this.Village_mybuffList.find(item=>item.buff_type==buffdata.buff_type);\n if(data){\n data.value +=buffdata.value;\n \n }else{\n this.Village_mybuffList.push(buffdata);\n }\n }\n }\n }\n this.prefabvllage = this.vllage;\n this.Layout_vllage.removeAllChildren();\n for (let t = 0; t < this.Village_mybuffList.length; t++){\n\n let itemNode = instantiate(this.prefabvllage);\n if (itemNode) {\n itemNode.parent = this.Layout_vllage;\n let buffdata = this.Village_mybuffList[t];\n if (buffdata) {\n let Label_factoryalldec = itemNode.getChildByName(\"Label_vllagedec\").getComponent(Label);\n Label_factoryalldec.string = buffdata.lan_name;\n let Label_factoryallnum = itemNode.getChildByName(\"Label_vllagenum\").getComponent(Label);\n Label_factoryallnum.string = BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n }\n }\n }\n\n\n\n\n\n\n // this.prefabvllage = this.vllage;\n // this.Layout_vllage.removeAllChildren();\n // for (let t = 0; t < this.Village_mybuff.length; t++) {\n\n // let itemNode = instantiate(this.prefabvllage);\n // if (itemNode) {\n // itemNode.parent = this.Layout_vllage;\n // let buffdata = BuffPoxy.Inst.getBuffById(Number( this.Village_mybuff[t]));\n // if (buffdata) {\n // let Label_factoryalldec = itemNode.getChildByName(\"Label_vllagedec\").getComponent(Label);\n // Label_factoryalldec.string = buffdata.lan_name;\n // let Label_factoryallnum = itemNode.getChildByName(\"Label_vllagenum\").getComponent(Label);\n // Label_factoryallnum.string = BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n // }\n // }\n // }\n\n\n\n\n\n\n\n\n for (let i = 0; i < this.ClothesFactoryDataList.length; ++i) {\n let clothesData: Clothes = this.ClothesFactoryDataList[i];\n if (clothesData.type == 1) {\n for (let t = 0; t < data.factory_mybuff.length; t++) {\n this.factory_mybuff.push(data.factory_mybuff[t]);\n }\n }\n }\n\n for (let t = 0; t < this.factory_mybuff.length; t++) {\n let buffdata = BuffPoxy.Inst.getBuffById(Number(this.factory_mybuff[t]));\n if (buffdata) {\n if(this.factory_mybuffList.length==0){\n this.factory_mybuffList.push(buffdata);\n }else{\n let data = this.factory_mybuffList.find(item=>item.buff_type==buffdata.buff_type);\n if(data){\n data.value +=buffdata.value;\n \n }else{\n this.factory_mybuffList.push(buffdata);\n }\n }\n }\n }\n\n\n this.prefabfactory = this.factory;\n this.Layout_factory.removeAllChildren();\n for (let t = 0; t < this.factory_mybuffList.length; t++) {\n\n let itemNode = instantiate(this.prefabvllage);\n if (itemNode) {\n itemNode.parent = this.Layout_vllage;\n let buffdata = this.factory_mybuffList[t];\n if (buffdata) {\n let Label_factoryalldec = itemNode.getChildByName(\"Label_factorydec\").getComponent(Label);\n Label_factoryalldec.string = buffdata.lan_name;\n let Label_factoryallnum = itemNode.getChildByName(\"Label_factorynum\").getComponent(Label);\n Label_factoryallnum.string = BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n }\n }\n }\n \n}\n\n}\n","/**\n * MailProxy config配置文件\n */\nimport { _decorator } from 'cc';\nimport { c1012, s1012, c1013, s1013 } from '../../../proto/proto';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class KingDressProxy {\n private static _inst: KingDressProxy;\n public static get Inst(): KingDressProxy {\n if (KingDressProxy._inst == null) {\n KingDressProxy._inst = new KingDressProxy();\n }\n return KingDressProxy._inst;\n }\n @res_assign(\"Clothes\")\n public ClothesDataList: Clothes[];\n public InitClothesConfig() {\n if (this.ClothesDataList == null) {\n this.ClothesDataList = [];\n }\n let ClothesDataConfig = ConfigManager.GetInstance().getValue(\"Clothes\")\n for (var key in ClothesDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Clothes\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.ClothesDataList.push(item);\n }\n }\n }\n\n /** 根据类型获取ClothesList */\n public GetClothesListByType(type: number) {\n if (this.ClothesDataList == null) {\n this.InitClothesConfig();\n }\n let ClothesDataList: Clothes[]=[];\n for(let i=0;i=type){\n ClothesDataList.push(data);\n }\n }\n return ClothesDataList;\n } \n /***==========================服务器数据存储============================== */\n\n public PicServerList :number[];\n public SendC1012(pic_id :number) {\n //用户切换个人头像\n // console.log(\"===================C1700====================\");\n var c1012: c1012 = {pic_id:pic_id};\n send2client(\"c1012\", c1012);\n }\n\n public SendC1013() {\n //用户切换个人头像\n // console.log(\"===================C1700====================\");\n var c1013: c1013 = {};\n send2client(\"c1013\", c1013);\n }\n}\n\n// /**用户切换个人头像 */\nexport function do_s1012(s1012: s1012) {\n console.log(\"===================接收是S1012====================\" + s1012.result);\n if (s1012.result == undefined) {\n \n EventManager.Inst.event(EventType.REFRESH_ROLEID_UI,s1012.pic_id);\n EventManager.Inst.event(EventType.REFRESH_ROLE_UI);\n EventManager.Inst.event(EventType.REFRESH_KINGIMG_UI,s1012.pic_id);\n EventManager.Inst.event(EventType.UPDATE_MAIN_HREADIMG_CHANGE,s1012.pic_id);\n \n }\n}\n\n// /**解锁头像列表 */\nexport function do_s1013(s1013: s1013) {\n console.log(\"===================接收是S1013====================\" + s1013.pic_list);\n if(KingDressProxy.Inst.PicServerList==undefined){\n KingDressProxy.Inst.PicServerList=[];\n }\n KingDressProxy.Inst.PicServerList.length=0;\n if (s1013.pic_list !=undefined) {\n KingDressProxy.Inst.PicServerList = s1013.pic_list;\n // for (let index = 0; index < s1013.pic_list.length; index++) {\n // const element = s1013.pic_list[index];\n // console.log(\"1013列表==============\"+element);\n \n // }\n }\n EventManager.Inst.event(EventType.REFRESH_ROLE_UI);\n}\n// //** 领取奖励-支持一键领取,一键领取的时候,所有没奖励邮件会变为已读 */\n// export function do_s1702(s1702: s1702) {\n// // console.log(\"===================接收是s1702================同步已领奖的所有功能id列表,上线和有变化时后端主动推====\"+s1702.rewards);\n// if (s1702.result == undefined) {\n// if (s1702.rewards && s1702.rewards.length > 0)\n// var data = new BoxData\n// {\n// data.rewards = s1702.rewards;\n// };\n// GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n// }\n// EventManager.Inst.event(EventType.REFRESH_MAILDEC_UI);\n// }\n\nexport class Clothes {\n \n clothes_id: number;/** 外观ID */\n \n item_id: number; /** 道具ID */\n \n type: ClothesType; /**类型 */\n \n is_default: number;//1默认 /** 默认 */\n \n model_name: string; /** 皮肤名字 */\n \n ay_allbuff: string[];/** 使用效果*/\n \n ay_mybuff: string[]; /** 拥有效果 */\n\n lan_description: string; /** 描述 */\n}\n\nexport enum ClothesType {\n touxiang = 1, //头像\n xiangkuang = 2, //相框\n chenghao = 3, //称号\n chunluo = 4, //村落\n zhanshi = 5, //战士\n fashi = 6, //法师\n chike = 7, //刺客\n pashou = 8, //炮手\n\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { Button } from \"cc\";\nimport { Toggle } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { Clothes, ClothesType, KingDressProxy } from \"../proxy/KingDressProxy\";\nimport { instantiate } from \"cc\";\nimport { Component } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { BuffPoxy } from \"../proxy/BuffPoxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingDressUI')\nexport default class KingDressUI extends BasePanel {\n\n CurrentResId: number;//当前穿戴的头像\n CurrentResKuangId: number;//当前穿戴的头像框\n\n CurrentChooseRoleId: number;//当前选中的头像id\n CurrentChoosePhoneId: number;//当前选中的相框id\n CurrentChooseTitleId: number;//当前选中的称号id\n CurrentChooseVillageId: number;//当前选中的村落id\n CurrentChooseFactorId: number;//当前选中的工厂id\n\n\n //Panle_dress 裝扮\n\n\n PanleDressNodes: Node[] | null = [];\n PanleDressToggles: Toggle[] | null = [];\n\n\n @property(Toggle) Toggle_role: Toggle = null;\n @property(Toggle) Toggle_photo: Toggle = null;\n @property(Toggle) Toggle_title: Toggle = null;\n @property(Toggle) Toggle_village: Toggle = null;\n @property(Toggle) Toggle_factory: Toggle = null;\n\n @property(Node) Panle_role: Node = null;\n @property(Node) Panle_photo: Node = null;\n @property(Node) Panle_title: Node = null;\n @property(Node) Panle_village: Node = null;\n @property(Node) Panle_factory: Node = null;\n\n\n @property(Button) Button_Roleuse: Button = null;//使用按钮\n @property(Button) Button_Phonuse: Button = null;//使用按钮\n @property(Button) Button_Titleuse: Button = null;//使用按钮\n @property(Button) Button_Villageuse: Button = null;//使用按钮\n @property(Button) Button_Factoryuse: Button = null;//使用按钮\n\nRoleUsesprite: Sprite = null;//使用按钮\nPhonUsesprite: Sprite = null;//使用按钮\nTitleUsesprite: Sprite = null;//使用按钮\nVillageUsesprite: Sprite = null;//使用按钮\nFactoryUsesprite: Sprite = null;//使用按钮\n //role\n @property(Node) Sprite_rolekuangbig: Node = null;\n @property(Node) Sprite_rolebig: Node = null;\n @property(Node) Label_roledec: Node = null;\n\n @property(Node) Layout_role: Node = null;\n role: Node = null;\n prefabrole: Node = null;\n\n //phone\n @property(Node) Sprite_photobig: Node = null;\n @property(Node) Label_phondec: Node = null;\n\n @property(Node) Layout_photo: Node = null;\n photo: Node = null;\n prefabphoto: Node = null;\n\n //title\n @property(Node) Sprite_titlekuangbig: Node = null;\n @property(Node) Sprite_titlebig: Node = null;\n @property(Node) Label_titledec: Node = null;\n\n @property(Node) Layout_title: Node = null;\n title: Node = null;\n prefabtitle: Node = null;\n //village\n @property(Button) Button_villages: Button = null;\n @property(Node) Sprite_villagekuangbig: Node = null;\n @property(Node) Sprite_villagebig: Node = null;\n @property(Node) Label_tvillagedec: Node = null;\n @property(Node) Label_kongvillage: Node = null;\n @property(Node) Label_kongfactory: Node = null;\n //使用效果\n @property(Node) Layout_villageall: Node = null;\n villageall: Node = null;\n prefabvillageall: Node = null;\n\n //拥有效果\n @property(Node) Layout_villagemy: Node = null;\n villagemy: Node = null;\n prefabvillagemy: Node = null;\n //村庄列表\n @property(Node) Layout_village: Node = null;\n village: Node = null;\n prefabvillage: Node = null;\n\n //factory\n @property(Button) Button_factorys: Button = null;\n @property(Node) Sprite_factorykuangbig: Node = null;\n @property(Node) Sprite_factorybig: Node = null;\n @property(Node) Label_factordec: Node = null;\n\n //使用效果\n @property(Node) Layout_factoryall: Node = null;\n factoryall: Node = null;\n prefabfactoryall: Node = null;\n\n //拥有效果\n @property(Node) Layout_factorymy: Node = null;\n factorymy: Node = null;\n prefabfactorymy: Node = null;\n\n\n\n \n\n //工厂列表\n @property(Node) Layout_factory: Node = null;\n factory: Node = null;\n prefabfactory: Node = null;\n\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }else if (name == \"Button_Roleuse\") {\n if(this.RoleUsesprite.grayscale)return;\n if(dataUser.Instance().resId!=this.CurrentChooseRoleId){\n KingDressProxy.Inst.SendC1012(this.CurrentChooseRoleId);\n }\n\n }\n else if (name == \"Button_Phonuse\") {\n this.close(true)\n }\n else if (name == \"Button_Titleuse\") {\n this.close(true)\n }\n else if (name == \"Button_Villageuse\") {\n this.close(true)\n }\n else if (name == \"Button_Factoryuse\") {\n this.close(true)\n }\n else if (name == \"Toggle_role\") {\n if(this.Panle_role.active)return;\n this.showPanel(this.Panle_role, this.PanleDressNodes);\n }\n else if (name == \"Toggle_photo\") {\n if(this.Panle_photo.active)return;\n this.showPanel(this.Panle_photo, this.PanleDressNodes);\n }\n else if (name == \"Toggle_title\") {\n if(this.Panle_title.active)return;\n this.showPanel(this.Panle_title, this.PanleDressNodes);\n }\n else if (name == \"Toggle_village\") {\n if(this.Panle_village.active)return;\n this.showPanel(this.Panle_village, this.PanleDressNodes);\n }\n else if (name == \"Toggle_factory\") {\n if(this.Panle_factory.active)return;\n this.showPanel(this.Panle_factory, this.PanleDressNodes);\n }\n else if (name == \"Button_factorys\") {\n WindowManager.Instance().open(GameConst.winPath.KingDressDecUI, null, true);\n }\n else if (name == \"Button_villages\") {\n WindowManager.Instance().open(GameConst.winPath.KingDressDecUI, null, true);\n }\n }\n start() {\n this.addEvent();\n KingDressProxy.Inst.SendC1013();//解锁头像列表\n\n}\n\nprivate addEvent() {\n EventManager.Inst.on(EventType.REFRESH_ROLE_UI, this, this.showPanleRole);\n EventManager.Inst.on(EventType.REFRESH_ROLEID_UI, this, this.SetRolId);\n}\n onShow(data: any): void {\n this.CurrentResId = dataUser.Instance().resId;\n this.CurrentResKuangId = dataUser.Instance().frameId;\n this.RoleUsesprite =this.Button_Roleuse.node.getChildByName(\"Sprite\").getComponent(Sprite);\n this.PhonUsesprite =this.Button_Phonuse.node.getChildByName(\"Sprite\").getComponent(Sprite);\n this.TitleUsesprite =this.Button_Titleuse.node.getChildByName(\"Sprite\").getComponent(Sprite);\n this.VillageUsesprite =this.Button_Villageuse.node.getChildByName(\"Sprite\").getComponent(Sprite);\n this.FactoryUsesprite =this.Button_Factoryuse.node.getChildByName(\"Sprite\").getComponent(Sprite);\n if (this.PanleDressNodes.length == 0) {\n this.PanleDressNodes.push(this.Panle_role);\n this.PanleDressNodes.push(this.Panle_photo);\n this.PanleDressNodes.push(this.Panle_title);\n this.PanleDressNodes.push(this.Panle_village);\n this.PanleDressNodes.push(this.Panle_factory);\n }\n\n this.showPanel(this.Panle_role, this.PanleDressNodes);\n\n if (this.PanleDressToggles.length == 0) {\n this.PanleDressToggles.push(this.Toggle_role);\n this.PanleDressToggles.push(this.Toggle_photo);\n this.PanleDressToggles.push(this.Toggle_title);\n this.PanleDressToggles.push(this.Toggle_village);\n this.PanleDressToggles.push(this.Toggle_factory);\n }\n\n this.showToggle(this.Toggle_role, this.PanleDressToggles);\n\n\n this.showPanlePhone();\n this.showPanleTitle();\n this.showPanleVillage();\n this.showPanleFactory();\n }\n\n/**PanelRole */\n ClothesRoleDataList: Clothes[];\n SetTopPanelRole() {\n //选中数据\n let choosebk = this.Sprite_rolekuangbig.getComponent(Sprite);\n let Sprite_rolebig = this.Sprite_rolebig.getComponent(Sprite);\n let Label_dec = this.Label_roledec.getComponent(Label);\n\n if(this.CurrentChooseRoleId==undefined){\n this.CurrentChooseRoleId=this.CurrentResId==undefined? 10001 :this.CurrentResId;\n }\n if (this.ClothesRoleDataList == undefined) {\n this.ClothesRoleDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.touxiang);\n }\n let data = this.ClothesRoleDataList.find(item => item.clothes_id == this.CurrentChooseRoleId);\n if (data) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(data.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(choosebk, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }else{\n GlobalFunction.SetSpriteFrame(choosebk, \"ui_pinzhi_lan\");\n }\n if (data.model_name == \"\") {\n GlobalFunction.SetSpriteFrame(Sprite_rolebig, itemdata.icon);\n\n } else {\n GlobalFunction.SetSpriteFrame(Sprite_rolebig, data.model_name);\n }\n\n Label_dec.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20176), data.lan_description);\n }\n }\n SetRolId(data :number) {\n\n this.CurrentResId = data;\n }\n\n showPanleRole() {\n this.SetTopPanelRole();\n this.RoleUsesprite.grayscale=this.CurrentChooseRoleId==this.CurrentResId;\n this.prefabrole = this.role;\n this.Layout_role.removeAllChildren();\n for (let i = 0; i < this.ClothesRoleDataList.length; ++i) {\n let itemNode = instantiate(this.prefabrole);\n if (itemNode) {\n itemNode.parent = this.Layout_role;\n let clothesData: Clothes = this.ClothesRoleDataList[i];\n\n let Button_role = itemNode.getChildByName(\"Button_role\");\n\n let Sprite_rolekuang = Button_role.getChildByName(\"Sprite_rolekuang\").getComponent(Sprite);\n let Sprite_role = Button_role.getChildByName(\"Sprite_role\").getComponent(Sprite);\n let itemdata = ItemProxy.Inst.GetItemDataByID(clothesData.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(Sprite_rolekuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }\n if (clothesData.model_name == \"\") {\n GlobalFunction.SetSpriteFrame(Sprite_role, itemdata.icon);\n\n } else {\n GlobalFunction.SetSpriteFrame(Sprite_role, clothesData.model_name);\n }\n let Sprite_rolered = Button_role.getChildByName(\"Sprite_rolered\");\n Sprite_rolered.active = false;\n let rolelock = Button_role.getChildByName(\"rolelock\");\n rolelock.active = true;\n if(KingDressProxy.Inst.PicServerList.length!=0){\n let data = KingDressProxy.Inst.PicServerList.find(item=>item==clothesData.clothes_id);\n if(data){\n rolelock.active = false;\n }\n }\n let Sprite_rolechoose = Button_role.getChildByName(\"Sprite_rolechoose\");\n Sprite_rolechoose.active = this.CurrentChooseRoleId == clothesData.clothes_id;\n this.bindClickBtnRoleEvent(Button_role, clothesData.clothes_id);\n \n }\n }\n\n }\n //点击头像\n bindClickBtnRoleEvent(itemnode: Node, clotheid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickRole\";\n clickEventHandler.customEventData = clotheid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n btnsprite :Sprite;\n CallOnclickRole(itemnode, clotheid) {\n let node = itemnode.target;\n let id = parseInt(clotheid);\n if (this.CurrentChooseRoleId == id) return;\n for (let i = 0; i < this.Layout_role.children.length; i++) {\n let node1 = this.Layout_role.children[i];\n let Button_role = node1.getChildByName(\"Button_role\");\n let Sprite_rolechoose = Button_role.getChildByName(\"Sprite_rolechoose\");\n if (Sprite_rolechoose.active) {\n Sprite_rolechoose.active = false;\n }\n }\n node.getChildByName(\"Sprite_rolechoose\").active = true;\n this.CurrentChooseRoleId = id;\n this.SetTopPanelRole();\n // let RoleBtn = this.Button_Roleuse.node.getChildByName(\"Sprite\").getComponent(Sprite);\n if(KingDressProxy.Inst.PicServerList.length!=0){\n let data = KingDressProxy.Inst.PicServerList.find(item=>item==this.CurrentChooseRoleId);\n if(data){\n this.RoleUsesprite.grayscale=this.CurrentChooseRoleId==this.CurrentResId;\n }else{\n this.RoleUsesprite.getComponent(Sprite).grayscale=true;\n }\n }\n }\n\n/**PanelPhone */\nClothesPhoneDataList: Clothes[];\nSetTopPanelPhone() {\n //选中数据\n let Sprite_photobig = this.Sprite_photobig.getComponent(Sprite);\n let Label_dec = this.Label_phondec.getComponent(Label);\n if (this.ClothesPhoneDataList == undefined) {\n this.ClothesPhoneDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.xiangkuang);\n }\n\n if(this.CurrentChoosePhoneId==undefined){\n this.CurrentChoosePhoneId=this.CurrentResKuangId==undefined? 20001 :this.CurrentResKuangId;\n }\n let data = this.ClothesPhoneDataList.find(item => item.clothes_id == this.CurrentChoosePhoneId);\n if (data) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(data.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteHeadFrame(Sprite_photobig, itemdata.icon);\n }else{\n GlobalFunction.SetSpriteHeadFrame(Sprite_photobig, \"ui_head\");\n }\n Label_dec.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20176), data.lan_description);\n }\n}\n showPanlePhone() {\n this.SetTopPanelPhone();\n\n this.PhonUsesprite.grayscale=this.CurrentChoosePhoneId== this.CurrentResKuangId;\n this.prefabphoto = this.photo;\n this.Layout_photo.removeAllChildren();\n for (let i = 0; i < this.ClothesPhoneDataList.length; ++i) {\n let itemNode = instantiate(this.prefabphoto);\n if (itemNode) {\n itemNode.parent = this.Layout_photo;\n let clothesData: Clothes = this.ClothesPhoneDataList[i];\n\n\n let Button_photo = itemNode.getChildByName(\"Button_photo\");\n\n let Sprite_photo = Button_photo.getChildByName(\"Sprite_photo\").getComponent(Sprite);\n let itemdata = ItemProxy.Inst.GetItemDataByID(clothesData.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteHeadFrame(Sprite_photo, itemdata.icon);\n }else{\n GlobalFunction.SetSpriteHeadFrame(Sprite_photo, \"ui_head\");\n }\n let Sprite_rolered = Button_photo.getChildByName(\"Sprite_photored\");\n Sprite_rolered.active = false;\n let rolelock = Button_photo.getChildByName(\"photolock\");\n rolelock.active = false;\n let Sprite_photochoose = Button_photo.getChildByName(\"Sprite_photochoose\");\n Sprite_photochoose.active = this.CurrentChoosePhoneId == clothesData.clothes_id;\n this.bindClickBtnPhoneEvent(Button_photo, clothesData.clothes_id);\n }\n }\n\n }\n //点击相框\n bindClickBtnPhoneEvent(itemnode: Node, clotheid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickPhone\";\n clickEventHandler.customEventData = clotheid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n}\n\nCallOnclickPhone(itemnode, clotheid) {\n let node = itemnode.target;\n let id = parseInt(clotheid);\n if (this.CurrentChoosePhoneId == id) return;\n for (let i = 0; i < this.Layout_photo.children.length; i++) {\n let node1 = this.Layout_photo.children[i];\n let Button_photo = node1.getChildByName(\"Button_photo\");\n let Sprite_photochoose = Button_photo.getChildByName(\"Sprite_photochoose\");\n if (Sprite_photochoose.active) {\n Sprite_photochoose.active = false;\n }\n }\n node.getChildByName(\"Sprite_photochoose\").active = true;\n this.CurrentChoosePhoneId = id;\n this.SetTopPanelPhone();\n}\n\n\n /** 称号*/\n\nClothesTitleDataList: Clothes[];\nSetTopTitlePhone() {\n //选中数据\n let Sprite_titlekuangbig = this.Sprite_titlekuangbig.getComponent(Sprite);\n let Sprite_titlebig = this.Sprite_titlebig.getComponent(Sprite);\n let Label_dec = this.Label_titledec.getComponent(Label);\n if (this.ClothesTitleDataList == undefined) {\n this.ClothesTitleDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.chenghao);\n }\nif(this.CurrentChooseTitleId==undefined){\n this.CurrentChooseTitleId=30001;\n}\n let data = this.ClothesTitleDataList.find(item => item.clothes_id == this.CurrentChooseTitleId);\n if (data) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(data.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(Sprite_titlekuangbig, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }\n GlobalFunction.SetSpriteFrame(Sprite_titlebig, data.model_name);\n Label_dec.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20176), data.lan_description);\n }\n}\n showPanleTitle() {\n this.SetTopTitlePhone();\n this.TitleUsesprite.grayscale=true;\n this.prefabtitle = this.title;\n this.Layout_title.removeAllChildren();\n for (let i = 0; i < this.ClothesTitleDataList.length; ++i) {\n let itemNode = instantiate(this.prefabtitle);\n if (itemNode) {\n itemNode.parent = this.Layout_title;\n let clothesData: Clothes = this.ClothesTitleDataList[i];\n let Button_title = itemNode.getChildByName(\"Button_title\");\n\n let Sprite_titlekuang = Button_title.getChildByName(\"Sprite_titlekuang\").getComponent(Sprite);\n let Sprite_title = Button_title.getChildByName(\"Sprite_title\").getComponent(Sprite);\n let itemdata = ItemProxy.Inst.GetItemDataByID(clothesData.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(Sprite_titlekuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }\n\n GlobalFunction.SetSpriteFrame(Sprite_title, clothesData.model_name);\n \n let Sprite_rolered = Button_title.getChildByName(\"Sprite_titlered\");\n Sprite_rolered.active = false;\n let rolelock = Button_title.getChildByName(\"titlelock\");\n rolelock.active = clothesData.type!=1;\n let Sprite_rolechoose = Button_title.getChildByName(\"Sprite_titlechoose\");\n Sprite_rolechoose.active = this.CurrentChooseTitleId == clothesData.clothes_id;\n this.bindClickBtnTitleEvent(Button_title, clothesData.clothes_id);\n }\n }\n }\n //点击称号\n bindClickBtnTitleEvent(itemnode: Node, clotheid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickTitle\";\n clickEventHandler.customEventData = clotheid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n}\n\nCallOnclickTitle(itemnode, clotheid) {\n let node = itemnode.target;\n let id = parseInt(clotheid);\n if (this.CurrentChooseTitleId == id) return;\n for (let i = 0; i < this.Layout_title.children.length; i++) {\n let node1 = this.Layout_title.children[i];\n let Button_role = node1.getChildByName(\"Button_title\");\n let Sprite_rolechoose = Button_role.getChildByName(\"Sprite_titlechoose\");\n if (Sprite_rolechoose.active) {\n Sprite_rolechoose.active = false;\n }\n }\n node.getChildByName(\"Sprite_titlechoose\").active = true;\n this.CurrentChooseTitleId = id;\n this.showPanleTitle();\n}\n\n\n\n/**村庄 */\nClothesVillageDataList: Clothes[];\nSetTopVillage(){\n //选中数据\n let Sprite_villagekuangbig = this.Sprite_villagekuangbig.getComponent(Sprite);\n let Sprite_villagebig = this.Sprite_villagebig.getComponent(Sprite);\n let Label_tvillagedec = this.Label_tvillagedec.getComponent(Label);\n if (this.ClothesVillageDataList == undefined) {\n this.ClothesVillageDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.chunluo);\n }\n\n if(this.CurrentChooseVillageId==undefined){\n this.CurrentChooseVillageId=40001;\n }\n\n let data = this.ClothesVillageDataList.find(item => item.clothes_id == this.CurrentChooseVillageId);\n if (data) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(data.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(Sprite_villagekuangbig, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }\n GlobalFunction.SetSpriteFrame(Sprite_villagebig, data.model_name);\n Label_tvillagedec.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20176), data.lan_description);\n\n//使用傚果\nthis.prefabvillageall = this.villageall;\nthis.Layout_villageall.removeAllChildren();\n\nthis.Label_kongvillage.active = data.ay_allbuff==undefined||data.ay_allbuff.length==0;\nfor (let i = 0; i < data.ay_allbuff.length; ++i) {\n let itemNode = instantiate(this.prefabvillageall);\n if (itemNode) {\n itemNode.parent = this.Layout_villageall;\n let buffdata =BuffPoxy.Inst.getBuffById(Number(data.ay_allbuff[i]));\n if(buffdata){\n let Label_factoryalldec = itemNode.getChildByName(\"Label_villagedec\").getComponent(Label);\n Label_factoryalldec.string = buffdata.lan_name;\n let Label_factoryallnum = itemNode.getChildByName(\"Label_villagenum\").getComponent(Label);\n Label_factoryallnum.string =BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n }\n }\n}\n//擁有傚果\nthis.prefabvillagemy = this.villagemy;\nthis.Layout_villagemy.removeAllChildren();\nfor (let i = 0; i < data.ay_mybuff.length; ++i) {\n let itemNode = instantiate(this.prefabvillagemy);\n if (itemNode) {\n itemNode.parent = this.Layout_villagemy;\n let buffdata =BuffPoxy.Inst.getBuffById(Number(data.ay_mybuff[i]));\n if(buffdata){\n let Label_factoryalldec = itemNode.getChildByName(\"Label_villagemydec\").getComponent(Label);\n Label_factoryalldec.string = buffdata.lan_name;\n let Label_factoryallnum = itemNode.getChildByName(\"Label_villagenum\").getComponent(Label);\n Label_factoryallnum.string =BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n }\n }\n}\n\n }\n\n\n\n\n}\n showPanleVillage() {\n this.SetTopVillage();\n this.VillageUsesprite.grayscale=true;\n this.prefabvillage = this.village;\n this.Layout_village.removeAllChildren();\n for (let i = 0; i < this.ClothesVillageDataList.length; ++i) {\n let itemNode = instantiate(this.prefabvillage);\n if (itemNode) {\n itemNode.parent = this.Layout_village;\n let clothesData: Clothes = this.ClothesVillageDataList[i];\n\n let Button_village = itemNode.getChildByName(\"Button_village\");\n\n let Sprite_villagekuang = Button_village.getChildByName(\"Sprite_villagekuang\").getComponent(Sprite);\n let Sprite_village = Button_village.getChildByName(\"Sprite_village\").getComponent(Sprite);\n let itemdata = ItemProxy.Inst.GetItemDataByID(clothesData.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(Sprite_villagekuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }\n GlobalFunction.SetSpriteFrame(Sprite_village, clothesData.model_name);\n \n let Sprite_rolered = Button_village.getChildByName(\"Sprite_villagered\");\n Sprite_rolered.active = false;\n let rolelock = Button_village.getChildByName(\"villagelock\");\n rolelock.active = false;\n let Sprite_rolechoose = Button_village.getChildByName(\"Sprite_villagechoose\");\n Sprite_rolechoose.active = this.CurrentChooseVillageId == clothesData.clothes_id;\n this.bindClickBtnVillageEvent(Button_village, clothesData.clothes_id);\n\n }\n }\n\n }\n\n //点击村落\n bindClickBtnVillageEvent(itemnode: Node, clotheid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickVillage\";\n clickEventHandler.customEventData = clotheid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n}\n\nCallOnclickVillage(itemnode, clotheid) {\n let node = itemnode.target;\n let id = parseInt(clotheid);\n if (this.CurrentChooseTitleId == id) return;\n for (let i = 0; i < this.Layout_village.children.length; i++) {\n let node1 = this.Layout_village.children[i];\n let Button_role = node1.getChildByName(\"Button_village\");\n let Sprite_rolechoose = Button_role.getChildByName(\"Sprite_villagechoose\");\n if (Sprite_rolechoose.active) {\n Sprite_rolechoose.active = false;\n }\n }\n node.getChildByName(\"Sprite_villagechoose\").active = true;\n this.CurrentChooseVillageId = id;\n this.SetTopVillage();\n}\n\n\n\n\n\n\n\n\n/**工厂 */\nClothesFactoryDataList: Clothes[];\nSetTopFactory(){\n //选中数据\n let Sprite_factorykuangbig = this.Sprite_factorykuangbig.getComponent(Sprite);\n let Sprite_factorybig = this.Sprite_factorybig.getComponent(Sprite);\n let Label_factordec = this.Label_factordec.getComponent(Label);\n if (this.ClothesFactoryDataList == undefined) {\n this.ClothesFactoryDataList = KingDressProxy.Inst.GetClothesListMoreByType(ClothesType.zhanshi);\n }\n\n if(this.CurrentChooseFactorId==undefined){\n this.CurrentChooseFactorId=50001;\n }\n\n let data = this.ClothesFactoryDataList.find(item => item.clothes_id == this.CurrentChooseFactorId);\n if (data) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(data.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(Sprite_factorykuangbig, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }\n GlobalFunction.SetSpriteFrame(Sprite_factorybig, data.model_name);\n Label_factordec.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20176), data.lan_description);\n\n//使用傚果\nthis.prefabfactoryall = this.factoryall;\nthis.Layout_factoryall.removeAllChildren();\n\nthis.Label_kongfactory.active = data.ay_allbuff==undefined||data.ay_allbuff.length==0;\nfor (let i = 0; i < data.ay_allbuff.length; ++i) {\n let itemNode = instantiate(this.prefabfactoryall);\n if (itemNode) {\n itemNode.parent = this.Layout_factoryall;\n let buffdata =BuffPoxy.Inst.getBuffById(Number(data.ay_allbuff[i]));\n if(buffdata){\n let Label_factoryalldec = itemNode.getChildByName(\"Label_factoryalldec\").getComponent(Label);\n Label_factoryalldec.string = buffdata.lan_name;\n let Label_factoryallnum = itemNode.getChildByName(\"Label_factoryallnum\").getComponent(Label);\n Label_factoryallnum.string =BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n }\n }\n}\n//擁有傚果\nthis.prefabfactorymy = this.factorymy;\nthis.Layout_factorymy.removeAllChildren();\n\nfor (let i = 0; i < data.ay_mybuff.length; ++i) {\n let itemNode = instantiate(this.prefabfactorymy);\n if (itemNode) {\n itemNode.parent = this.Layout_factorymy;\n let buffdata =BuffPoxy.Inst.getBuffById(Number(data.ay_mybuff[i]));\n if(buffdata){\n let Label_factoryalldec = itemNode.getChildByName(\"Label_factorymydec\").getComponent(Label);\n Label_factoryalldec.string = buffdata.lan_name;\n let Label_factoryallnum = itemNode.getChildByName(\"Label_factorymymynum\").getComponent(Label);\n Label_factoryallnum.string =BuffPoxy.Inst.ShowBuffDec(buffdata.buff_id);\n }\n }\n}\n\n\n\n }\n\n\n\n\n}\n showPanleFactory() {\n this.SetTopFactory();\n this.FactoryUsesprite.grayscale=true;\n this.prefabfactory = this.factory;\n this.Layout_factory.removeAllChildren();\n for (let i = 0; i < this.ClothesFactoryDataList.length; ++i) {\n let itemNode = instantiate(this.prefabfactory);\n if (itemNode) {\n itemNode.parent = this.Layout_factory;\n let clothesData: Clothes = this.ClothesFactoryDataList[i];\n\n let Button_factory = itemNode.getChildByName(\"Button_factory\");\n\n let Sprite_factorykuang = Button_factory.getChildByName(\"Sprite_factorykuang\").getComponent(Sprite);\n let Sprite_factory = Button_factory.getChildByName(\"Sprite_factory\").getComponent(Sprite);\n let itemdata = ItemProxy.Inst.GetItemDataByID(clothesData.item_id);\n if (itemdata) {\n GlobalFunction.SetSpriteFrame(Sprite_factorykuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n }\n GlobalFunction.SetSpriteFrame(Sprite_factory, clothesData.model_name);\n \n let Sprite_rolered = Button_factory.getChildByName(\"Sprite_factoryred\");\n Sprite_rolered.active = false;\n let rolelock = Button_factory.getChildByName(\"factorylock\");\n rolelock.active = false;\n let Sprite_rolechoose = Button_factory.getChildByName(\"Sprite_factorychoose\");\n Sprite_rolechoose.active = this.CurrentChooseFactorId == clothesData.clothes_id;\n this.bindClickBtnFactoryEvent(Button_factory, clothesData.clothes_id);\n }\n }\n\n }\n\n\n //点击工厂\n bindClickBtnFactoryEvent(itemnode: Node, clotheid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickFactory\";\n clickEventHandler.customEventData = clotheid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n}\n\nCallOnclickFactory(itemnode, clotheid) {\n let node = itemnode.target;\n let id = parseInt(clotheid);\n if (this.CurrentChooseFactorId == id) return;\n for (let i = 0; i < this.Layout_factory.children.length; i++) {\n let node1 = this.Layout_factory.children[i];\n let Button_role = node1.getChildByName(\"Button_factory\");\n let Sprite_rolechoose = Button_role.getChildByName(\"Sprite_factorychoose\");\n if (Sprite_rolechoose.active) {\n Sprite_rolechoose.active = false;\n }\n }\n node.getChildByName(\"Sprite_factorychoose\").active = true;\n this.CurrentChooseFactorId = id;\n this.SetTopFactory();\n}\n showPanel(node: Node, panleNodes: Node[]) {\n for (let i = 0; i < panleNodes.length; ++i) {\n if (node.name == panleNodes[i].name) {\n if (!panleNodes[i].active) {\n panleNodes[i].active = true;\n GlobalFunction.OpenTitlePoup(this.node.name, node.name);\n }\n } else {\n panleNodes[i].active = false;\n }\n }\n }\n\n\n showToggle(node: Toggle, togglenode: Toggle[]) {\n for (let i = 0; i < togglenode.length; ++i) {\n if (node.name == togglenode[i].name) {\n if (!togglenode[i].isChecked) {\n togglenode[i].isChecked = true;\n }\n } else {\n togglenode[i].isChecked = false;\n }\n }\n }\n}\n","/**\n * KingInfoProxy config配置文件\n */\nimport { _decorator } from 'cc';\nimport { c1008, s1008, c1009, s1009 } from '../../../proto/proto';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { dataUser } from '../../gameData/dataUser';\nimport { sys } from 'cc';\nimport Utils from '../../../core/utils/Utils';\nimport { HttpGame } from '../../../core/http/HttpGame';\nimport { BusyNetDone } from '../../../core/manager/BusyLoadingManager';\nimport { CommonMsgProxy } from './CommonMsgProxy';\nimport { json } from 'stream/consumers';\nimport { KingCustomerProxy } from './KingCustomerProxy';\n@res_auto_bind()\nexport class KingInfoProxy {\n private static _inst: KingInfoProxy;\n public static get Inst(): KingInfoProxy {\n if (KingInfoProxy._inst == null) {\n KingInfoProxy._inst = new KingInfoProxy();\n }\n return KingInfoProxy._inst;\n }\n public ContactText: Contact;\n public contactUs: ContactUsDetails[];\n public ServerContactUs: ContactUsDetails[] = [];\n changeName: string;\n public SendC1008(sex: number) {\n console.log(\"dataUser.Instance().nick===\" + dataUser.Instance().nick);\n if (dataUser.Instance().nick != undefined) return;\n //获取随机名字\n // console.log(\"==============发送====c1008=============\"+sex);\n var c1008: c1008 = { sex: sex };\n send2client(\"c1008\", c1008);\n }\n\n public SendC1009(nickname: string) {\n //改变名字 \n // console.log(\"==============发送====c1009=============\"+nickname);\n this.changeName = nickname;\n var c1009: c1009 = { nickname: nickname };\n send2client(\"c1009\", c1009);\n }\n\n public GetContactContent() {\n let sysConfig = ConfigManager.GetInstance().getValue(\"sys\");\n let severs: string = \"official/query\";\n let apiVersion: string = \"\";\n let channel: string = \"\";\n let client: string = \"\";\n apiVersion = sysConfig.apiVersion;\n //渠道\n channel = sysConfig.channel;\n client = \"ANDROID\";\n let sign: string = \"\";\n\n let str = apiVersion + channel + client + sysConfig.secretKey;\n sign = Utils.md5(str);\n var obj = {\n apiVersion: apiVersion, channel: channel, client: client, sign: sign\n };\n HttpGame.sendRequest(severs, obj, (ret) => {\n BusyNetDone();\n var retJson = JSON.parse(ret);\n if (retJson.success == true) {\n //success\n this.SetContactText(retJson);\n }\n else {\n BusyNetDone();\n console.log(ret)\n //falie\n // let strings :string[] =[\"聯係我們-获取失败1\"];\n // CommonMsgProxy.Inst.ShowCommonMsg(1008,strings,()=>{}); \n }\n }, null, (msg) => {\n BusyNetDone();\n //faile\n // let strings :string[] =[\"聯係我們-获取失败2\"];\n // CommonMsgProxy.Inst.ShowCommonMsg(1008,strings,()=>{}); \n })\n\n }\n\n public SetContactText(valueList) {\n if (valueList == undefined ||valueList.content == undefined) return;\n if (this.ContactText == undefined) {\n this.ContactText = new Contact();\n }\n this.ContactText.content = valueList.content;\n\n if (this.contactUs == undefined) {\n this.contactUs = [];\n }\n if (this.ContactText == undefined || this.ContactText.content == undefined) {\n return;\n }\n\n this.contactUs.length = 0;\n\n let content1 = new ContactUsDetails();\n content1.topic = KingCustomerProxy.Inst.GetCustomerDataByID(1).lan_nameId; /*GlobalFunction.GetMsg(20220);//官方网站*/;\n content1.QQorWeb = this.ContactText.content.url;\n content1.content = this.ContactText.content.url;\n content1.action = e_action.copy;\n this.contactUs.push(content1);\n\n let content2 = new ContactUsDetails();\n content2.topic = KingCustomerProxy.Inst.GetCustomerDataByID(2).lan_nameId; /*GlobalFunction.GetMsg(20221);//玩家交流群*/;\n content2.QQorWeb = this.ContactText.content.qq;\n content2.content = this.ContactText.content.qq;\n content2.action = e_action.copy;\n this.contactUs.push(content2);\n\n let content3 = new ContactUsDetails();\n content3.topic = KingCustomerProxy.Inst.GetCustomerDataByID(3).lan_nameId; /*GlobalFunction.GetMsg(20222);//微信*/;\n content3.QQorWeb = this.ContactText.content.wechat;\n content3.content = this.ContactText.content.wechat;\n content3.action = e_action.copy;\n this.contactUs.push(content3);\n\n let content4 = new ContactUsDetails();\n content4.topic = KingCustomerProxy.Inst.GetCustomerDataByID(4).lan_nameId; /*GlobalFunction.GetMsg(20223);//微博*/;\n content4.QQorWeb = this.ContactText.content.weibo;\n content4.content = this.ContactText.content.weibo;\n content4.action = e_action.copy;\n this.contactUs.push(content4);\n\n let content5 = new ContactUsDetails();\n content5.topic = KingCustomerProxy.Inst.GetCustomerDataByID(5).lan_nameId; /*GlobalFunction.GetMsg(20224);//贴吧*/;\n content5.QQorWeb = this.ContactText.content.tieba;\n content5.content = this.ContactText.content.tieba;\n content5.action = e_action.copy;\n this.contactUs.push(content5);\n\n let content6 = new ContactUsDetails();\n content6.topic = KingCustomerProxy.Inst.GetCustomerDataByID(6).lan_nameId; /*GlobalFunction.GetMsg(20225);//社区*/;\n content6.QQorWeb = this.ContactText.content.sq;\n content6.content = this.ContactText.content.sq;\n content6.action = e_action.copy;\n this.contactUs.push(content6);\n\n for (let i = this.contactUs.length - 1; i >= 0; i--) {\n if( this.contactUs[i]!=null && this.contactUs[i].content!=null){\n if (this.contactUs[i].content.length == 0) {\n this.contactUs = this.contactUs.filter(item => !item.topic.endsWith(this.contactUs[i].topic));\n }\n }\n\n }\n\n }\n\n}\n\nexport function do_s1008(s1008: s1008) {\n console.log(\"===================接收是1008================nickname=\" + s1008.nickname);\n\n}\n\n/**修改名字返回*/\nexport function do_s1009(s1009: s1009) {\n //1成功 2名字非法 3名字已被注册 4改名次数超过上限 5名字过长 \n console.log(\"===================s1009====================\" + s1009.result);\n if (s1009.result == 1) {\n EventManager.Inst.event(EventType.CLOSE_KINGNAME_UI);\n dataUser.Instance().nick = KingInfoProxy.Inst.changeName;\n\n EventManager.Inst.event(EventType.REFRESH_KINGNAME_UI, KingInfoProxy.Inst.changeName);\n EventManager.Inst.event(EventType.REFRESH_KINGINFONAME_UI);\n CommonMsgProxy.Inst.ShowCommonMsg(1026);\n } else if (s1009.result == 2) {\n CommonMsgProxy.Inst.ShowCommonMsg(1027);\n } else if (s1009.result == 3) {\n CommonMsgProxy.Inst.ShowCommonMsg(1028);\n } else if (s1009.result == 4) {\n CommonMsgProxy.Inst.ShowCommonMsg(1029);\n } else if (s1009.result == 5) {\n CommonMsgProxy.Inst.ShowCommonMsg(1030);\n }\n}\n\nexport class ContactUsDetails {\n /// 标题\n topic: string;\n /// 内容\n content: string;\n /// 内容\n action: e_action;\n /// qq或跳转的网址\n QQorWeb: string;\n}\n\nexport enum e_action {\n jump = 0, //跳转\n copy, //复制\n other, //预留\n none //无\n}\n\nexport class ContactContent {\n url: string;\n qq: string;\n wechat: string;\n weibo: string;\n tieba: string;\n sq: string;\n show: boolean; //是否显示联系我们页签\n fake: boolean;//功能是否开启\n openTv: boolean; //是否开启直播\n visitorLogin: boolean; //是否开放游客登录\n openRealNameAuth: boolean;//是否开启实名\n}\n\nexport class Contact {\n content: ContactContent;\n success: boolean; //是否成功\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { Button } from \"cc\";\nimport { Toggle } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { ClothesType, KingDressProxy } from \"../proxy/KingDressProxy\";\nimport { PlatMgr } from \"../../sdk/PlatMgr\";\nimport { KingInfoProxy } from \"../proxy/KingInfoProxy\";\nimport { dataServerList } from \"../../gameData/dataServerList\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingInfoUI')\nexport default class KingInfoUI extends BasePanel {\n\n//Panle_info 角色信息\n\n @property(Node) Sprite_headkuang: Node = null;\n\n @property(Node) Sprite_head: Node = null;\n\n @property(Node) Label_kingname: Node = null;\n\n @property(Node) Label_uid: Node = null;\n\n @property(Node) Label_server: Node = null;\n\n //紅點\n @property(Node) Sprite_noticered: Node = null;\n \n uuidString:string;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_kingname\") {//修改名字\n WindowManager.Instance().open(GameConst.winPath.KingNameUI, null, true);\n }\n else if (name == \"Button_uid\") {//赋值uuid\n\n this.CapyClipboardData(this.uuidString);\n }\n else if (name == \"Button_server\") {//服务器\n WindowManager.Instance().open(GameConst.winPath.ServerListUI, null, true);\n } else if (name == \"Button_notice\") {//游戏公告\n WindowManager.Instance().open(GameConst.winPath.KingNoticeUI, null, true);\n }else if (name == \"Button_customer\") {//游戏客服\n WindowManager.Instance().open(GameConst.winPath.KingCustomerUI, null, true);\n }\n else if (name == \"Button_cdkey\") {//兑换码\n WindowManager.Instance().open(GameConst.winPath.KingCdkUI, null, true);\n }\n else if (name == \"Button_accountchoose\") {//切换账号\n WindowManager.Instance().open(GameConst.winPath.KingSignInUI, null, true);\n }\n else if (name == \"Button_accountbind\") {//绑定账号\n WindowManager.Instance().open(GameConst.winPath.KingAccountUI, null, true);\n }\n else if (name == \"Button_accountdel\") {//删除账号\n // this.close(true)\n }else if(name == \"Button_sure\"){\n // this.close(true)\n } \n }\n start() {\n this.addEvent();\n }\n\n CapyClipboardData(data: string) {\n if (navigator) {\n var clipboard = navigator.clipboard;\n if (clipboard) {\n console.log(\"复制成功\")\n clipboard.writeText(data);\n }\n } else {\n console.log(\"复制失败\")\n }\n }\n private addEvent() {\n EventManager.Inst.on(EventType.REFRESH_KINGINFONAME_UI, this, this.UpDataName);\n }\n\n UpDataName(){\n let Label_kingname = this.Label_kingname.getComponent(Label);\n Label_kingname.string = dataUser.Instance().nick;\n }\n onShow(data: any): void {\n\n let userdata = dataUser.Instance();\n\n let headkuangid= dataUser.Instance().frameId;\n let Sprite_headkuang = this.Sprite_headkuang.getComponent(Sprite);\n let ClothesRoleDataList1 = KingDressProxy.Inst.GetClothesListByType(ClothesType.xiangkuang);\n let ClothesData1 = ClothesRoleDataList1.find(item => item.clothes_id == headkuangid);\n if (ClothesData1) {\n GlobalFunction.SetSpriteFrame(Sprite_headkuang, ClothesData1.model_name);\n }\n\n let headid= dataUser.Instance().resId;\n let Sprite_haed = this.Sprite_head.getComponent(Sprite);\n let ClothesRoleDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.touxiang);\n let ClothesData= ClothesRoleDataList.find(item => item.clothes_id == headid);\n if (ClothesData) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(ClothesData.item_id);\n if (ClothesData.model_name == \"\") {\n GlobalFunction.SetSpriteFrame(Sprite_haed, itemdata.icon);\n \n } else {\n GlobalFunction.SetSpriteFrame(Sprite_haed, ClothesData.model_name);\n }\n \n }\n\n let Label_uid = this.Label_uid.getComponent(Label);\n Label_uid.string = userdata.unitUID;\n this.uuidString = Label_uid.string;\n let Label_kingname = this.Label_kingname.getComponent(Label);\n Label_kingname.string = userdata.nick;\n\n let Label_server = this.Label_server.getComponent(Label);\n Label_server.string = dataServerList.Instance().selectServer.showName+\"\";\n }\n\n\n \n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { CoinType, ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { KingInfoProxy } from \"../proxy/KingInfoProxy\";\nimport { CommonMsgProxy } from \"../proxy/CommonMsgProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingNameUI')\nexport default class KingNameUI extends BasePanel {\n\n itemid: number;\n @property(Node) Label_num: Node = null;\n\n @property(Node) Label_name: Node = null;\n\n @property(Node) Sprite_name: Node = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_get\") {\n\n if(!this.Label_name.active){\n CommonMsgProxy.Inst.ShowCommonMsg(1017);\n return;\n }\n GlobalFunction.NotEnouthCostNum(2000,CoinType.zuanshi,this.node.name,()=>{this.sendChange()},()=>{this.ClosePoup()});\n\n }\n }\n\n sendChange(){\n let Label_name = this.Label_name.getComponent(Label);\n KingInfoProxy.Inst.SendC1009(Label_name.string);\n }\n ClosePoup(){\n console.log(\"========================關閉界面===========================\");\n WindowManager.Instance().removeWindow(GameConst.winPath.KingInfoUI,true);\n WindowManager.Instance().removeWindow(GameConst.winPath.KingUI,true);\n WindowManager.Instance().removeWindow(GameConst.winPath.KingNameUI,true);\n }\n start() {\n this.addEvent();\n\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.CLOSE_KINGNAME_UI, this, this.CloseKingNameUI);\n }\n CloseKingNameUI() {\n this.close(true);\n }\n onShow(data: any): void {\n\n let Label_num = this.Label_num.getComponent(Label);\n Label_num.string =\"2000\";\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { MailProxy } from \"../proxy/MailProxy\";\nimport { instantiate } from \"cc\";\nimport { p_sys_notice } from \"../../../proto/proto\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingNoticeUI')\nexport default class KingNoticeUI extends BasePanel {\n\n @property(Node) Label_dec: Node = null;\n @property(Node) Layout_dec: Node = null;\n title: Node = null;\n prefabtitle: Node = null;\n\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }else if (name == \"Button_sure\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n\n // let dectxt = this.Label_dec.getComponent(RichText);\n // dectxt.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20174),10000); \n this.prefabtitle = this.title;\n this.Layout_dec.removeAllChildren();\n // console.log(\"MailProxy.Inst.NoticeServerList.length==\"+MailProxy.Inst.NoticeServerList.length);\n if(MailProxy.Inst.NoticeServerList==undefined || MailProxy.Inst.NoticeServerList.length==0)return;\n for (let i = 0; i < MailProxy.Inst.NoticeServerList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabtitle);\n if (itemNode) {\n\n // int32 id=1; // 公告id\n // string info=2; // 概要\n // string content=3; // 内容\n // int32 beginTime=4; // 开始时间\n // int32 endTime=5; // 结束时间\n // int32 tanc=6; // 是否弹窗,0-不弹,1-弹窗\n\n \n itemNode.parent = this.Layout_dec;\n let NoticeData: p_sys_notice = MailProxy.Inst.NoticeServerList[i];\n let Label_title = itemNode.getChildByName(\"Label_title\").getComponent(Label);\n //console.log(\"GlobalFunction.GetMsg(20175)==\"+GlobalFunction.GetMsg(20175) +\" NoticeData.beginTime==\"+NoticeData.beginTime);\n //console.log(\"TimePoxy.Ins t.BackMonth(NoticeData.beginTime)==\"+TimePoxy.Inst.BackMonth(NoticeData.beginTime) +\" TimePoxy.Inst.BackDay(NoticeData.beginTime)==\"+TimePoxy.Inst.BackDay(NoticeData.beginTime));\n console.log(\"NoticeData.info===\"+NoticeData.info +\" NoticeData.content===\"+NoticeData.content);\n Label_title.string =NoticeData.info;//StringUtil.stringFormat(GlobalFunction.GetMsg(20175),TimePoxy.Inst.BackMonth(NoticeData.beginTime),TimePoxy.Inst.BackDay(NoticeData.beginTime));\n let Label_dec = itemNode.getChildByName(\"Label_dec\").getComponent(RichText);\n Label_dec.string = NoticeData.content;\n }\n }\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { Button } from \"cc\";\nimport { Toggle } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { instantiate } from \"cc\";\nimport { Elanguage, LanguageProxy } from \"../proxy/LanguageProxy\";\nimport { Component } from \"cc\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport { sys } from \"cc\";\nimport { CommonMsgProxy } from \"../proxy/CommonMsgProxy\";\nimport { game } from \"cc\";\nimport { MusicProxy } from \"../proxy/MusicProxy\";\nimport { GameManager } from \"../../GameManager\";\nimport { GamePreloadState } from \"../../fsm/gameFlow/GamePreloadState\";\nimport { GameLoaingState } from \"../../fsm/gameFlow/GameLoadingState\";\nimport GameEntry from \"../../GameEntry\";\nimport { dataServerList } from \"../../gameData/dataServerList\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingSetUI')\nexport default class KingSetUI extends BasePanel {\n\n//panel_set\n\nchooseLanguage: number;//语言选择\n\n@property(Node) Panle_language: Node = null;\n\n@property(Node) Layout_language: Node = null;\nlanguage: Node = null;\nprefablanguage: Node = null;\n\n@property(Node) Label_language: Node = null;\ntimeDayCallback: any;\n@property(Node) Label_year: Node = null;\n@property(Node) Label_time: Node = null;\n@property(Node) Label_version: Node = null;\n\n@property(Button) Button_musicon: Button = null;\n@property(Button) Button_musicoff: Button = null;\n@property(Button) Button_soundon: Button = null;\n@property(Button) Button_soundoff: Button = null;\n@property(Button) Button_screenon: Button = null;\n@property(Button) Button_screenoff: Button = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_sure\") {\n this.close(true)\n }\n else if (name == \"Button_language\") {//切换语言\n this.SetLanguage(this.Panle_language.active);\n }\n else if (name == \"Button_musicon\") {//音乐开\n //点击开,隐藏开始按钮,关闭音乐\n this.SetMusic(false);\n }\n else if (name == \"Button_musicoff\") {//音乐关\n //点击关,隐藏关闭按钮打开音乐\n this.SetMusic(true);\n }\n else if (name == \"Button_soundon\") {//音效开\n this.SetSound(false);\n }\n else if (name == \"Button_soundoff\") {//音效关\n this.SetSound(true);\n }else if (name == \"Button_screenon\") {//震动开\n this.Setscreen(false);\n }\n else if (name == \"Button_screenoff\") {//震动关\n this.Setscreen(true);\n }\n }\n\n ShowServerTime() {\n\n if(this.timeDayCallback){\n this.unschedule(this.timeDayCallback);\n }\n let startTime = GameModleComp.getInstance().serverTime;\n let Labelyear = this.Label_year.getComponent(Label);\n let Labeltime = this.Label_time.getComponent(Label);\n Labelyear.string = TimePoxy.Inst.SecondsToDate(startTime);\n Labeltime.string = TimePoxy.Inst.ShowTime(startTime);\n this.timeDayCallback = function (dt) {\n startTime++;\n Labelyear.string = TimePoxy.Inst.SecondsToDate(startTime);\n Labeltime.string = TimePoxy.Inst.ShowTime(startTime);\n }\n this.schedule(this.timeDayCallback, 1.0);\n }\n\n\n\n\n onShow(data: any): void {\n let languagedata = Elanguage.zh;\n if(sys.localStorage.getItem(\"language\")){\n let lan = sys.localStorage.getItem(\"language\");\n languagedata = LanguageProxy.Inst.GetElanguage(lan);\n }\n this.chooseLanguage = languagedata;\n this.Label_language.getComponent(Label).string = LanguageProxy.Inst.GetLanguageName(this.chooseLanguage);\n\n this.Panle_language.active=false;\n this.ShowServerTime();\n this.prefablanguage = this.language;\n this.Layout_language.removeAllChildren();\n for (let i = 0; i <4; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefablanguage);\n if (itemNode) {\n itemNode.parent = this.Layout_language;\n let colorName = LanguageProxy.Inst.GetLanguageName(i);\n let Button_languagedec = itemNode.getChildByName(\"Button_languagedec\");\n let Label_languagedec = Button_languagedec.getChildByName(\"Label_languagedec\");\n Label_languagedec.getComponent(Label).string = colorName;\n let Sprite_languagedec = Button_languagedec.getChildByName(\"Sprite_languagedec\");\n if (this.chooseLanguage == i) {\n Sprite_languagedec.active = true;\n } else {\n Sprite_languagedec.active = false;\n }\n this.bindClickLanguzgeEvent(Button_languagedec, i);\n }\n }\n this.Button_musicon.node.active=MusicProxy.Inst.GetMusicValue()==0;\n this.Button_musicoff.node.active=MusicProxy.Inst.GetMusicValue()==1;\n\n this.Button_soundon.node.active=MusicProxy.Inst.GetSoundValue()==0;\n this.Button_soundoff.node.active=MusicProxy.Inst.GetSoundValue()==1;\n\n this.Button_screenon.node.active=MusicProxy.Inst.GetScreenValue()==0;\n this.Button_screenoff.node.active=MusicProxy.Inst.GetScreenValue()==1;\n\n this.Label_version.getComponent(Label).string = 1.0+\"\";//dataServerList.Instance().selectServer.showName+\"\";\n }\n\n\n /** 点击选择语言*/\n bindClickLanguzgeEvent(itemnode: Node, type: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickLanguage\";\n clickEventHandler.customEventData = type + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickLanguage(itemNode, type) {\n let nodeitem = itemNode.target;\n let lanType = Number(type);\n if (lanType == this.chooseLanguage) return;\n let key =this.node.name;\n let stringname = LanguageProxy.Inst.GetLanguageName(lanType);\n let strings :string[] =[stringname];\n CommonMsgProxy.Inst.ShowCommonMsg(1020,strings,()=>{this.Setinglanguage(lanType,nodeitem)},key); \n }\n\n\n Setinglanguage(lanType,nodeitem){\n\n for (let i = 0; i < this.Layout_language.children.length; i++) {\n\n let node1 = this.Layout_language.children[i];\n let choose = node1.getChildByName(\"Button_languagedec\").getChildByName(\"Sprite_languagedec\");\n if (choose.active) {\n choose.active = false;\n break;\n }\n }\n nodeitem.getChildByName(\"Sprite_languagedec\").active = true;\n this.chooseLanguage = lanType;\n this.SetLanguage(this.Panle_language.active);\n this.Label_language.getComponent(Label).string = LanguageProxy.Inst.GetLanguageName(lanType);\n sys.localStorage.setItem(\"language\", LanguageProxy.Inst.GetElanguageType(lanType));\n WindowManager.Instance().removeWindow(GameConst.winPath.MainUI,true);\n WindowManager.Instance().removeWindow(GameConst.winPath.KingUI,true);\n\n GameEntry.Inst.container.removeAllChildren();\n GameEntry.Inst.mapView.desTory();\n GameModleComp.getInstance().restData();\n GameEntry.Inst.start();\n GameModleComp.instance=null;\n\n //WindowManager.Instance().removeWindow(GameConst.winPath.KingSetUI,true);\n\n }\n SetLanguage(isShow: boolean) {\n this.Panle_language.active = !isShow;\n }\n SetMusic(isShow: boolean) {\n this.Button_musicon.node.active = isShow;\n this.Button_musicoff.node.active = !isShow;\n let num = isShow==true?0:1;\n MusicProxy.Inst.SetMusic(num);\n }\n SetSound(isShow: boolean) {\n this.Button_soundon.node.active = isShow;\n this.Button_soundoff.node.active = !isShow;\n let num = isShow==true?0:1;\n MusicProxy.Inst.SetSound(num);\n }\n Setscreen(isShow: boolean) {\n this.Button_screenon.node.active = isShow;\n this.Button_screenoff.node.active = !isShow;\n let num = isShow==true?0:1;\n MusicProxy.Inst.SetScreen(num);\n }\n onHide(): void {\n this.unschedule(this.timeDayCallback);\n // director.end();\n // GameManager.Instance().fms.ExitCurrentState();\n // GameManager.Instance().fms.ChangeState(GameLoaingState, 0);\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingSexUI')\nexport default class KingSexUI extends BasePanel {\n\n itemid: number;\n @property(Node) Sprite_headkuang: Node = null;\n\n @property(Node) Sprite_haed: Node = null;\n\n @property(Node) Label_head: Node = null;\n\n @property(Node) Label_uid: Node = null;\n\n @property(Node) Sprite_mailred: Node = null;\n @property(Node) Sprite_friendred: Node = null;\n @property(Node) Sprite_rankred: Node = null;\n @property(Node) Sprite_schedulered: Node = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_head\") {\n WindowManager.Instance().open(GameConst.winPath.KingInfoUI, null, true);\n } else if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_mail\") {\n this.close(true)\n }\n else if (name == \"Button_friend\") {\n this.close(true)\n }\n else if (name == \"Button_rank\") {\n this.close(true)\n }\n else if (name == \"Button_schedule\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n\n\n this.Sprite_mailred.active=false;\n this.Sprite_friendred.active=false;\n this.Sprite_rankred.active=false;\n this.Sprite_schedulered.active=false;\n\n let userdata = dataUser.Instance();\n\n let Sprite_headkuang = this.Sprite_headkuang.getComponent(Sprite);\n let Sprite_haed = this.Sprite_haed.getComponent(Sprite);\n let Label_head = this.Label_head.getComponent(Label);\n Label_head.string = userdata.nick;\n let Label_uid = this.Label_uid.getComponent(Label);\n Label_uid.string =\"UID: \" +userdata.unitUID;\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingSignInUI')\nexport default class KingSignInUI extends BasePanel {\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }else if (name == \"Button_google\") {\n this.close(true)\n }\n else if (name == \"Button_facebook\") {\n this.close(true)\n }\n else if (name == \"Button_apple\") {\n this.close(true)\n }\n else if (name == \"Toggle_choose\") {\n // this.close(true)\n }\n }\n\n onShow(data: any): void {\n\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { ClothesType, KingDressProxy } from \"../proxy/KingDressProxy\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('KingUI')\nexport default class KingUI extends BasePanel {\n\n itemid: number;\n @property(Node) Sprite_headkuang: Node = null;\n\n @property(Node) Sprite_haed: Node = null;\n\n @property(Node) Label_head: Node = null;\n\n @property(Node) Label_uid: Node = null;\n\n @property(Node) Sprite_mailred: Node = null;\n\n @property(Node) Sprite_schedulered: Node = null;\n\n @property(Node) Sprite_infored: Node = null;\n\n @property(Node) Sprite_dressred: Node = null;\n @property(Node) Sprite_setred: Node = null;\n\n onBtnClicked(e: any, name: string) {\n // if (name == \"Button_head\") {\n // WindowManager.Instance().open(GameConst.winPath.KingInfoUI, null, true);\n // }\n if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_mail\") {\n WindowManager.Instance().open(GameConst.winPath.MailUI, null, true);\n }\n else if (name == \"Button_schedule\") {\n GlobalFunction.ShowBox5();\n }\n else if (name == \"Button_rank\") {\n }\n\n else if (name == \"Button_info\") {\n WindowManager.Instance().open(GameConst.winPath.KingInfoUI, null, true);\n } else if (name == \"Button_dress\") {\n WindowManager.Instance().open(GameConst.winPath.KingDressUI, null, true);\n }\n else if (name == \"Button_set\") {\n WindowManager.Instance().open(GameConst.winPath.KingSetUI, null, true);\n }\n }\n start() {\n this.addEvent();\n KingDressProxy.Inst.SendC1013();//解锁头像列表\n\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.REFRESH_KINGIMG_UI, this, this.UpKingImg);\n EventManager.Inst.on(EventType.REFRESH_KINGIMGKUANG_UI, this, this.UpKingImgKuang);\n EventManager.Inst.on(EventType.REFRESH_KINGNAME_UI, this, this.UpKingName);\n }\n\n UpKingImg(any:number){\n \n\n let headid;\n if(any ==0){\n headid = dataUser.Instance().resId\n }else{\n headid = any\n }\n let Sprite_haed = this.Sprite_haed.getComponent(Sprite);\n let ClothesRoleDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.touxiang);\n let ClothesData= ClothesRoleDataList.find(item => item.clothes_id == headid);\n if (ClothesData) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(ClothesData.item_id);\n if (ClothesData.model_name == \"\") {\n GlobalFunction.SetSpriteFrame(Sprite_haed, itemdata.icon);\n\n } else {\n GlobalFunction.SetSpriteFrame(Sprite_haed, ClothesData.model_name);\n }\n\n }\n }\n UpKingImgKuang(any:number){\n \n\n let headkuangid;\n if(any ==0){\n headkuangid = dataUser.Instance().frameId\n }else{\n headkuangid = any\n }\n let Sprite_headkuang = this.Sprite_headkuang.getComponent(Sprite);\n let ClothesRoleDataList1 = KingDressProxy.Inst.GetClothesListByType(ClothesType.xiangkuang);\n let ClothesData1 = ClothesRoleDataList1.find(item => item.clothes_id == headkuangid);\n if (ClothesData1) {\n GlobalFunction.SetSpriteFrame(Sprite_headkuang, ClothesData1.model_name);\n }\n }\n\n UpKingName(name:string){\n \n let userdata = dataUser.Instance();\n let Label_head = this.Label_head.getComponent(Label);\n \n if(name==null){\n Label_head.string = userdata.nick;\n }else{\n Label_head.string = name;\n }\n\n }\n\n onShow(datas: any): void {\n this.Sprite_mailred.active = false;\n this.Sprite_schedulered.active = false;\n this.Sprite_infored.active = false;\n this.Sprite_dressred.active = false;\n this.Sprite_setred.active = false;\n this.UpKingImg(0);\n this.UpKingImgKuang(0);\n this.UpKingName(null);\n // let Sprite_haed = this.Sprite_haed.getComponent(Sprite);\n // let ClothesRoleDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.touxiang);\n // let ClothesData = ClothesRoleDataList.find(item => item.clothes_id == dataUser.Instance().resId);\n // if (ClothesData) {\n // let itemdata = ItemProxy.Inst.GetItemDataByID(ClothesData.item_id);\n // if (ClothesData.model_name == \"\") {\n // GlobalFunction.SetSpriteFrame(Sprite_haed, itemdata.icon);\n\n // } else {\n // GlobalFunction.SetSpriteFrame(Sprite_haed, ClothesData.model_name);\n // }\n\n // }\n\n // let Sprite_headkuang = this.Sprite_headkuang.getComponent(Sprite);\n // let ClothesRoleDataList1 = KingDressProxy.Inst.GetClothesListByType(ClothesType.xiangkuang);\n // let ClothesData1 = ClothesRoleDataList1.find(item => item.clothes_id == dataUser.Instance().frameId);\n // if (ClothesData1) {\n // let itemdata = ItemProxy.Inst.GetItemDataByID(ClothesData1.item_id);\n // GlobalFunction.SetSpriteFrame(Sprite_headkuang, ClothesData1.model_name);\n // }\n\n // let userdata = dataUser.Instance();\n // let Label_head = this.Label_head.getComponent(Label);\n // Label_head.string = userdata.nick;\n\n let userdata = dataUser.Instance();\n let Label_uid = this.Label_uid.getComponent(Label);\n Label_uid.string = \"UID: \" + userdata.unitUID;\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Font } from \"cc\";\nimport { Label } from \"cc\";\nimport { RichText } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nconst { ccclass, property } = _decorator;\n@ccclass(\"LabelFontChange\")\nexport default class LabelFontChange extends BasePanel{\n @property(Font)EnFont :Font = null;\n @property(Font)JpFont :Font = null;\n @property(Font)TwFont :Font = null;\t\n @property(Font)ZhFont :Font = null;\n\n\n currentFont :any;\n label: Label | null = null;\n // @property({ visible: false })\n // @property(TextMeshPro) textMeshPro: TextMeshPro = null;\n @property({ visible: false })\n @property(RichText) tmpRichText: RichText = null;\n \n protected onLoad(): void {\n let str = GlobalFunction.GetCurrentLanguage();\n switch (str) {\n case \"zh\":\n this.currentFont =this.ZhFont;\n break;\n case \"tw\":\n this.currentFont =this.TwFont;\n break;\n case \"en\":\n this.currentFont =this.EnFont;\n break;\n case \"jp\":\n this.currentFont =this.JpFont;\n break; \n }\n let label = this.getComponent(Label);\n if(label){\n this.label = label\n }\n if(this.label){\n this.label.font = this.currentFont;\n }\n let tmpRichText = this.getComponent(RichText);\n if(tmpRichText){\n this.tmpRichText = tmpRichText;\n }\n if(this.tmpRichText){\n this.tmpRichText.font=this.currentFont;\n }\n }\n}\n","// ! 自动导出,请不要修改\n//\n/**\n * Language_WnTJTK config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from \"../_ConfigInject/Config_Decorator\";\n\n@res_auto_bind()\nexport class Language_WnTJTKPoxy {\n private static _inst: Language_WnTJTKPoxy;\n public static get Inst(): Language_WnTJTKPoxy {\n if (Language_WnTJTKPoxy._inst == null) {\n Language_WnTJTKPoxy._inst = new Language_WnTJTKPoxy();\n }\n return Language_WnTJTKPoxy._inst;\n }\n private keyMap = {\n _0: \"ID\",\n _1: \"strId\",\n _2: \"zh\",\n };\n @res_assign(\"Language_WnTJTK\")\n public datas: Language_WnTJTK[];\n private _map: any;\n private get Map(): Map {\n if (this._map == null) {\n this._map = new Map();\n this.datas.forEach(config => {\n this._map.set(config.ID, config);\n });\n }\n return this._map;\n }\n public Get(id: number) {\n return this.Map.get(id);\n }\n}\n\nexport class Language_WnTJTK {\n // /** id */\n ID: number;\n // /** strId */\n strId: string;\n // /** 中文显示 */\n zh: string;\n}","import { director } from 'cc';\nimport ConfigManager from '../../../assets/scripts/_config/ConfigManager';\nimport { Console } from 'console';\nimport { sys } from 'cc';\nimport { JsonAsset } from 'cc';\n\nexport let _language = 'zh';\n\nexport let ready: boolean = false;\n\n/**\n * 初始化\n * @param language \n */\nexport function init(language: string) {\n ready = true;\n /**测试用*/\n // saveData('language',language);\n if(!language){\n if(!loadData('language')){\n saveData('language',_language);\n }\n }else{\n saveData('language',language);\n }\n language = loadData('language');\n _language = language;\n win.languages[_language] = ConfigManager.GetInstance().getValue(\"Language\");\n}\n\n/**\n * 本地存儲数据\n * @param key,data \n */\nfunction saveData(key, value) {\n sys.localStorage.setItem(key, value);\n}\n \n// 读取数据\nfunction loadData(key) {\n return sys.localStorage.getItem(key);\n}\n\n/**\n * 翻译数据\n * @param key \n */\nexport function t(key: string) {\n const win: any = window;\n if (!win.languages) {\n return key;\n }\n // const searcher = key.split('.');\n let data = win.languages[_language];\n for(var keys in data){\n \n if(data[keys][\"id\"]==key){\n return data[keys][_language];\n }\n }\n // for (let i = 0; i < searcher.length; i++) {\n // data = data[searcher[i]];\n // if (!data) {\n // return '';\n // }\n // }\n return data || '';\n}\nexport function setKey(key: string,keyjson:JSON) {\n let data = keyjson;\n for(var keys in data){\n if(data[keys][\"id\"]==key){\n return data[keys][_language];\n }\n }\n return data || '';\n}\nexport function updateSceneRenderers() { // very costly iterations\n const rootNodes = director.getScene()!.children;\n // walk all nodes with localize label and update\n const allLocalizedLabels: any[] = [];\n for (let i = 0; i < rootNodes.length; ++i) {\n let labels = rootNodes[i].getComponentsInChildren('LocalizedLabel');\n Array.prototype.push.apply(allLocalizedLabels, labels);\n }\n for (let i = 0; i < allLocalizedLabels.length; ++i) {\n let label = allLocalizedLabels[i];\n if(!label.node.active)continue;\n label.updateLabel();\n }\n // walk all nodes with localize sprite and update\n const allLocalizedSprites: any[] = [];\n for (let i = 0; i < rootNodes.length; ++i) {\n let sprites = rootNodes[i].getComponentsInChildren('LocalizedSprite');\n Array.prototype.push.apply(allLocalizedSprites, sprites);\n }\n for (let i = 0; i < allLocalizedSprites.length; ++i) {\n let sprite = allLocalizedSprites[i];\n if(!sprite.node.active)continue;\n sprite.updateSprite();\n }\n}\n\n// 供插件查询当前语言使用\nconst win = window as any;\nwin._languageData = {\n get language() {\n return _language;\n },\n init(lang: string) {\n init(lang);\n },\n updateSceneRenderers() {\n updateSceneRenderers();\n },\n};\n","// ! 自动导出,请不要修改\n//\n/**\n * Constant config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { Font } from 'cc';\nimport { sys } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class LanguageProxy {\n private static _inst: LanguageProxy;\n public static get Inst(): LanguageProxy {\n if (LanguageProxy._inst == null) {\n LanguageProxy._inst = new LanguageProxy();\n }\n return LanguageProxy._inst;\n }\n\n DictFont: Map;\n DictArtFont: Map;\n curFont: Font;\n curArtFont: Font;\n eLan: Elanguage = Elanguage.zh;\n\n public LanguagePrxy() {\n // GameObject goFont = GameObject.Find(\"ui_CustomFont\");\n // DictFont = new Dictionary();\n // DictArtFont = new Dictionary();\n // if(goFont!=null)\n // {\n // Transform transTmp;\n // //中文\n // transTmp = goFont.transform.Find(\"FontCN\");\n // DictFont[Elanguage.CN] = GetFont(transTmp);\n // transTmp = goFont.transform.Find(\"FontArtCN\");\n // DictArtFont[Elanguage.CN] = GetFont(transTmp);\n // //繁体\n // transTmp = goFont.transform.Find(\"FontTW\");\n // DictFont[Elanguage.TW] = GetFont(transTmp);\n // transTmp = goFont.transform.Find(\"FontArtTW\");\n // DictArtFont[Elanguage.TW] = GetFont(transTmp);\n // //英文\n // transTmp = goFont.transform.Find(\"FontEN\");\n // DictFont[Elanguage.EN] = GetFont(transTmp);\n // transTmp = goFont.transform.Find(\"FontArtEN\");\n // DictArtFont[Elanguage.EN] = GetFont(transTmp);\n // //越南\n // transTmp = goFont.transform.Find(\"FontVN\");\n // DictFont[Elanguage.VN] = GetFont(transTmp);\n // transTmp = goFont.transform.Find(\"FontArtVN\");\n // DictArtFont[Elanguage.VN] = GetFont(transTmp);\n // //韩国\n // transTmp = goFont.transform.Find(\"FontKR\");\n // DictFont[Elanguage.KR] = GetFont(transTmp);\n // transTmp = goFont.transform.Find(\"FontArtKR\");\n // DictArtFont[Elanguage.KR] = GetFont(transTmp);\n // }\n }\n @res_assign(\"language\")\n public languageList: Language[];\n public InitlanguageConfig() {//获取language配置表\n\n if (!this.languageList) {\n this.languageList = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Language\")) {\n let languagevalue = new Language();\n languagevalue = ConfigManager.GetInstance().getValue(\"Language\")[key];\n // if (languagevalue) {\n // for (var keys in languagevalue) {\n // languagevalue[keys] = GlobalFunction.Inst.ParamDef(keys, languagevalue[keys]);\n // }\n // this.languageList.push(languagevalue);\n this.languageList.push(languagevalue);\n //}\n }\n }\n\n public get GetlanguageList() {\n\n if (this.languageList == null) {\n this.InitlanguageConfig()\n }\n\n return this.languageList;\n }\n\n\n public ContainsKeyLanguage(ID: number) {//判断该id是否在language配置表中是否存在\n let IsContain = false;\n if (!this.languageList) {\n this.InitlanguageConfig();\n }\n for (let i = 0; i < this.languageList.length; i++) {\n\n if (this.languageList[i].id == ID.toString()) {\n IsContain = true;\n break;\n }\n }\n return IsContain;\n }\n\n public GetLanguageByID(ID: number) {//通过语言id获取language对象\n\n let IsContain;\n if (!this.languageList) {\n this.InitlanguageConfig();\n }\n for (let i = 0; i < this.languageList.length; i++) {\n if (this.languageList[i].id == ID.toString()) {\n IsContain = this.languageList[i];\n break;\n }\n }\n return IsContain;\n }\n public GetMsgByLanAndStr(ID: string)//通过string获取language配置表的多语言配置\n {\n if (ID.length == 0)\n return \"\";\n\n return this.GetMsgByLanString(ID);\n }\n\n public GetMsgByLanAndId(ID: number)//通过id获取language配置表的多语言配置\n {\n return this.GetMsgByLanInt(ID);\n }\n\n public GetMsgByLanString(lan: string) {\n if (lan.includes(\"+\") || lan.includes(\"-\")) {\n return lan;\n }\n try {\n return this.GetMsgByLanInt(parseInt(lan));\n\n }\n catch (Exception) {\n return lan;\n }\n }\n\n public GetMsgByLanInt(lan: number) {\n if (!this.ContainsKeyLanguage(lan)) {\n return lan.toString();\n }\n let elanguage: Elanguage = Elanguage.en;\n let isLanguage = sys.localStorage.getItem(\"language\");\n if (isLanguage) {\n elanguage = this.GetElanguage(isLanguage);\n }\n\n switch (elanguage) {\n case Elanguage.zh:\n return this.GetLanguageByID(lan).zh;\n case Elanguage.tw:\n return this.GetLanguageByID(lan).tw;\n case Elanguage.en:\n return this.GetLanguageByID(lan).en;\n case Elanguage.jp:\n return this.GetLanguageByID(lan).jp;\n default:\n return this.GetLanguageByID(lan).zh;\n }\n }\n\n public GetElanguage(str) {\n switch (str) {\n case \"zh\":\n return Elanguage.zh;\n case \"tw\":\n return Elanguage.tw;\n case \"en\":\n return Elanguage.en;\n case \"jp\":\n return Elanguage.jp; \n default:\n return Elanguage.zh;\n }\n }\n public GetElanguageType(str: Elanguage) {\n switch (str) {\n case Elanguage.zh:\n return \"zh\";\n case Elanguage.tw:\n return \"tw\";\n case Elanguage.en:\n return \"en\";\n case Elanguage.jp:\n return \"jp\";\n default:\n return \"zh\";\n }\n }\n public GetLanguageName(type: number) {\n let LanguageName = \"\";\n switch (type) {\n case Elanguage.zh:\n LanguageName = GlobalFunction.GetMsg(20061); //StringUtil.stringFormat(GlobalFunction.GetMsg(20033), GlobalFunction.GetMsg(20023));\n break;\n case Elanguage.tw:\n LanguageName = GlobalFunction.GetMsg(20062);// StringUtil.stringFormat(GlobalFunction.GetMsg(20034), GlobalFunction.GetMsg(20024));\n break;\n case Elanguage.en:\n LanguageName = GlobalFunction.GetMsg(20063);// StringUtil.stringFormat(GlobalFunction.GetMsg(20034), GlobalFunction.GetMsg(20024));\n break;\n case Elanguage.jp:\n LanguageName = GlobalFunction.GetMsg(20215);// StringUtil.stringFormat(GlobalFunction.GetMsg(20034), GlobalFunction.GetMsg(20024));\n break;\n }\n return LanguageName;\n }\n\n}\n\nexport class Language {\n id: string;\n zh: string;\n en: number;\n}\n\nexport enum Elanguage {\n\n zh, // [Label(\"中文-简体\")]\n\n tw, // [Label(\"中文-繁体\")]\n\n en, // [Label(\"英语\")]\n\n jp, // [Label(\"日语\")]\n}","/**\r\n * Timer 是时钟管理类。它是一个单例,不要手动实例化此类,应该通过 Laya.timer 访问。\r\n */\r\n/** @private */\r\n\r\nimport { _decorator } from 'cc';\r\nvar guid = 0;\r\nclass TimerHandler {\r\n key: number;\r\n repeat: boolean;\r\n delay: number;\r\n userFrame: boolean;\r\n exeTime: number;\r\n caller: any\r\n method: Function;\r\n args: any[];\r\n jumpFrame: boolean;\r\n clear(): void {\r\n this.caller = null;\r\n this.method = null;\r\n this.args = null;\r\n }\r\n run(withClear: boolean): void {\r\n var caller: any = this.caller;\r\n if (caller && caller.destroyed) return this.clear();\r\n var method: Function = this.method;\r\n var args: any[] = this.args;\r\n withClear && this.clear();\r\n if (method == null) return;\r\n args ? method.apply(caller, args) : method.call(caller);\r\n }\r\n}\r\n\r\nexport class LayaTimer {\r\n /**@private */\r\n private static _pool: any[] = [];\r\n /**@private */\r\n static _mid: number = 1;\r\n /** 时针缩放。*/\r\n scale: number = 1;\r\n /** 当前帧开始的时间。*/\r\n currTimer: number = Date.now();\r\n /** 当前的帧数。*/\r\n currFrame: number = 0;\r\n /**@internal 两帧之间的时间间隔,单位毫秒。*/\r\n _delta: number = 0;\r\n /**@internal */\r\n _lastTimer: number = Date.now();\r\n /**@private */\r\n private _map: any[] = [];\r\n /**@private */\r\n private _handlers: any[] = [];\r\n /**@private */\r\n private _temp: any[] = [];\r\n /**@private */\r\n private _count: number = 0;\r\n /**\r\n * 创建 Timer 类的一个实例。\r\n */\r\n\r\n constructor() {\r\n\r\n }\r\n /**两帧之间的时间间隔,单位毫秒。*/\r\n get delta(): number {\r\n return this._delta;\r\n }\r\n\r\n /**\r\n * @internal\r\n * 帧循环处理函数。\r\n */\r\n public _update(): void {\r\n if (this.scale <= 0) {\r\n this._lastTimer = Date.now();\r\n this._delta = 0;\r\n return;\r\n }\r\n var frame: number = this.currFrame = this.currFrame + this.scale;\r\n var now: number = Date.now();\r\n var awake: boolean = (now - this._lastTimer) > 30000;\r\n this._delta = (now - this._lastTimer) * this.scale;\r\n var timer: number = this.currTimer = this.currTimer + this._delta;\r\n this._lastTimer = now;\r\n\r\n //处理handler\r\n var handlers: any[] = this._handlers;\r\n this._count = 0;\r\n for (var i: number = 0, n: number = handlers.length; i < n; i++) {\r\n var handler: TimerHandler = handlers[i];\r\n if (handler.method !== null) {\r\n var t: number = handler.userFrame ? frame : timer;\r\n if (t >= handler.exeTime) {\r\n if (handler.repeat) {\r\n if (!handler.jumpFrame || awake) {\r\n handler.exeTime += handler.delay;\r\n handler.run(false);\r\n if (t > handler.exeTime) {\r\n //如果执行一次后还能再执行,做跳出处理,如果想用多次执行,需要设置jumpFrame=true\r\n handler.exeTime += Math.ceil((t - handler.exeTime) / handler.delay) * handler.delay;\r\n }\r\n } else {\r\n while (t >= handler.exeTime) {\r\n handler.exeTime += handler.delay;\r\n handler.run(false);\r\n }\r\n }\r\n } else {\r\n handler.run(true);\r\n }\r\n }\r\n } else {\r\n this._count++;\r\n }\r\n }\r\n\r\n if (this._count > 30 || frame % 200 === 0) this._clearHandlers();\r\n\r\n }\r\n /** @private */\r\n private _clearHandlers(): void {\r\n var handlers: any[] = this._handlers;\r\n for (var i: number = 0, n: number = handlers.length; i < n; i++) {\r\n var handler: TimerHandler = handlers[i];\r\n if (handler.method !== null) this._temp.push(handler);\r\n else this._recoverHandler(handler);\r\n }\r\n this._handlers = this._temp;\r\n handlers.length = 0;\r\n this._temp = handlers;\r\n }\r\n\r\n /** @private */\r\n private _recoverHandler(handler: TimerHandler): void {\r\n if (this._map[handler.key] == handler) this._map[handler.key] = null;\r\n handler.clear();\r\n LayaTimer._pool.push(handler);\r\n }\r\n\r\n /** @internal */\r\n _create(useFrame: boolean, repeat: boolean, delay: number, caller: any, method: Function, args: any[], coverBefore: boolean): TimerHandler {\r\n //如果延迟为0,则立即执行\r\n if (!delay) {\r\n method.apply(caller, args);\r\n return null;\r\n }\r\n\r\n //先覆盖相同函数的计时\r\n if (coverBefore) {\r\n var handler: TimerHandler = this._getHandler(caller, method);\r\n if (handler) {\r\n handler.repeat = repeat;\r\n handler.userFrame = useFrame;\r\n handler.delay = delay;\r\n handler.caller = caller;\r\n handler.method = method;\r\n handler.args = args;\r\n handler.exeTime = delay + (useFrame ? this.currFrame : this.currTimer + Date.now() - this._lastTimer);\r\n return handler;\r\n }\r\n }\r\n\r\n //找到一个空闲的timerHandler\r\n handler = LayaTimer._pool.length > 0 ? LayaTimer._pool.pop() : new TimerHandler();\r\n handler.repeat = repeat;\r\n handler.userFrame = useFrame;\r\n handler.delay = delay;\r\n handler.caller = caller;\r\n handler.method = method;\r\n handler.args = args;\r\n handler.exeTime = delay + (useFrame ? this.currFrame : this.currTimer + Date.now() - this._lastTimer);\r\n\r\n //索引handler\r\n this._indexHandler(handler);\r\n\r\n //插入数组\r\n this._handlers.push(handler);\r\n\r\n return handler;\r\n }\r\n\r\n /** @private */\r\n private _indexHandler(handler: TimerHandler): void {\r\n var caller: any = handler.caller;\r\n var method: any = handler.method;\r\n var cid: number = caller ? caller.$_GID || (caller.$_GID = guid++) : 0;\r\n var mid: number = method.$_TID || (method.$_TID = (LayaTimer._mid++) * 100000);\r\n handler.key = cid + mid;\r\n this._map[handler.key] = handler;\r\n }\r\n\r\n /**\r\n * 定时执行一次。\r\n * @param\tdelay\t延迟时间(单位为毫秒)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n */\r\n once(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true): void {\r\n this._create(false, false, delay, caller, method, args, coverBefore);\r\n }\r\n\r\n /**\r\n * 定时重复执行。\r\n * @param\tdelay\t间隔时间(单位毫秒)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n * @param\tjumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次\r\n */\r\n loop(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true, jumpFrame: boolean = false): void {\r\n var handler: TimerHandler = this._create(false, true, delay, caller, method, args, coverBefore);\r\n if (handler) handler.jumpFrame = jumpFrame;\r\n }\r\n\r\n /**\r\n * 定时执行一次(基于帧率)。\r\n * @param\tdelay\t延迟几帧(单位为帧)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n */\r\n frameOnce(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true): void {\r\n this._create(true, false, delay, caller, method, args, coverBefore);\r\n }\r\n\r\n /**\r\n * 定时重复执行(基于帧率)。\r\n * @param\tdelay\t间隔几帧(单位为帧)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n */\r\n frameLoop(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true): void {\r\n this._create(true, true, delay, caller, method, args, coverBefore);\r\n }\r\n\r\n /** 返回统计信息。*/\r\n toString(): string {\r\n return \" handlers:\" + this._handlers.length + \" pool:\" + LayaTimer._pool.length;\r\n }\r\n\r\n /**\r\n * 清理定时器。\r\n * @param\tcaller 执行域(this)。\r\n * @param\tmethod 定时器回调函数。\r\n */\r\n clear(caller: any, method: Function): void {\r\n var handler: TimerHandler = this._getHandler(caller, method);\r\n if (handler) {\r\n this._map[handler.key] = null;\r\n handler.key = 0;\r\n handler.clear();\r\n }\r\n }\r\n\r\n /**\r\n * 清理对象身上的所有定时器。\r\n * @param\tcaller 执行域(this)。\r\n */\r\n clearAll(caller: any): void {\r\n if (!caller) return;\r\n for (var i: number = 0, n: number = this._handlers.length; i < n; i++) {\r\n var handler: TimerHandler = this._handlers[i];\r\n if (handler.caller === caller) {\r\n this._map[handler.key] = null;\r\n handler.key = 0;\r\n handler.clear();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n private _getHandler(caller: any, method: any): TimerHandler {\r\n var cid: number = caller ? caller.$_GID || (caller.$_GID = guid++) : 0;\r\n var mid: number = method.$_TID || (method.$_TID = (LayaTimer._mid++) * 100000);\r\n return this._map[cid + mid];\r\n }\r\n\r\n /**\r\n * 立即提前执行定时器,执行之后从队列中删除\r\n * @param\tcaller 执行域(this)。\r\n * @param\tmethod 定时器回调函数。\r\n */\r\n runTimer(caller: any, method: Function): void {\r\n var handler: TimerHandler = this._getHandler(caller, method);\r\n if (handler && handler.method != null) {\r\n this._map[handler.key] = null;\r\n handler.run(true);\r\n }\r\n }\r\n\r\n /**\r\n * 暂停时钟\r\n */\r\n pause(): void {\r\n this.scale = 0;\r\n }\r\n\r\n /**\r\n * 恢复时钟\r\n */\r\n resume(): void {\r\n this.scale = 1;\r\n }\r\n}","import { _decorator, Node, Widget } from 'cc';\nexport default class LayerManager {\n public container: Node;\n public sceneLayer: Node;\n public uiLayer: Node;\n public windowLayer: Node;\n public alertLayer: Node;\n\n public init(container: Node): void {\n this.container = container;\n this.sceneLayer = container.getChildByName('layer_scene')\n this.uiLayer = container.getChildByName('layer_ui')\n this.windowLayer = container.getChildByName('layer_win')\n this.alertLayer = container.getChildByName('layer_alert')\n }\n\n getNode() {\n let node = new Node()\n let widget = node.addComponent(Widget)\n widget.top = widget.left = widget.bottom = widget.right = 0\n widget.updateAlignment()\n return node\n }\n}","/*\r\n * @Author: dgflash\r\n * @Date: 2022-09-01 18:00:28\r\n * @LastEditors: dgflash\r\n * @LastEditTime: 2022-09-02 12:05:38\r\n */\r\nimport { Node } from \"cc\";\r\n\r\n/** 游戏摄像机层数据 */\r\nexport class LayerItem {\r\n private _value: number;\r\n get value(): number {\r\n return this._value;\r\n }\r\n\r\n private _name!: string;\r\n get name(): string {\r\n return this._name;\r\n }\r\n\r\n get mask(): number {\r\n return 1 << this._value;\r\n }\r\n\r\n constructor(value: number, name: string) {\r\n this._value = value;\r\n this._name = name;\r\n }\r\n}\r\n\r\n/***\r\n * 游戏摄像机层管理工具\r\n */\r\nexport class LayerUtil {\r\n /** 地图对象层 */\r\n static MAP = new LayerItem(0, 'MAP');\r\n /** 替身对象层 */\r\n static AVATAR = new LayerItem(1, 'AVATAR');\r\n\r\n static IGNORE_RAYCAST = new LayerItem(20, 'IGNORE_RAYCAST');\r\n static GIZMOS = new LayerItem(21, 'GIZMOS');\r\n /** 编辑器对象层 */\r\n static EDITOR = new LayerItem(22, 'EDITOR');\r\n /** 三维对象层 */\r\n static UI_3D = new LayerItem(23, 'UI_3D');\r\n static SCENE_GIZMO = new LayerItem(24, 'SCENE_GIZMO');\r\n /** 二维对象层 */\r\n static UI_2D = new LayerItem(25, 'UI_2D');\r\n /** 引擎分析工具层 */\r\n static PROFILTER = new LayerItem(28, 'PROFILTER');\r\n /** 默认对象层 */\r\n static DEFAULT = new LayerItem(30, 'DEFAULT');\r\n\r\n /**\r\n * 设置节点层\r\n * @param item 层数据\r\n * @param node 节点\r\n */\r\n static setNodeLayer(item: LayerItem, node: Node): void {\r\n node.layer = item.mask;\r\n node.children.forEach(n => {\r\n n.layer = item.mask;\r\n LayerUtil.setNodeLayer(item, n);\r\n });\r\n }\r\n}\r\n\r\n","import { _decorator, Component, Node, Prefab, instantiate, v3, UITransform } from 'cc';\r\nconst { ccclass, executeInEditMode, property } = _decorator;\r\nimport { EDITOR } from 'cc/env';\r\n\r\n// // 屏蔽2.3.1版本prefab嵌套prefab的弹框问题\r\nif (EDITOR && !window[\"Editor\"].isBuilder) {\r\n window[\"_Scene\"].DetectConflict.beforeAddChild = function () {\r\n return false\r\n }\r\n}\r\n\r\n@ccclass('LinkPrefab')\r\n@executeInEditMode\r\nexport default class LinkPrefab extends Component {\r\n private _prefabNode: Node | null = null\r\n\r\n @property\r\n private _prefab: Prefab | null = null\r\n\r\n @property({ type: Prefab, visible: true, displayName: \"预制体\" })\r\n set prefab(value: Prefab) {\r\n this._onPrefabChanged(this._prefab, value)\r\n }\r\n\r\n get prefab(): Prefab {\r\n return this._prefab\r\n }\r\n\r\n private _onPrefabChanged(oldValue: Prefab, newValue: Prefab) {\r\n if (this._prefabNode) {\r\n this._prefabNode.destroy();\r\n this._prefabNode = null;\r\n }\r\n this._prefab = newValue\r\n if (newValue) {\r\n let prefabNode = instantiate(newValue);\r\n if (prefabNode) {\r\n this._prefabNode = prefabNode;\r\n // TODO 注释掉2.4.11的代码,待实现\r\n // prefabNode[\"_objFlags\"] |= (cc.Object[\"Flags\"].DontSave | cc.Object[\"Flags\"].LockedInEditor | cc.Object[\"Flags\"].HideInHierarchy);\r\n // prefabNode.x = 0\r\n // prefabNode.y = 0\r\n // this.node.addChild(prefabNode, -1) // 添加到最底层\r\n // prefabNode.name = \"prefabNode\";\r\n // this.node.setContentSize(prefabNode.getContentSize())\r\n }\r\n }\r\n }\r\n\r\n public getPefabNode(): Node {\r\n this._initPrefab() // 防止当前node被默认隐藏导致,prefabNode获取不到\r\n return this._prefabNode\r\n }\r\n // public getPrefabComponect(type: {prototype: T}): T {\r\n // let prefabNode = this._prefabNode\r\n // return prefabNode ? prefabNode.getComponent(type) : null;\r\n // }\r\n\r\n onLoad() {\r\n this._initPrefab()\r\n }\r\n\r\n private _initPrefab() {\r\n if (!this._prefab || this._prefabNode) {\r\n return\r\n }\r\n let instNode = this.node.getChildByName(\"prefabNode\"); // 避免外部通过cc.instantiate(this.node),导致prefabNode被创建多份\r\n if (instNode) {\r\n this._prefabNode = instNode;\r\n }\r\n else {\r\n if (EDITOR) {\r\n this._onPrefabChanged(null, this._prefab)\r\n }\r\n else {\r\n let prefabNode = instantiate(this._prefab);\r\n if (prefabNode) {\r\n this._prefabNode = prefabNode;\r\n this.node.addChild(prefabNode) // 添加到最底层\r\n prefabNode.name = \"prefabNode\";\r\n prefabNode.setPosition(v3(0, 0, 0));\r\n this.node.getComponent(UITransform).setContentSize(prefabNode.getComponent(UITransform).contentSize)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // update (dt) {}\r\n}","import { UI } from 'cc';\r\nimport { _decorator, Component, Prefab, Enum, CCInteger, ScrollView, Node, Vec2, UITransform, instantiate,isValid, v3 } from 'cc';\r\nconst { ccclass, property, menu } = _decorator;\r\n\r\n/**列表排列方式 */\r\nexport enum ListType {\r\n /**水平排列 */\r\n Horizontal = 1,\r\n /**垂直排列 */\r\n Vertical = 2,\r\n /**网格排列 */\r\n Grid = 3\r\n}\r\n// /**网格布局中的方向 */\r\nexport enum StartAxisType {\r\n /**水平排列 */\r\n Horizontal = 1,\r\n /**垂直排列 */\r\n Vertical = 2,\r\n}\r\n\r\n@ccclass('ListView')\r\n@menu('公用组件/List')\r\nexport default class ListView extends Component {\r\n //==================== 属性面板 =========================\r\n /**列表选项 */\r\n @property({ type: Prefab, tooltip: \"列表项\" })\r\n public itemRender: Prefab | null = null;\r\n @property({ tooltip: \"播放动画\", visible: true })\r\n public aim: boolean = true\r\n @property({ tooltip: \"分帧创建\", visible: true })\r\n public frameCreate: boolean = true\r\n /**排列方式 */\r\n @property({ type: Enum(ListType), tooltip: \"排列方式\" })\r\n public type: ListType = ListType.Vertical;\r\n /**网格布局中的方向 */\r\n @property({ type: Enum(StartAxisType), tooltip: \"网格布局中的方向\", visible() { return this.type == ListType.Grid } })\r\n public startAxis: StartAxisType = StartAxisType.Horizontal;\r\n /**列表项之间X间隔 */\r\n @property({ type: CCInteger, tooltip: \"列表项X间隔\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public spaceX: number = 0;\r\n /**列表项之间Y间隔 */\r\n @property({ type: CCInteger, tooltip: \"列表项Y间隔\", visible() { return this.type == ListType.Vertical || this.type == ListType.Grid } })\r\n public spaceY: number = 0;\r\n /**上间距 */\r\n @property({ type: CCInteger, tooltip: \"上间距\", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } })\r\n public top: number = 0;\r\n /**下间距 */\r\n @property({ type: CCInteger, tooltip: \"下间距\", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } })\r\n public bottom: number = 0;\r\n /**左间距 */\r\n @property({ type: CCInteger, tooltip: \"左间距\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public left: number = 0;\r\n @property(CCInteger)\r\n public _padding: number = 0;\r\n /**右间距 */\r\n @property({ type: CCInteger, tooltip: \"右间距\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public right: number = 0;\r\n //====================== 滚动容器 ===============================\r\n /**列表滚动容器 */\r\n public scrollView: ScrollView | null = null;\r\n /**scrollView的内容容器 */\r\n private content: Node | null = null;\r\n //======================== 列表项 ===========================\r\n /**列表项数据 */\r\n private itemDataList: Array = [];\r\n /**应创建的实例数量 */\r\n private spawnCount: number = 0;\r\n /**存放列表项实例的数组 */\r\n private itemList: Array = [];\r\n /**item的高度 */\r\n private itemHeight: number = 0;\r\n /**item的宽度 */\r\n private itemWidth: number = 0;\r\n /**存放不再使用中的列表项 */\r\n private itemPool: Array = [];\r\n //======================= 计算参数 ==========================\r\n /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */\r\n private halfScrollView: number = 0;\r\n /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */\r\n private lastContentPosX: number = 0;\r\n /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */\r\n private lastContentPosY: number = 0;\r\n /**网格行数 */\r\n private gridRow: number = 0;\r\n /**网格列数 */\r\n private gridCol: number = 0;\r\n /**刷新时间,单位s */\r\n private updateTimer: number = 0;\r\n /**刷新间隔,单位s */\r\n private updateInterval: number = 0.1;\r\n /**是否滚动容器 */\r\n private bScrolling: boolean = false;\r\n /**刷新的函数 */\r\n private updateFun: Function = function () { };\r\n /**列表ITEM更新*/\r\n private itemUpdateFunc: Function = null\r\n onLoad() {\r\n this.itemHeight = this.itemRender.data.height;\r\n this.itemWidth = this.itemRender.data.width;\r\n this.scrollView = this.node.getComponent(ScrollView);\r\n this.content = this.scrollView.content;\r\n // this.content.anchorX = 0;\r\n // this.content.anchorY = 1;\r\n this.content.removeAllChildren();\r\n this.scrollView.node.on(\"scrolling\", this.onScrolling, this);\r\n }\r\n\r\n /**\r\n * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据)\r\n * @param itemDataList item数据列表\r\n */\r\n public setData(itemDataList: Array, itemUpdateFunc: Function = null, clean: boolean = true) {\r\n if (clean)\r\n this.clean()\r\n this.itemDataList = itemDataList.slice();\r\n this.itemUpdateFunc = itemUpdateFunc\r\n\r\n this.updateContent();\r\n }\r\n\r\n /**计算列表的各项参数 */\r\n private countListParam() {\r\n let dataLen = this.itemDataList.length;\r\n if (this.type == ListType.Vertical) {\r\n this.scrollView.horizontal = false;\r\n this.scrollView.vertical = true;\r\n let width = this.content.parent.getComponent(UITransform).width;\r\n let height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.top + this.bottom;\r\n\r\n this.content.getComponent(UITransform).setContentSize(width, height);\r\n this.spawnCount = Math.ceil(this.scrollView.node.getComponent(UITransform).height / (this.itemHeight + this.spaceY)) + 1; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个\r\n this.halfScrollView = this.scrollView.node.getComponent(UITransform).height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围\r\n this.updateFun = this.updateV;\r\n } else if (this.type == ListType.Horizontal) {\r\n this.scrollView.horizontal = true;\r\n this.scrollView.vertical = false;\r\n let width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.left + this.right;;\r\n let height = this.content.parent.getComponent(UITransform).height;\r\n this.content.getComponent(UITransform).setContentSize(width, height); \r\n this.spawnCount = Math.round(this.scrollView.node.getComponent(UITransform).width / (this.itemWidth + this.spaceX)) + 2;\r\n this.halfScrollView = this.scrollView.node.getComponent(UITransform).width / 2 + this.itemWidth / 2 + this.spaceX;\r\n this.updateFun = this.udpateH;\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n this.scrollView.horizontal = false;\r\n this.scrollView.vertical = true;\r\n let width = this.content.parent.getComponent(UITransform).width;\r\n //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效\r\n if (this.left + this.right + this.itemWidth + this.spaceX > this.content.getComponent(UITransform).width) {\r\n this.left = 0;\r\n this.right = 0;\r\n console.error(\"left或right过大\");\r\n }\r\n\r\n this.gridCol = Math.floor((width - this.left - this.right) / (this.itemWidth + this.spaceX));\r\n this.gridRow = Math.ceil(dataLen / this.gridCol);\r\n let height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.top + this.bottom;\r\n this.content.getComponent(UITransform).setContentSize(width, height);\r\n this.spawnCount = Math.ceil(this.scrollView.node.getComponent(UITransform).height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol;\r\n this.halfScrollView = this.scrollView.node.getComponent(UITransform).height / 2 + this.itemHeight / 2 + this.spaceY;\r\n this.updateFun = this.updateGrid_V;\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n this.scrollView.horizontal = true;\r\n this.scrollView.vertical = false;\r\n //计算高间隔\r\n let height = this.content.parent.getComponent(UITransform).height;\r\n //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效\r\n if (this.top + this.bottom + this.itemHeight + this.spaceY > height) {\r\n this.top = 0;\r\n this.bottom = 0;\r\n console.error(\"top或bottom过大\");\r\n }\r\n\r\n this.gridRow = Math.floor((height - this.top - this.bottom) / (this.itemHeight + this.spaceY));\r\n this.gridCol = Math.ceil(dataLen / this.gridRow);\r\n let width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.left + this.right;\r\n this.content.getComponent(UITransform).setContentSize(width, height);\r\n this.spawnCount = Math.round(this.scrollView.node.getComponent(UITransform).width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2;\r\n this.halfScrollView = this.scrollView.node.getComponent(UITransform).width / 2 + this.itemWidth / 2 + this.spaceX;\r\n this.updateFun = this.updateGrid_H;\r\n }\r\n }\r\n }\r\n\r\n public isFinishCreated = false;\r\n\r\n /**\r\n * 创建列表\r\n * @param startIndex 起始显示的数据索引 0表示第一项\r\n * @param offset scrollView偏移量\r\n */\r\n private createList(startIndex: number, offset: Vec2) {\r\n this.isFinishCreated = false;\r\n //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端\r\n if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) {\r\n startIndex = this.itemDataList.length - this.spawnCount;\r\n offset = this.scrollView.getMaxScrollOffset();\r\n\r\n //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项\r\n } else if (this.itemDataList.length <= this.spawnCount) {\r\n startIndex = 0;\r\n }\r\n\r\n // for (let i = 0; i < this.spawnCount; i++) {\r\n let i = 0\r\n let cb = () => {\r\n if (i >= this.spawnCount) {\r\n this.isFinishCreated = true;\r\n this.scrollView.unschedule(cb)\r\n return\r\n }\r\n let item: Node;\r\n let isNew: boolean = false\r\n //需要显示的数据索引在数据范围内,则item实例显示出来\r\n if (i + startIndex < this.itemDataList.length) {\r\n if (this.itemList[i] == null) {\r\n let itemInfo = this.getItem()\r\n item = itemInfo.item;\r\n isNew = itemInfo.new\r\n this.itemList.push(item);\r\n item.parent = this.content;\r\n\r\n } else {\r\n item = this.itemList[i];\r\n }\r\n //需要显示的数据索引超过了数据范围,则item实例隐藏起来\r\n } else {\r\n //item实例数量 > 需要显示的数据量\r\n if (this.itemList.length > (this.itemDataList.length - startIndex)) {\r\n item = this.itemList.pop();\r\n item.removeFromParent();\r\n this.itemPool.push(item);\r\n }\r\n // this.isFinishCreated = true;\r\n this.scrollView.unschedule(cb)\r\n // continue;\r\n return\r\n }\r\n\r\n let itemRender = item.getComponent(this.itemRender.name);\r\n // TODO 注释掉,没实现\r\n // itemRender.itemIndex = i + startIndex;\r\n // !this.itemUpdateFunc && itemRender.updateView(this.itemDataList[i + startIndex]);\r\n this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[i + startIndex], i + startIndex)\r\n\r\n // let myRect=item.getBoundingBoxToWorld()\r\n // let scrollRect=this.scrollView.node.getBoundingBoxToWorld()\r\n // let in2=myRect.intersects(scrollRect)\r\n // cc.log(in2,'999999999999999')\r\n\r\n if (this.type == ListType.Vertical) {\r\n //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。\r\n item.setPosition(this.content.getComponent(UITransform).width / 2, -item.getComponent(UITransform).height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.top);\r\n } else if (this.type == ListType.Horizontal) {\r\n item.setPosition(item.getComponent(UITransform).width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.left, -this.content.getComponent(UITransform).height / 2);\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n var row = Math.floor((i + startIndex) / this.gridCol);\r\n var col = (i + startIndex) % this.gridCol;\r\n item.setPosition(item.getComponent(UITransform).width * (0.5 + col) + this.spaceX * col + this.left, -item.getComponent(UITransform).height * (0.5 + row) - this.spaceY * row - this.top);\r\n item.active = true\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n var row = (i + startIndex) % this.gridRow;\r\n var col = Math.floor((i + startIndex) / this.gridRow);\r\n item.setPosition(item.getComponent(UITransform).width * (0.5 + col) + this.spaceX * col + this.left, -item.getComponent(UITransform).height * (0.5 + row) - this.spaceY * row - this.top);\r\n item.active = false\r\n }\r\n }\r\n if (this.aim && isNew)\r\n this.playItemInAnima(item, i * 0.1);\r\n i++\r\n }\r\n\r\n\r\n if (this.frameCreate)\r\n this.scrollView.schedule(cb)\r\n else {\r\n for (let j = 0; j < this.spawnCount; j++) {\r\n cb()\r\n }\r\n }\r\n\r\n this.scrollView.scrollToOffset(offset);\r\n }\r\n\r\n /**获取一个列表项 */\r\n private getItem() {\r\n if (this.itemPool.length == 0) {\r\n return { item: instantiate(this.itemRender), new: true };\r\n } else {\r\n return { item: this.itemPool.pop(), new: false };\r\n }\r\n }\r\n\r\n update(dt) {\r\n let scrolling = this.bScrolling;\r\n if (this.autoScrollingDuration > 0) {\r\n this.autoScrollingDuration -= dt;\r\n if (this.autoScrollingDuration <= 0) {\r\n // this.scrollView.stopAutoScroll();\r\n }\r\n scrolling = true;\r\n }\r\n\r\n if (this.autoScrollingOffset != null && this.isFinishCreated) {\r\n this.scrollView.scrollToOffset(this.autoScrollingOffset, this.autoScrollingTime > 0 ? this.autoScrollingTime : 0);\r\n this.autoScrollingOffset = null;\r\n this.autoScrollingDuration = this.autoScrollingTime;\r\n }\r\n\r\n if (scrolling == false) {\r\n return;\r\n }\r\n // this.updateTimer += dt;\r\n // if (this.updateTimer < this.updateInterval) {\r\n // return;\r\n // }\r\n this.updateTimer = 0;\r\n this.bScrolling = false;\r\n this.updateFun();\r\n }\r\n protected lateUpdate(dt: number): void {\r\n\r\n }\r\n onScrolling() {\r\n this.bScrolling = true;\r\n }\r\n\r\n /**垂直排列 */\r\n private updateV() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isUp = this.scrollView.content.getComponent(UITransform).contentSize.y > this.lastContentPosY;\r\n let offset = (this.itemHeight + this.spaceY) * items.length;\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isUp) {\r\n //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界\r\n if (viewPos.y > bufferZone && item.y - offset - this.bottom > -this.content.getComponent(UITransform).height) {\r\n let itemRender = item.getComponent(this.itemRender.name);\r\n let itemIndex = itemRender.itemIndex + items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.updateView(this.itemDataList[itemIndex]);\r\n this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n item.y = item.y - offset;\r\n }\r\n } else {\r\n //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界\r\n if (viewPos.y < -bufferZone && item.y + offset + this.top < 0) {\r\n let itemRender = item.getComponent(this.itemRender.name);\r\n let itemIndex = itemRender.itemIndex - items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.updateView(this.itemDataList[itemIndex]);\r\n this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n item.y = item.y + offset;\r\n }\r\n }\r\n }\r\n this.lastContentPosY = this.scrollView.content.getComponent(UITransform).contentSize.y;\r\n }\r\n\r\n /**水平排列 */\r\n private udpateH() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isRight = this.scrollView.content.getComponent(UITransform).contentSize.x > this.lastContentPosX;\r\n let offset = (this.itemWidth + this.spaceX) * items.length;\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isRight) {\r\n //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界\r\n if (viewPos.x > bufferZone && item.x - offset - this.left > 0) {\r\n let itemRender = item.getComponent(this.itemRender.name);\r\n let itemIndex = itemRender.itemIndex - items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.updateView(this.itemDataList[itemIndex]);\r\n this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n item.x = item.x - offset;\r\n }\r\n } else {\r\n //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界\r\n if (viewPos.x < -bufferZone && item.x + offset + this.right < this.content.getComponent(UITransform).width) {\r\n let itemRender = item.getComponent(this.itemRender.name);\r\n let itemIndex = itemRender.itemIndex + items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.updateView(this.itemDataList[itemIndex]);\r\n this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n item.x = item.x + offset;\r\n }\r\n }\r\n }\r\n this.lastContentPosX = this.scrollView.content.getComponent(UITransform).contentSize.x;\r\n }\r\n\r\n /**网格垂直排列 */\r\n private updateGrid_V() {\r\n let items = this.itemList;\r\n let item: Node;\r\n let bufferZone = this.halfScrollView;\r\n let isUp = this.scrollView.content.getComponent(UITransform).contentSize.y > this.lastContentPosY;\r\n let offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol);\r\n // TODO 注释掉,没实现好\r\n // for (let i = 0; i < items.length; i++) {\r\n // item = items[i];\r\n // let viewPos = this.getPositionInView(item);\r\n // if (isUp) {\r\n // //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界\r\n // if (viewPos.y > bufferZone && item.getComponent(UITransform).contentSize.y - offset - this.bottom > -this.content.getComponent(UITransform).height) {\r\n // let itemRender = item.getComponent(this.itemRender.name);\r\n // // let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol;\r\n // // if (this.itemDataList[itemIndex] != null) {\r\n // // item.getComponent(UITransform).contentSize.y(item.getComponent(UITransform).contentSize.y - offset);\r\n // // itemRender.itemIndex = itemIndex;\r\n // // !this.itemUpdateFunc && itemRender.updateView(this.itemDataList[itemIndex]);\r\n // // this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n // // item.active = true\r\n\r\n // // } else {\r\n // // item.setPosition(v3(item.getComponent(UITransform).contentSize.y - offset, item.getComponent(UITransform).contentSize.x, 0));\r\n // // itemRender.itemIndex = itemIndex;\r\n // // item.active = false\r\n // // }\r\n // }\r\n // } else {//item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界\r\n // if (viewPos.y < -bufferZone && item.getComponent(UITransform).contentSize.y + offset + this.top < 0) {\r\n // let itemRender = item.getComponent(this.itemRender.name);\r\n // let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol;\r\n // if (this.itemDataList[itemIndex] != null) {\r\n // item.setPosition(v3(item.getComponent(UITransform).contentSize.y + offset, item.getComponent(UITransform).contentSize.x, 0));\r\n // itemRender.itemIndex = itemIndex;\r\n // !this.itemUpdateFunc && itemRender.updateView(this.itemDataList[itemIndex]);\r\n // this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n // item.active = true\r\n\r\n\r\n // } else {\r\n // item.setPosition(v3(item.getComponent(UITransform).contentSize.y + offset, item.getComponent(UITransform).contentSize.x, 0));\r\n // itemRender.itemIndex = itemIndex;\r\n // item.active = false\r\n // }\r\n // }\r\n // }\r\n // }\r\n this.lastContentPosY = this.scrollView.content.getComponent(UITransform).contentSize.y;\r\n }\r\n\r\n /**网格水平排列 */\r\n private updateGrid_H() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isRight = this.scrollView.content.getComponent(UITransform).contentSize.x > this.lastContentPosX;\r\n let offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow);\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isRight) {\r\n //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界\r\n if (viewPos.x > bufferZone && item.x - offset - this.left > 0) {\r\n let itemRender = item.getComponent(this.itemRender.name);\r\n let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.x = item.x - offset;\r\n itemRender.itemIndex = itemIndex;\r\n !this.itemUpdateFunc && itemRender.updateView(this.itemDataList[itemIndex]);\r\n this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n item.active = true\r\n } else {\r\n item.x = item.x - offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.active = false\r\n }\r\n }\r\n } else {\r\n //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界\r\n if (viewPos.x < -bufferZone && item.x + offset + this.right < this.content.getComponent(UITransform).width) {\r\n let itemRender = item.getComponent(this.itemRender.name);\r\n let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.x = item.x + offset;\r\n itemRender.itemIndex = itemIndex;\r\n !this.itemUpdateFunc && itemRender.updateView(this.itemDataList[itemIndex]);\r\n this.itemUpdateFunc && this.itemUpdateFunc(item, this.itemDataList[itemIndex], itemIndex)\r\n item.active = true\r\n } else {\r\n item.x = item.x + offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.active = false\r\n }\r\n }\r\n }\r\n }\r\n this.lastContentPosX = this.scrollView.content.getComponent(UITransform).contentSize.x;\r\n }\r\n\r\n /**获取item在scrollView的局部坐标 */\r\n private getPositionInView(item) {\r\n let worldPos = item.parent.convertToWorldSpaceAR(item.position);\r\n let viewPos = this.scrollView.node.getComponent(UITransform).convertToNodeSpaceAR(worldPos);\r\n return viewPos;\r\n }\r\n\r\n /**获取列表数据 */\r\n public getListData() {\r\n return this.itemDataList;\r\n }\r\n\r\n /**\r\n * 增加一项数据到列表的末尾\r\n * @param data 数据\r\n */\r\n public addItem(data: any) {\r\n this.itemDataList.push(data);\r\n this.updateContent();\r\n }\r\n\r\n\r\n /**\r\n * 增加一项数据到列表指定位置\r\n * @param index 位置,0表示第1项\r\n * @param data 数据\r\n */\r\n public addItemAt(index: number, data: any) {\r\n if (this.itemDataList[index] != null || this.itemDataList.length == index) {\r\n this.itemDataList.splice(index, 1, data);\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**\r\n * 删除一项数据\r\n * @param index 删除项的位置 ,0表示第1项\r\n */\r\n public deleteItem(index: number) {\r\n if (this.itemDataList[index] != null) {\r\n this.itemDataList.splice(index, 1);\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**\r\n * 改变一项数据\r\n * @param index 位置,0表示第1项\r\n * @param data 替换的数据\r\n */\r\n public changeItem(index: number, data: any) {\r\n if (this.itemDataList[index] != null) {\r\n this.itemDataList[index] = data;\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**获取第一个Item的位置 */\r\n private updateContent() {\r\n //显示列表实例为0个\r\n if (this.itemList.length == 0) {\r\n this.countListParam();\r\n this.createList(0, new Vec2(0, 0));\r\n //显示列表的实例不为0个,则需要重新排列item实例数组\r\n } else {\r\n if (this.type == ListType.Vertical) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n } else if (this.type == ListType.Horizontal) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n }\r\n }\r\n\r\n this.countListParam();\r\n\r\n // TODO 升级的时候没有实现好,先注释了\r\n //获取第一个item实例需要显示的数据索引\r\n // var startIndex = this.itemList[0].getComponent(this.itemRender.name).itemIndex;\r\n\r\n // if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) {\r\n // startIndex += (startIndex + this.spawnCount) % this.gridCol;\r\n // } else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) {\r\n // startIndex += (startIndex + this.spawnCount) % this.gridRow;\r\n // }\r\n\r\n // //getScrollOffset()和scrollToOffset()的x值是相反的\r\n // var offset: Vec2 = this.scrollView.getScrollOffset();\r\n // offset.x = - offset.x;\r\n // this.createList(startIndex, offset);\r\n }\r\n }\r\n\r\n private playItemInAnima(item: Node, delay: number = 0.1) {\r\n let animTime = 0.1\r\n switch (this.type) {\r\n case ListType.Vertical:\r\n // ListInitEffect.playVerticalListEfx(item, animTime);\r\n break;\r\n case ListType.Horizontal:\r\n // ListInitEffect.playHorizontalListEfx(item, animTime);\r\n break;\r\n case ListType.Grid:\r\n // ListInitEffect.playGridListEfx(item, animTime);\r\n break;\r\n }\r\n }\r\n\r\n /**销毁 */\r\n public onDestroy() {\r\n this.clean()\r\n }\r\n\r\n private clean() {\r\n this.scrollView.stopAutoScroll();\r\n this.scrollView.unscheduleAllCallbacks();\r\n //清理列表项\r\n let len = this.itemList.length;\r\n for (let i = 0; i < len; i++) {\r\n if (isValid(this.itemList[i], true)) {\r\n this.itemList[i].destroy();\r\n }\r\n }\r\n this.itemList.length = 0;\r\n //清理对象池\r\n len = this.itemPool.length;\r\n for (let i = 0; i < len; i++) {\r\n if (isValid(this.itemPool[i], true)) {\r\n this.itemPool[i].destroy();\r\n }\r\n }\r\n this.itemPool.length = 0;\r\n //清理列表数据\r\n this.itemDataList.length = 0;\r\n }\r\n\r\n public getData() {\r\n return this.itemDataList\r\n }\r\n\r\n private autoScrollingDuration: number = -1;\r\n private autoScrollingTime: number = -1;\r\n private autoScrollingOffset: Vec2 | null = null;\r\n\r\n public ScrollTo(target: Vec2, duration = 0) {\r\n if (duration < 0) return;\r\n this.autoScrollingTime = duration;\r\n this.autoScrollingOffset = target;\r\n }\r\n}\r\n\r\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { Label } from \"cc\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { BuffPoxy } from \"../proxy/BuffPoxy\";\nimport { Vec3 } from \"cc\";\nimport { ClientRequest } from \"electron\";\nimport { Sprite } from \"cc\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { BoxData } from \"../common/Component\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { FuBen, FuBenOpenData, FuBenProxy } from \"../proxy/FuBenProxy\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { PassPoxy } from \"../proxy/PassPoxy\";\nimport { FuBenExp, FuBenExpPoxy } from \"../proxy/FuBenExpPoxy\";\nimport { instantiate } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport { Toggle } from \"cc\";\nimport { PveTypeEnum } from \"../../../enum/Enum\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { c1621 } from '../../../proto/proto';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass(\"LoadFbenDecUI\")\nexport default class LoadFbenDecUI extends BasePanel {\n\n fubenexpdata: FuBenExp; \n DianjiLevel :number;//点击等级\n CurrentLevel :number;//当前等级\n indexYe :number;//当前是第几页\n\n freeAndHadNum :number;\n AdFreeNum :number;\n\n onClickLevelData :FuBenExp;\n fubenid :number;//副本id\n MaxLevel:number;//當前頁簽最大關卡值\n MinLevel:number;//當前頁簽最小關卡值\n //奖励\n @property(Node) Layout_item: Node | null = null;\n item: Node | null = null;\n Prefabitem: Node | null = null;\n\n @property(Node) Label_title: Node | null = null;\n @property(Node) Label_decleft: Node | null = null;\n @property(Node) Label_deccenter: Node | null = null;\n @property(Node) Label_decright: Node | null = null;\n @property(Node) Label_decleft1: Node | null = null;\n @property(Node) Label_deccenter1: Node | null = null;\n @property(Node) Label_decright1: Node | null = null;\n\n @property(Node) unlock: Node | null = null;\n @property(Node) lock: Node | null = null;\n @property(Node) Label_towerlock: Node | null = null;\n \n @property(Toggle) Toggle_decleft: Toggle | null = null;\n @property(Toggle) Toggle_deccenter: Toggle | null = null;\n @property(Toggle) Toggle_decright: Toggle | null = null;\n\n @property(Button) Button_left: Button | null = null;\n @property(Button) Button_right: Button | null = null;\n @property(Button) Button_get: Button | null = null;\n @property(Button) Button_go: Button | null = null;\n\n @property(Node) advertget: Node | null = null;\n @property(Node) Label_advertget: Node | null = null;\n\n @property(Node) itemget: Node | null = null;\n @property(Node) Sprite_itemget: Node | null = null;\n @property(Node) Label_itemget: Node | null = null;\n\n \n\n @property(Node) advertgo: Node | null = null;\n @property(Node) Label_advertgo: Node | null = null;\n\n @property(Node) itemgo: Node | null = null;\n @property(Node) Sprite_itemgo: Node | null = null;\n @property(Node) Label_itemgo: Node | null = null;\n \n @property(Node) Label_name: Node | null = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true);\n } \n else if (name == \"Button_get\") {\n\n if(this.freeAndHadNum>0 || this.AdFreeNum>0){\n\n FuBenExpPoxy.Inst.SendC1623(this.fubenid,this.DianjiLevel);\n }\n\n }else if(name == \"Button_go\"){\n\n if(this.freeAndHadNum>0 || this.AdFreeNum>0){\n\n // let otodat = FuBenExpPoxy.Inst.GetFuBenExpByIdAndExp(this.fubenid,this.DianjiLevel);\n let data: FuBenOpenData = new FuBenOpenData();\n data.fubenType = this.fubenexpdata.fubenID;\n data.fubenId = this.fubenexpdata.fubenID;\n data.fubenExpId = this.onClickLevelData.ID;\n data.openType = this.freeAndHadNum>0?1:2;\n GameModleComp.getInstance().transPveData = data;\n // let fubenExp:FuBenExp = FuBenExpPoxy.Inst.GetFuBenExpByID(GameModleComp.getInstance().transPveData.fubenExpId);\n var c1621: c1621 = {\n id: GameModleComp.getInstance().transPveData.fubenId,\n lv: this.DianjiLevel,\n type: GameModleComp.getInstance().transPveData.openType\n };\n send2client(\"c1621\", c1621);\n WindowManager.Instance().removeWindow(GameConst.winPath.LoadUI, true,false);\n WindowManager.Instance().removeWindow(GameConst.winPath.LoadFbenUI, true);\n this.close(true);\n }\n \n if(this.fubenexpdata.fubenID == 1 && GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.guideEvent_5006 , 5006);\n }\n }\n else if(name == \"Button_mooncard\"){\n\n WindowManager.Instance().removeWindow(GameConst.winPath.LoadUI, true,false);\n WindowManager.Instance().removeWindow(GameConst.winPath.LoadFbenUI, true);\n WindowManager.Instance().open(GameConst.winPath.MoonCardUI, null, true);\n\n }else if(name == \"Toggle_decleft\"){\n\n this.DianjiLevel = this.indexYe*3 +1;\n this.ShowLevelReward();\n }\n else if(name == \"Toggle_deccenter\"){\n this.DianjiLevel = this.indexYe*3 +2;\n this.ShowLevelReward();\n\n }else if(name == \"Toggle_decright\"){\n this.DianjiLevel = this.indexYe*3 +3;\n this.ShowLevelReward();\n }else if(name == \"Button_left\"){\n this.indexYe--;\n this.DianjiLevel = this.indexYe*3 +3;\n this.Toggle_decright.isChecked=true;\n this.ReFreshLoadFuBen();\n this.ShowLevelReward();\n }else if(name == \"Button_right\"){\n this.indexYe++;\n this.DianjiLevel = this.indexYe*3 +1;\n this.Toggle_decleft.isChecked=true;\n this.ReFreshLoadFuBen();\n this.ShowLevelReward();\n }\n \n \n }\n\n start() {\n this.addEvent();\n // ShopProxy.Inst.SendC1210();//兵种装备商城信息\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.UPDATE_LOADFUBEN_UI, this, this.ShowLevelReward);\n }\n\n onShow(data: any): void {\n\n this.fubenexpdata =data;\n let level = 1;\n if(FuBenExpPoxy.Inst.p_fubenList!=undefined && FuBenExpPoxy.Inst.p_fubenList.length>0){\n let p_fuben = FuBenExpPoxy.Inst.p_fubenList.find(item=>item.id==this.fubenexpdata.fubenID);\n if(p_fuben){\n level=p_fuben.lv;\n }\n }\n this.CurrentLevel = level;\n this.DianjiLevel= this.CurrentLevel ;\n this.indexYe = Math.ceil(this.DianjiLevel/3)-1;\n let fubendata = FuBenProxy.Inst.GetFubenById(this.fubenexpdata.fubenID);\n let Label_title = this.Label_title.getComponent(Label);\n Label_title.string = fubendata.lan_name;\n let Label_name= this.Label_name.getComponent(Label);\n Label_name.string = fubendata.lan_name;\n this.Toggle_decleft.isChecked=this.CurrentLevel%3==1;\n this.Toggle_deccenter.isChecked=this.CurrentLevel%3==2;\n this.Toggle_decright.isChecked=this.CurrentLevel%3==0;\n this.ReFreshLoadFuBen();\n this.ShowLevelReward();\n // let datass = FuBenExpPoxy.Inst.GetFuBenExpByIdAndExp(this.fubenexpdata.fubenID,this.DianjiLevel);\n\n if(GuideManager.getInstance().isInGuide && data.fubenID == 1){\n EventManager.Inst.event(EventType.uiOpenEvent_5006 , [5006,this.Button_go.node])\n }\n }\n\n\n public ReFreshLoadFuBen(){\n\n let MaxLV = FuBenExpPoxy.Inst.GetFuBenExpListByFuBenID(this.fubenexpdata.fubenID)\n this.Toggle_decleft.node.active = this.indexYe*3 +1<=MaxLV;\n this.Toggle_deccenter.node.active = this.indexYe*3 +2<=MaxLV;\n this.Toggle_decright.node.active =this.indexYe*3 +3<=MaxLV;\n\n let Label_decleft =this.Label_decleft.getComponent(Label);\n Label_decleft.string = (1+this.indexYe*3)+\"\";\n let Label_deccenter = this.Label_deccenter.getComponent(Label);\n Label_deccenter.string =(2+this.indexYe*3)+\"\";\n let Label_decright =this.Label_decright.getComponent(Label);\n Label_decright.string =(3+this.indexYe*3)+\"\";\n\n let Label_decleft1 =this.Label_decleft1.getComponent(Label);\n Label_decleft1.string = (1+this.indexYe*3)+\"\";\n let Label_deccenter1 = this.Label_deccenter1.getComponent(Label);\n Label_deccenter1.string =(2+this.indexYe*3)+\"\";\n let Label_decright1 =this.Label_decright1.getComponent(Label);\n Label_decright1.string =(3+this.indexYe*3)+\"\";\n }\n\n public ShowLevelReward(){\n\n let hpserver=0;\n let freenum=0;\n let adtimes=0;\n let adMaxtimes=0;\n if(FuBenExpPoxy.Inst.p_fubenList!=undefined){\n let p_fuben = FuBenExpPoxy.Inst.p_fubenList.find(item=>item.id==this.fubenexpdata.fubenID);\n if(p_fuben){\n hpserver =GlobalFunction.ConvertUndefinedToNumber(p_fuben.per);\n freenum = GlobalFunction.ConvertUndefinedToNumber(p_fuben.freeNum);\n adtimes = GlobalFunction.ConvertUndefinedToNumber(p_fuben.adNum);\n adMaxtimes = GlobalFunction.ConvertUndefinedToNumber(p_fuben.adMax);\n }\n }\n \n let fuben = FuBenProxy.Inst.GetFubenById(this.fubenexpdata.fubenID);\n let item = ItemProxy.Inst.GetItemDataByID(fuben.item);\n\n let serveritemdata = ItemProxy.Inst.getServerItem(item.itemID);\n let itamnumber=freenum;\n if(serveritemdata){\n itamnumber +=serveritemdata.num;\n }\n this.freeAndHadNum=itamnumber;\n this.AdFreeNum = adtimes;\n\n this.Button_get.node.active = this.DianjiLevelthis.CurrentLevel;\n this.fubenid = this.fubenexpdata.fubenID;\n this.onClickLevelData = FuBenExpPoxy.Inst.GetFuBenExpByIdAndExp(this.fubenid,this.DianjiLevel);\n if(this.DianjiLevel0 ||adtimes==0;\n let Sprite_itemget = this.Sprite_itemget.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemget,item.icon);\n let Label_itemget = this.Label_itemget.getComponent(Label);\n Label_itemget.string =itamnumber+\"/\"+fuben.itemnum;\n\n this.advertget.active = itamnumber==0&&adtimes!=0;\n this.Label_advertget.getComponent(Label).string =adtimes +\"/\" +adMaxtimes ;\n\n\n this.itemgo.active =itamnumber>0 ||adtimes==0;\n let Sprite_itemgo = this.Sprite_itemgo.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_itemgo,item.icon);\n let Label_itemgo = this.Label_itemgo.getComponent(Label);\n Label_itemgo.string =itamnumber+\"/\"+fuben.itemnum;\n\n this.advertgo.active =itamnumber==0&&adtimes!=0;\n this.Label_advertgo.getComponent(Label).string =adtimes +\"/\" +adMaxtimes ;\n\n this.MaxLevel = 3+this.indexYe*3;\n this.MinLevel = 1+this.indexYe*3;\n let MaxLV = FuBenExpPoxy.Inst.GetFuBenExpListByFuBenID(this.fubenexpdata.fubenID)\n this.Button_left.node.active = this.MinLevel>3;\n this.Button_right.node.active = this.MaxLevel {\r\n EventManager.Inst.event(EventType.PVE_FIGHT_MAP_FIGHT_END)\r\n })\r\n this.close(true)\r\n }\r\n }\r\n onLoad(){\r\n //tween(this.node).delay(4).call(()=>{this.onCloseClick()}).start()\r\n }\r\n\r\n onShow(data: any): void {\r\n this.init(data);\r\n }\r\n\r\n init(s1622:s1622){\r\n let fuben : FuBen = FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId);\r\n let fubenExp:FuBenExp = FuBenExpPoxy.Inst.GetFuBenExpByID(GameModleComp.getInstance().transPveData.fubenExpId);\r\n this.Label_name.getComponent(Label).string = fuben.lan_name;\r\n this.Label_lv.getComponent(Label).string = fubenExp.lv + \"\";\r\n if(s1622.result == 1){\r\n this.yes.active = false;\r\n this.not.active = true;\r\n }else if(s1622.result == 2){\r\n this.yes.active = true;\r\n this.not.active = false;\r\n\r\n for(let i = 0 ; i < this.Layout_item.children.length ; i++){\r\n let itemNode:Node = this.Layout_item.children[i];\r\n let reward:p_reward = s1622.rewards[i];\r\n if(reward){\r\n itemNode.active = true;\r\n let Button_item = itemNode.getChildByName(\"Button_item\");\r\n let kuang:Sprite = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\r\n let icon:Sprite = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\r\n let num:Label = Button_item.getChildByName(\"Label_itemnum\").getComponent(Label);\r\n let itemcfg:ItemData = ItemProxy.Inst.GetItemDataByID(reward.id);\r\n GlobalFunction.SetSpriteFrame(icon,itemcfg.icon);\r\n GlobalFunction.SetSpriteFrame(kuang,ItemProxy.Inst.GetItemKuangByColor(itemcfg.color));\r\n num.string = reward.num+\"\";\r\n\r\n }else{\r\n itemNode.active = false;\r\n }\r\n }\r\n }\r\n\r\n this.prefablose = this.lose;\r\n this.Layout_lose.removeAllChildren();\r\n\r\n let ay_lostjumpId = LosePoxy.Inst.GetLostDataById(GameOverType.fubenfaile);\r\n\r\n if(ay_lostjumpId==undefined)return;\r\n let lostjumpList = ay_lostjumpId.ay_lostjumpId;\r\n\r\n for (let i = 0; i < lostjumpList.length; i++) {\r\n // 克隆并将节点添加到content中\r\n let itemNode = instantiate(this.prefablose);\r\n if (itemNode) {\r\n itemNode.parent = this.Layout_lose;\r\n let lostjumpid: number = Number(lostjumpList[i]);\r\n\r\n let jumpdata = LosePoxy.Inst.GetLostJumpDataById(lostjumpid);\r\n\r\n let Button_lose = itemNode.getChildByName(\"Button_lose\");\r\n let Sprite_lose = Button_lose.getChildByName(\"Sprite_lose\").getComponent(Sprite);\r\n\r\n GlobalFunction.SetSpriteFrame(Sprite_lose,jumpdata.icon);\r\n\r\n let Label_lose = Button_lose.getChildByName(\"Label_lose\").getComponent(Label);\r\n Label_lose.string = jumpdata.lan_dec;\r\n this.bindClickGoEvent(Button_lose, jumpdata.jumpId);\r\n\r\n }\r\n\r\n }\r\n }\r\n//go\r\nbindClickGoEvent(itemnode: Node, jumpId: number) {\r\n var clickEventHandler = new Component.EventHandler();\r\n //这个 node 节点是你的事件处理代码组件所属的节点\r\n clickEventHandler.target = this.node;\r\n //这个是代码文件名\r\n clickEventHandler.component = this.node.name;\r\n clickEventHandler.handler = \"CallOnclickGo\";\r\n clickEventHandler.customEventData = jumpId + \"\";\r\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\r\n }\r\n\r\n CallOnclickGo(itemnode, jumpID) {\r\n WindowManager.Instance().open(GameConst.winPath.MainUI, true);\r\n let jumpId = parseInt(jumpID);\r\n if(jumpId==1){\r\n WindowManager.Instance().open(GameConst.winPath.MainBuffUI, null, true).then(()=>{\r\n EventManager.Inst.event(EventType.PVE_FIGHT_MAP_FIGHT_END)\r\n this.runGame();\r\n })\r\n }else if(jumpId==2){\r\n WindowManager.Instance().open(GameConst.winPath.SoldiersUI, null, true).then(()=>{\r\n EventManager.Inst.event(EventType.PVE_FIGHT_MAP_FIGHT_END)\r\n this.runGame();\r\n })\r\n\r\n }else if(jumpId==3){\r\n //工厂\r\n WindowManager.Instance().open(GameConst.winPath.ManageUI, 1004, true).then(()=>{\r\n EventManager.Inst.event(EventType.PVE_FIGHT_MAP_FIGHT_END)\r\n this.runGame();\r\n })\r\n }else if(jumpId==4){\r\n WindowManager.Instance().open(GameConst.winPath.HeroUI, null, true).then(()=>{\r\n EventManager.Inst.event(EventType.PVE_FIGHT_MAP_FIGHT_END)\r\n this.runGame();\r\n })\r\n }\r\n this.close(true);\r\n }\r\n\r\nprivate runGame(){\r\n setTimeout(() => {\r\n if(GameModleComp.getInstance().isInCopy){\r\n GameModleComp.getInstance().isInCopy = false;\r\n GameEntry.Inst.mapView.mapType = FightMapEnum.GuanQiaMap;\r\n }\r\n }, 200);\r\n}\r\n\r\n\r\n onCloseClick(){\r\n this.desTroy();\r\n }\r\n desTroy(){\r\n if(this.node && this.node.parent){\r\n tween(this.node).removeSelf();\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n }\r\n }\r\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { Label } from \"cc\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { BuffPoxy } from \"../proxy/BuffPoxy\";\nimport { Vec3 } from \"cc\";\nimport { ClientRequest } from \"electron\";\nimport { Sprite } from \"cc\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { BoxData } from \"../common/Component\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { FuBen, FuBenProxy } from \"../proxy/FuBenProxy\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { PassPoxy } from \"../proxy/PassPoxy\";\nimport { FuBenExp, FuBenExpPoxy } from \"../proxy/FuBenExpPoxy\";\nimport { instantiate } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass(\"LoadFbenUI\")\nexport default class LoadFbenUI extends BasePanel {\n\n FuBenExpList: FuBenExp[];\n\n //副本\n @property(Node) Layout_list: Node | null = null;\n list: Node | null = null;\n Prefablist: Node | null = null;\n\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_back\") {\n this.close(true);\n } \n else if (name == \"Button_dec\") {\n GlobalFunction.ShowBoxsDec(this.node.name, name);\n }\n }\n\n start() {\n this.addEvent();\n FuBenExpPoxy.Inst.SendC1624();\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.UPDATE_LOADFUBENDEC_UI, this, this.UpDataLoadDecUI);\n }\n\n onShow(data: any): void {\n\n this.Layout_list.active=false;\n\n }\n\n public UpDataLoadDecUI(){\n this.FuBenExpList = [];\n for (let i = 0; i < FuBenProxy.Inst.FuBenDataList.length; ++i) {\n\n let fuben = FuBenProxy.Inst.FuBenDataList[i];\n if(fuben){\n let level=1;\n // if( FuBenExpPoxy.Inst.p_fubenList!=undefined){\n // let p_fuben = FuBenExpPoxy.Inst.p_fubenList.find(item=>item.id==fuben.fubenID);\n // if(p_fuben){\n // level=p_fuben.lv;\n // }\n // }\n \n let fubenexp = FuBenExpPoxy.Inst.GetFuBenExpByIdAndExp(fuben.fubenID,level);\n if(fubenexp){\n this.FuBenExpList.push(fubenexp);\n }\n }\n }\n this.Prefablist = this.list;\n this.Layout_list.removeAllChildren();\n for (let i = 0; i < this.FuBenExpList.length; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.Prefablist);\n if (itemNode) {\n itemNode.parent = this.Layout_list;\n let fubenexpdata: FuBenExp = this.FuBenExpList[i];\n let fubendata = FuBenProxy.Inst.GetFubenById(fubenexpdata.fubenID);\n\n let Sprite_listbg = itemNode.getChildByName(\"Sprite_listbg\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_listbg,fubendata.icon);\n let not = itemNode.getChildByName(\"not\");\n not.active = dataUser.Instance().passId0){\n p_fuben = FuBenExpPoxy.Inst.p_fubenList.find(item=>item.id==fubenexpdata.fubenID);\n if(p_fuben){\n freenum =GlobalFunction.ConvertUndefinedToNumber(p_fuben.freeNum); \n adNum=GlobalFunction.ConvertUndefinedToNumber(p_fuben.adNum);\n adMaxNum =GlobalFunction.ConvertUndefinedToNumber(p_fuben.adMax);\n }\n }\n\n // console.log(\"freenum===================\"+freenum);\n let yse = itemNode.getChildByName(\"yse\");\n yse.active = dataUser.Instance().passId>=fubendata.pass;\n\n let advert = yse.getChildByName(\"advert\");//广告\n let Label_advert = advert.getChildByName(\"Label_advert\").getComponent(Label);\n Label_advert.string = adNum+\"/\"+adMaxNum;\n let item = yse.getChildByName(\"item\");\n let itemdata = ItemProxy.Inst.GetItemDataByID(fubendata.item);\n\n let Sprite_item = item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item,itemdata.icon);\n let Label_item = item.getChildByName(\"Label_item\").getComponent(Label);\n let beibaodata = ItemProxy.Inst.getServerItem(itemdata.itemID);\n let hasItemnum=freenum;\n if(beibaodata){\n hasItemnum +=beibaodata.num;\n }\n Label_item.string = hasItemnum+\"/\"+fubendata.itemnum;\n item.active =hasItemnum!=0;\n advert.active=!item.active;\n let Button_go = yse.getChildByName(\"Button_go\");\n let Sprite_gored = Button_go.getChildByName(\"Sprite_gored\");\n Sprite_gored.active=freenum>0 || adNum>0;\n Button_go.getComponent(Sprite).grayscale = hasItemnum==0 &&adNum==0;\n if(hasItemnum!=0 || adNum!=0){\n this.bindClickGoEvent(Button_go, fubenexpdata.ID);\n }else{\n \n this.bindClickGoOtherEvent(Button_go, fubenexpdata.ID);\n }\n //child\n let Layout_itemicon =itemNode.getChildByName(\"Layout_itemicon\"); \n let itemicon = Layout_itemicon.getChildByName(\"itemicon\"); \n let Prefabicon = itemicon;\n Layout_itemicon.removeAllChildren();\n for (let t = 0; t < fubendata.ay_item.length; t++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(Prefabicon);\n if (itemNode) {\n itemNode.parent = Layout_itemicon;\n let icon =itemNode.getChildByName(\"Sprite_itemicon\").getComponent(Sprite);\n let itemdata = ItemProxy.Inst.GetItemDataByID(Number(fubendata.ay_item[t]));\n if(itemdata){\n GlobalFunction.SetSpriteFrame(icon,itemdata.icon);\n }\n\n }\n }\n }\n }\n this.Layout_list.active=true;\n }\n\n private isSendGuide:boolean = false;\n //go\n bindClickGoEvent(itemnode: Node, goodid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGo\";\n clickEventHandler.customEventData = goodid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n\n \n let fubenexpdata = FuBenExpPoxy.Inst.GetFuBenExpByID(goodid);\n if(GuideManager.getInstance().isInGuide && fubenexpdata.fubenID == 1 && !this.isSendGuide){\n this.isSendGuide = true;\n EventManager.Inst.event(EventType.uiOpenEvent_5005 , [5005,itemnode])\n }\n }\n\n CallOnclickGo(itemnode, fubenID) {\n let id = parseInt(fubenID)\n let fubenexpdata = FuBenExpPoxy.Inst.GetFuBenExpByID(id);\n if(fubenexpdata){\n if(fubenexpdata.fubenID == 1 && GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.guideEvent_5005 , 5005);\n }\n WindowManager.Instance().open(GameConst.winPath.LoadFbenDecUI,fubenexpdata, true);\n }\n }\n\n //go\n bindClickGoOtherEvent(itemnode: Node, goodid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickGoOther\";\n clickEventHandler.customEventData = goodid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickGoOther(itemnode, fubenID) {\n GlobalFunction.ShowBox5(30008);\n }\n onLoad() {\n }\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { FuBen, FuBenProxy } from \"../proxy/FuBenProxy\";\r\nimport { FuBenExp, FuBenExpPoxy } from \"../proxy/FuBenExpPoxy\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nimport { p_reward, s1622 } from \"../../../proto/proto\";\r\nimport { find } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { ItemData, ItemProxy } from \"../proxy/ItemProxy\";\r\nimport { GlobalFunction } from \"../common/GlobalFunction\";\r\nimport { tween } from \"cc\";\r\nimport BasePanel from \"../../../core/component/BasePanel\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nimport GameConst from \"../../../core/common/GameConst\";\r\nimport WindowManager from \"../../../core/manager/WindowManager\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"LoadFbenWinUI\")\r\nexport class LoadFbenWinUI extends BasePanel{\r\n @property(Node)\r\n Label_name:Node = null;\r\n @property(Node)\r\n Label_lv:Node = null;\r\n @property(Node)\r\n Layout_item:Node = null;\r\n\r\n onBtnClicked(e: any, name: string) {\r\n if (name == \"Button_sure\") {\r\n WindowManager.Instance().open(GameConst.winPath.LoadUI, true);\r\n WindowManager.Instance().open(GameConst.winPath.LoadFbenUI, true).then(()=>{\r\n EventManager.Inst.event(EventType.PVE_FIGHT_MAP_FIGHT_END)\r\n })\r\n this.close(true)\r\n }\r\n }\r\n onLoad(){\r\n //tween(this.node).delay(4).call(()=>{this.onCloseClick()}).start()\r\n }\r\n\r\n onShow(data: any): void {\r\n this.init(data);\r\n }\r\n init(s1622:s1622){\r\n let fuben : FuBen = FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId);\r\n let fubenExp:FuBenExp = FuBenExpPoxy.Inst.GetFuBenExpByID(GameModleComp.getInstance().transPveData.fubenExpId);\r\n this.Label_name.getComponent(Label).string = fuben.lan_name;\r\n this.Label_lv.getComponent(Label).string = fubenExp.lv + \"\";\r\n if(s1622.result == 3){\r\n for(let i = 0 ; i < this.Layout_item.children.length ; i++){\r\n let itemNode:Node = this.Layout_item.children[i];\r\n let reward:p_reward = s1622.rewards[i];\r\n if(reward){\r\n itemNode.active = true;\r\n let Button_item = itemNode.getChildByName(\"Button_item\");\r\n let kuang:Sprite = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\r\n let icon:Sprite = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\r\n let num:Label = Button_item.getChildByName(\"Label_itemnum\").getComponent(Label);\r\n let itemcfg:ItemData = ItemProxy.Inst.GetItemDataByID(reward.id);\r\n GlobalFunction.SetSpriteFrame(icon,itemcfg.icon);\r\n GlobalFunction.SetSpriteFrame(kuang,ItemProxy.Inst.GetItemKuangByColor(itemcfg.color));\r\n num.string = reward.num+\"\";\r\n\r\n }else{\r\n itemNode.active = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(){\r\n this.desTroy();\r\n }\r\n desTroy(){\r\n if(this.node && this.node.parent){\r\n tween(this.node).removeSelf();\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n }\r\n }\r\n}","import { EditBox } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport GameEntry from \"../../GameEntry\";\r\nimport { GebolInAiEnum, GebolInTypeEnum } from \"../../../role/GebolinView\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nimport { Label } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nimport { FuBen, FuBenProxy } from \"../proxy/FuBenProxy\";\r\nimport { FuBenExp, FuBenExpPoxy } from \"../proxy/FuBenExpPoxy\";\r\nimport { MapType } from \"../../../map/base/MapType\";\r\nimport { GebolinMapType } from \"../../../role/Role\";\r\nimport { tween } from \"cc\";\r\nimport { Monster, MonsterPoxy } from \"../proxy/MonsterPoxy\";\r\nimport { BossView } from \"../../../role/BossView\";\r\nimport { AttType } from \"../../../enum/Enum\";\r\nimport { find } from \"cc\";\r\nimport { GlobalFunction } from \"../common/GlobalFunction\";\r\nimport { Item, ItemData, ItemProxy } from \"../proxy/ItemProxy\";\r\nimport { c1622, p_build, p_hero, p_hero_sz } from \"../../../proto/proto\";\r\nimport { CampPoxy } from \"../proxy/CampPoxy\";\r\nimport { FuBenSoldiersPoxy } from \"../proxy/FuBenSoldiersPoxy\";\r\nimport { MapModelComp } from \"../../../map/MapModel\";\r\nimport { Vec3 } from \"cc\";\r\nimport { UITransform } from \"cc\";\r\nimport { Hero, HeroProxy } from \"../proxy/HeroProxy\";\r\nimport { SkillProxy, Skills } from \"../proxy/SkillProxy\";\r\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"LoadFightUIViewComp\")\r\nexport class LoadFightUIViewComp extends Component{\r\n @property(Sprite)\r\n pointImage:Sprite = null;\r\n @property(Label)\r\n Label_fuben:Label = null;\r\n @property(Label)\r\n Label_fubenlv:Label = null;\r\n @property(ProgressBar)\r\n ProgressBar_boss:ProgressBar = null;\r\n @property(ProgressBar)\r\n ProgressBar_bosstime : ProgressBar = null;\r\n @property(Sprite)\r\n Sprite_item:Sprite = null;\r\n @property(Label)\r\n Label_item:Label = null;\r\n @property(Node)\r\n Panle_tower:Node = null;\r\n @property(Node)\r\n Layout_soldiers:Node = null;\r\n @property(Node)\r\n Layout_heroskill:Node = null;\r\n @property(Node)\r\n Panle_fuben:Node = null;\r\n @property(Label)\r\n Label_time:Label = null;\r\n @property(Label)\r\n Label_bosstime_temp:Label = null;\r\n\r\n private rewardId:number = 0;\r\n private rewardNum:number = 0;\r\n private onceNum:number = 0;\r\n private heroAllNum:number = 0;\r\n private gebolinAllNum:number = 0;\r\n\r\n private zhanLabel:Label;\r\n private faLabel:Label;\r\n private ciLabel:Label;\r\n private paoLabel:Label;\r\n\r\n private skillMap:Map = new Map();\r\n onLoad(){\r\n EventManager.Inst.on(EventType.COPY_BOSS_HP_CHANGE , this, this.onBossHpChange);\r\n EventManager.Inst.on(EventType.COPY_GEBOLIN_DEAD , this, this.onGeblDead);\r\n EventManager.Inst.on(EventType.COPY_HERO_DEAD , this, this.onHeroDead);\r\n EventManager.Inst.on(EventType.COPY_MONSTER_DEAD , this, this.onMonsterDead);\r\n EventManager.Inst.on(EventType.COPY_HERO_BEGIN_SKILL , this, this.onHeroSkill);\r\n EventManager.Inst.on(EventType.COPY_MAP_REWARD_CHANGE , this , this.onRewardChange);\r\n this.showPoint();\r\n }\r\n private showBossPro(fubenExp:FuBenExp){\r\n let interval = 1;\r\n let repeat = fubenExp.time; \r\n let delay = 0; \r\n let indexL:number = 0;\r\n this.schedule(()=>{\r\n indexL++;\r\n let time:number = fubenExp.time-indexL;\r\n let fen:number = Math.floor(time/60);\r\n let miao:number = time%60;\r\n let f = (fen ? fen : \"00\");\r\n let m=miao;\r\n if(m > 0){\r\n if(m < 10){\r\n this.Label_time.string = f + \" : 0\" + m + \"\"\r\n this.Label_bosstime_temp.string = f + \" : 0\" + m + \"\"\r\n }else{\r\n this.Label_time.string = f + \" : \" + m + \"\"\r\n this.Label_bosstime_temp.string = f + \" : \" + m + \"\"\r\n }\r\n }else{\r\n this.Label_time.string = f + \" : 00\"\r\n this.Label_bosstime_temp.string = f + \" : 00\"\r\n }\r\n \r\n },interval, repeat, delay);\r\n }\r\n private showPoint(){\r\n /**本地坐标转世界坐标*/\r\n let wordPoint:Vec3 = this.pointImage.node.getWorldPosition();\r\n /**世界坐标转屏幕坐标*/\r\n let screenPoint:Vec3 = GameEntry.Inst.mainCamera.worldToScreen(wordPoint);\r\n /**世界坐标转屏幕坐标*/\r\n let uiWordPoint:Vec3 = GameEntry.Inst.mainCamera.screenToWorld(screenPoint);\r\n /**屏幕坐标转世界坐标*/\r\n let uiScreenPoint:Vec3 = GameEntry.Inst.container.getComponent(UITransform).convertToNodeSpaceAR(uiWordPoint)\r\n MapModelComp.getInstance().copyPosInUi = new Vec3(uiScreenPoint.x , uiScreenPoint.y , 0)\r\n }\r\n init(mapType:GebolinMapType = GebolinMapType.PveCopy){\r\n let fuben : FuBen = FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId);\r\n let fubenExp:FuBenExp = FuBenExpPoxy.Inst.GetFuBenExpByID(GameModleComp.getInstance().transPveData.fubenExpId);\r\n if(mapType == GebolinMapType.PveCopy){\r\n this.Panle_fuben.active = true;\r\n this.Panle_tower.active = false;\r\n this.showFuben(fuben , fubenExp);\r\n this.showBossPro(fubenExp);\r\n }else{\r\n this.Panle_fuben.active = false;\r\n this.Panle_tower.active = true;\r\n this.showTa()\r\n }\r\n \r\n }\r\n private allReward:number = 0;\r\n private onRewardChange(){\r\n // this.allReward += this.rewardNum/10;\r\n // if(this.allReward >= this.rewardNum){\r\n // this.allReward = this.rewardNum;\r\n // }\r\n let num:number = 1 - this.ProgressBar_boss.progress;\r\n if(num >= 1){\r\n num = 1;\r\n }else if(num >= 0.8){\r\n num = 0.8;\r\n }else if(num >= 0.6){\r\n num = 0.6;\r\n }else if(num >= 0.4){\r\n num = 0.4;\r\n }else if(num >= 0.2){\r\n num = 0.2;\r\n }else{\r\n num = 0\r\n }\r\n this.Label_item.string = Math.floor(this.rewardNum*num)+\"\";\r\n }\r\n private showFuben(fuben : FuBen , fubenExp:FuBenExp){\r\n this.Label_fuben.string = fuben.lan_name;\r\n this.Label_fubenlv.string = fubenExp.lv + \"\";\r\n this.ProgressBar_bosstime.progress = 1;\r\n tween(this.ProgressBar_bosstime).to(fubenExp.time , {progress : 0}).call(()=>{\r\n if(this.node && this.node.parent){\r\n this.overCopy(1);\r\n }\r\n }).start();\r\n find(\"Label_boss\" , this.ProgressBar_boss.node).getComponent(Label).string = GameEntry.Inst.mapView.nowFubenBoss.modle.attributes.get(AttType.HpMax).value + \"\";\r\n \r\n for (const [key, value] of Array.from(fubenExp.kv_reward5.entries())) {\r\n this.rewardId = Number(key);\r\n this.rewardNum = Number(value);\r\n }\r\n let item:ItemData = ItemProxy.Inst.GetItemDataByID(this.rewardId);\r\n GlobalFunction.SetSpriteFrame(this.Sprite_item,item.icon);\r\n this.Label_item.string = \"0\";\r\n\r\n this.showGebolin();\r\n this.showSkill();\r\n }\r\n private showSkill(){\r\n let heroMap:Array = HeroProxy.Inst.szHeros;\r\n for(let i = 1 ; i <= 5 ; i++){\r\n let skillNode:Node = find(\"heroskill_\" + i , this.Layout_heroskill);\r\n let skillyes:Node = find(\"skillyes\" , skillNode);\r\n let skillnot:Node = find(\"skillnot\" , skillNode);\r\n let skilllock:Node = find(\"skilllock\" , skillNode);\r\n if(heroMap[i-1]){\r\n skilllock.active = false;\r\n let hero:p_hero_sz = heroMap[i-1];\r\n if(hero.heroId == \"0\"){\r\n skillnot.active = true;\r\n skillyes.active = false;\r\n }else{\r\n skillnot.active = false;\r\n skillyes.active = true;\r\n let szHero:p_hero = HeroProxy.Inst.GetSeverHeroByUId(hero.heroId);\r\n let localId:number = szHero.localId;\r\n let sprite:Sprite = find(\"Sprite_skill\",skillyes).getComponent(Sprite);\r\n let heroCfg:Hero = HeroProxy.Inst.GetHeroDataByID(localId);\r\n let skillId:number = Number(heroCfg.idSkill1);\r\n let skill:Skills = SkillProxy.Inst.GetSkillDataByID(skillId);\r\n GlobalFunction.SetSpriteFrame(sprite,skill.icon);\r\n this.skillMap.set(skillId , skillyes);\r\n this.heroAllNum++;\r\n }\r\n }else{\r\n skillyes.active = false;\r\n skillnot.active = false;\r\n skilllock.active = true;\r\n }\r\n }\r\n }\r\n\r\n private timeFun = null;\r\n private onHeroSkill(event:Array){\r\n let skillYes:Node = this.skillMap.get(event[0]);\r\n let allTime:number = event[1];\r\n let pro:ProgressBar = find(\"ProgressBar_skilltime\" , skillYes).getComponent(ProgressBar);\r\n pro.progress = 1;\r\n pro.node.active = true;\r\n tween(pro).to(allTime , {progress : 0}).start();\r\n \r\n let skillTime:Label = find(\"Label_skilltime\" , pro.node).getComponent(Label);\r\n skillTime.string = allTime + \"\";\r\n let interval = 1;\r\n let repeat = allTime; \r\n let delay = 0; \r\n let indexL:number = 0;\r\n if(this.timeFun){\r\n this.unschedule(this.timeFun)\r\n }\r\n this.timeFun = this.schedule(()=>{\r\n indexL++;\r\n let time:number = Math.floor(allTime-indexL);\r\n if(time > 0){\r\n skillTime.string = time + \"\";\r\n }\r\n },interval, repeat, delay);\r\n }\r\n\r\n private showGebolin(){\r\n /**拥有兵营数量*/\r\n let haveNum:number=0;\r\n for(let i = 1001 ; i <= 1003 ; i++){\r\n let build:p_build = CampPoxy.Inst.buildMaps.get(i)\r\n if(build){\r\n haveNum += build.lv1;\r\n }\r\n }\r\n /**兵种类型*/\r\n let gebolinTypeArr:Array = [];\r\n if(CampPoxy.Inst.buildMaps.get(1004)){\r\n gebolinTypeArr.push(GebolInTypeEnum.ZhanShi);\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(1007)){\r\n gebolinTypeArr.push(GebolInTypeEnum.FaShi);\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(1010)){\r\n gebolinTypeArr.push(GebolInTypeEnum.ChiKe);\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(1013)){\r\n gebolinTypeArr.push(GebolInTypeEnum.PaoShou);\r\n }\r\n /**拥有副本用兵数量*/\r\n let gebolinNum:number = 0;\r\n gebolinNum = FuBenSoldiersPoxy.Inst.getMapById(haveNum).soldiers;\r\n /**单兵数量*/\r\n this.onceNum = Math.floor(gebolinNum/gebolinTypeArr.length);\r\n let numArr:Array = [-1,-1,-1,-1,-1];\r\n for(let i = 0 ; i < gebolinTypeArr.length ; i++){\r\n numArr[i] = 0;\r\n }\r\n let index:number = 0;\r\n for(let i = 0 ; i < gebolinNum ; i++){\r\n numArr[index]++;\r\n index++;\r\n if(index >= gebolinTypeArr.length){\r\n index = 0;\r\n }\r\n }\r\n this.gebolinAllNum = gebolinNum;\r\n for(let i = 1 ; i <= 4 ; i++){\r\n let soidNode:Node = find(\"soldiers_\" + i,this.Layout_soldiers);\r\n if(gebolinTypeArr.indexOf(i)>=0){\r\n soidNode.active = true;\r\n let gebolinSprite:Sprite = find(\"Sprite_soldiers\" , soidNode).getComponent(Sprite);\r\n let gebolinLabel:Label = find(\"Label_soldiers\" , soidNode).getComponent(Label);\r\n if(i == 1){\r\n this.zhanLabel = gebolinLabel;\r\n GlobalFunction.SetSpriteFrame(gebolinSprite,\"ui_shibing_lx_zhanshi\");\r\n }else if(i == 2){\r\n this.faLabel = gebolinLabel;\r\n GlobalFunction.SetSpriteFrame(gebolinSprite,\"ui_shibing_lx_fashi\");\r\n }else if(i == 3){\r\n this.ciLabel = gebolinLabel;\r\n GlobalFunction.SetSpriteFrame(gebolinSprite,\"ui_shibing_lx_cike\");\r\n }else if(i == 4){\r\n this.paoLabel = gebolinLabel;\r\n GlobalFunction.SetSpriteFrame(gebolinSprite,\"ui_shibing_lx_paoshou\");\r\n }\r\n gebolinLabel.string = numArr[i-1]+\"\";\r\n // gebolinLabel.string = this.onceNum+\"\";\r\n }else{\r\n soidNode.active = false;\r\n }\r\n }\r\n }\r\n private onGeblDead(event:number){\r\n if(event == 1){\r\n let str:number = Number(this.zhanLabel.string);\r\n let have:number = str-1;\r\n if(have < 0){\r\n have = 0;\r\n }\r\n this.zhanLabel.string = have+\"\";\r\n }else if(event == 2){\r\n let str:number = Number(this.faLabel.string);\r\n let have:number = str-1;\r\n if(have < 0){\r\n have = 0;\r\n }\r\n this.faLabel.string = have+\"\";\r\n }else if(event == 3){\r\n let str:number = Number(this.ciLabel.string);\r\n let have:number = str-1;\r\n if(have < 0){\r\n have = 0;\r\n }\r\n this.ciLabel.string = have+\"\";\r\n }else if(event == 4){\r\n let str:number = Number(this.paoLabel.string);\r\n let have:number = str-1;\r\n if(have < 0){\r\n have = 0;\r\n }\r\n this.paoLabel.string = have+\"\";\r\n }\r\n this.gebolinAllNum--;\r\n if(this.heroAllNum <= 0 && this.gebolinAllNum <= 0){\r\n this.overCopy(2);\r\n }\r\n }\r\n\r\n\r\n private bossNow:number = 0;\r\n private bossMax:number = 0;\r\n private onBossHpChange(arr:Array){\r\n let now:number = arr[0];\r\n let max:number = arr[1];\r\n let pro:number = now / max;\r\n if(pro >= 1){\r\n pro = 1;\r\n }\r\n if(pro <= 0){\r\n pro = 0;\r\n }\r\n\r\n this.bossNow = Math.floor(now);\r\n this.bossMax = Math.floor(max);\r\n\r\n this.ProgressBar_boss.progress = pro;\r\n find(\"Label_boss\" , this.ProgressBar_boss.node).getComponent(Label).string = Math.floor(now) + \"\";\r\n\r\n\r\n }\r\n\r\n private showTa(){\r\n\r\n }\r\n\r\n private onHeroDead(){\r\n this.heroAllNum--;\r\n if(this.heroAllNum <= 0 && this.gebolinAllNum <= 0){\r\n this.overCopy(2);\r\n }\r\n }\r\n\r\n private onMonsterDead(){\r\n this.overCopy(3);\r\n }\r\n\r\n\r\n private isSend:boolean = false;\r\n /**\r\n * type:1 时间到 2:死完了 3:boss死了 4:自退\r\n */\r\n private overCopy(type:number){\r\n let fubenExp:FuBenExp = FuBenExpPoxy.Inst.GetFuBenExpByID(GameModleComp.getInstance().transPveData.fubenExpId)\r\n\r\n \r\n var c1622: c1622 = {\r\n id:GameModleComp.getInstance().transPveData.fubenId,\r\n lv:fubenExp.lv,\r\n monsterId:fubenExp.monster,\r\n killHp:1\r\n };\r\n\r\n console.log(\"=================发送c1622.type==============\"+type);\r\n if(type == 1){\r\n c1622.killHp = this.bossMax-this.bossNow;\r\n }else if(type == 2){\r\n c1622.killHp = this.bossMax-this.bossNow;\r\n }else if(type == 3){\r\n this.Label_item.string = Math.floor(this.rewardNum)+\"\";\r\n c1622.killHp = this.bossMax;\r\n }else if(type==4){\r\n c1622.killHp = 0;\r\n }\r\n if(!this.isSend){\r\n this.isSend = true;\r\n send2client(\"c1622\",c1622);\r\n // EventManager.Inst.event(EventType.PVE_FIGHT_MAP_FIGHT_END);\r\n }\r\n }\r\n\r\n desTroy(){\r\n if(this && this.ProgressBar_bosstime){\r\n tween(this.ProgressBar_bosstime).removeSelf();\r\n }\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n EventManager.Inst.off(EventType.COPY_BOSS_HP_CHANGE , this, this.onBossHpChange);\r\n EventManager.Inst.off(EventType.COPY_GEBOLIN_DEAD , this, this.onGeblDead);\r\n EventManager.Inst.off(EventType.COPY_HERO_DEAD , this, this.onHeroDead);\r\n EventManager.Inst.off(EventType.COPY_MONSTER_DEAD , this, this.onMonsterDead);\r\n EventManager.Inst.off(EventType.COPY_HERO_BEGIN_SKILL , this, this.onHeroSkill);\r\n EventManager.Inst.off(EventType.COPY_MAP_REWARD_CHANGE , this , this.onRewardChange);\r\n this.destroy();\r\n }\r\n\r\n onBackClick(){\r\n this.overCopy(4);\r\n }\r\n}","import { _decorator, Component, Material, SpriteFrame, Node, Label, Widget, Sprite, UITransform, tween, Tween, UIOpacity, v3 } from 'cc';\nconst { ccclass, property, requireComponent, executeInEditMode, disallowMultiple, executionOrder } = _decorator;\n\nenum StateType {\n Node,\n Open,\n Waiting,\n Close\n}\n\n@ccclass('LoadingIcon')\nexport class LoadingIcon extends Component {\n material: Material;\n spriteFrame: SpriteFrame;\n scale: number = 1;\n stateType = StateType.Node;\n angleValue: number = 0;\n widthValue: number;\n heightValue: number;\n public ji: Node;\n public tips: Label;\n protected onEnable(): void {\n this.scale = 10;\n this.getComponent(Widget).updateAlignment();\n this.material = this.getComponent(Sprite).getMaterialInstance(0);\n this.spriteFrame = this.getComponent(Sprite).spriteFrame;\n let { width, height } = this.spriteFrame.rect;\n this.widthValue = this.node.getComponent(UITransform).width / width;\n this.heightValue = this.node.getComponent(UITransform).height / height;\n this.updateProperty();\n this.node.getComponent(UIOpacity).opacity = 0;\n }\n\n public Close(duration: number = 1, target = 1): void {\n this.angleValue = 0;\n this.stateType = StateType.Close;\n let com = this as LoadingIcon;\n this.scale = 10;\n this.node.getComponent(UIOpacity).opacity = 0;\n Tween.stopAllByTarget(com);\n Tween.stopAllByTarget(this.node);\n tween(com).to(duration, { scale: target }, { easing: 'backOut' }).set({ stateType: StateType.Waiting }).start();\n tween(this.node).to(duration / 2, {}).start();\n }\n\n public Open(duration: number = 0.5): void {\n this.node.getComponent(UIOpacity).opacity = 255;\n this.stateType = StateType.Open;\n let com = this as LoadingIcon;\n Tween.stopAllByTarget(com);\n Tween.stopAllByTarget(this.node);\n tween(com).to(duration, { scale: 20 }, { easing: 'sineIn' }).start();\n tween(this.node).delay(duration * 0.2).to(duration * 0.6, {}).start();\n }\n\n updateProperty() {\n this.material.setProperty('angle', this.angleValue);\n this.material.setProperty('width', this.widthValue * (1 / this.scale));\n this.material.setProperty('height', this.heightValue * (1 / this.scale));\n }\n\n aniTipsInfo = ['请稍后', '请稍后.', '请稍后..', '请稍后...'];\n aniTipsIndex = 0;\n aniTipsTimer = 0;\n protected update(dt: number): void {\n if (this.stateType == StateType.Open) {\n // this.angleValue += dt * 720;\n }\n this.updateProperty();\n\n if (this.scale <= 1.9) {\n this.ji.active = true;\n this.ji.scale = v3(Math.max(0.2, this.scale));\n this.ji.getComponent(UIOpacity).opacity = (1.9 - this.scale) / 0.9 * 255;\n this.tips.node.active = true;\n this.tips.node.getComponent(UIOpacity).opacity = (1.9 - this.scale) / 0.9 * 255;\n this.aniTipsTimer += dt;\n if (this.aniTipsTimer > 0.5) {\n this.aniTipsTimer -= 0.5;\n this.aniTipsIndex++;\n if (this.aniTipsIndex >= this.aniTipsInfo.length) {\n this.aniTipsIndex = 0;\n }\n }\n this.tips.string = this.aniTipsInfo[this.aniTipsIndex];\n } else {\n this.aniTipsIndex = 0;\n this.tips.node.active = false;\n this.ji.active = false;\n }\n }\n}","import { _decorator } from 'cc';\nconst { ccclass, property } = _decorator;\n\nimport GameConst from \"../../core/common/GameConst\";\nimport BasePanel from \"../../core/component/BasePanel\";\nimport WindowManager from \"../../core/manager/WindowManager\";\ndeclare var GameGlobal: any;\nconst wx = window['wx'];\n// /**loading界面带一个客服按钮 */\n\n@ccclass('LoadingKefuWin')\nexport default class LoadingKefuWin extends BasePanel {\n onBtnClicked(e: any, name: string) {\n switch (name) {\n case 'btn_kefu':\n WindowManager.Instance().open(GameConst.winPath.KeFuLoadingUI, null, true);\n break;\n }\n }\n}","import { Sprite } from 'cc';\nimport { tween } from 'cc';\nimport { Component } from 'cc';\nimport { _decorator} from 'cc';\nimport { PveTypeEnum } from '../../enum/Enum';\nimport { MapPoxy, Maps } from '../game/proxy/MapPoxy';\nimport { Pass, PassPoxy } from '../game/proxy/PassPoxy';\nimport { GameModleComp } from '../../game/GameModle';\nimport { assetManager } from 'cc';\nimport { Logger } from '../../../core/common/log/Logger';\nimport { EventManager, EventType } from '../../core/manager/EventManager';\nimport WindowManager from '../../core/manager/WindowManager';\nimport GameConst from '../../core/common/GameConst';\nimport { FuBen, FuBenProxy } from '../game/proxy/FuBenProxy';\nconst { ccclass, property } = _decorator;\n@ccclass('LoadingUiComp')\nexport default class LoadingUiComp extends Component {\n @property(Sprite)\n Sprite_jiazai : Sprite = null;\n\n private lginEnd:boolean = false;\n private waitEnd:boolean = false;\n onLoad(): void {\n }\n init(type:PveTypeEnum){\n if(type == PveTypeEnum.None){\n this.showPveBoss();\n }else{\n this.showPveCopy();\n }\n }\n private showPveCopy(){\n \n EventManager.Inst.event(EventType.CHANGE_REMOVE_MAIN_UI);\n WindowManager.Instance().removeWindow(GameConst.winPath.MainUI , true);\n // WindowManager.Instance().removeWindow(GameConst.winPath.TitleUI , true);\n setTimeout(() => {\n this.waitEnd = true;\n this.closeMe()\n }, 2000);\n tween(this.Sprite_jiazai.node).to(25 , {angle : -12000}).start();\n let fuben:FuBen = FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId);\n let map:Maps = MapPoxy.Inst.getMapById(Number(fuben.map));\n let b = assetManager.getBundle(\"mapRes\");\n b.loadDir(\"map/\"+map.mapSource, (err, assets)=> {\n Logger.logView(\"切换地图 map/\"+map.mapSource + \"初始化完成\");\n this.lginEnd = true;\n EventManager.Inst.event(EventType.CLOSE_OTHER_UI);\n this.closeMe();\n });\n }\n private showPveBoss(){\n WindowManager.Instance().removeWindow(GameConst.winPath.MainUI,true)\n tween(this.Sprite_jiazai.node).to(25 , {angle : -12000}).start();\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\n let map:Maps = MapPoxy.Inst.getMapById(pass.mapId);\n let b = assetManager.getBundle(\"mapRes\");\n b.loadDir(\"map/\"+map.mapSource, (err, assets)=> {\n Logger.logView(\"切换地图 map/\"+map.mapSource + \"初始化完成\");\n EventManager.Inst.event(EventType.CHANGE_NEW_PASS);\n EventManager.Inst.event(EventType.CLOSE_OTHER_UI);\n WindowManager.Instance().open(GameConst.winPath.MainUI)\n this.desTory();\n });\n }\n private closeMe(){\n if(this.lginEnd && this.waitEnd){\n EventManager.Inst.event(EventType.CHANGE_TO_PVE_FIGHT_MAP);\n this.desTory();\n }\n }\n private desTory(){\n setTimeout(() => {\n if(this.node&&this.node.parent){\n this.node.parent.removeChild(this.node);\n }\n this.destroy();\n }, 500);\n }\n\n}","import { _decorator, Texture2D, Label, Node, Sprite, ProgressBar, Button, sys, assetManager, game } from 'cc';\nconst { ccclass, property } = _decorator;\nimport { PREVIEW } from 'cc/env';\n\nimport GameConst from \"../../core/common/GameConst\";\nimport BasePanel from \"../../core/component/BasePanel\";\nimport MsgHints from \"../../core/component/MsgHints\";\nimport WindowManager from \"../../core/manager/WindowManager\";\nimport { GameManager } from \"../GameManager\";\nimport { v3 } from 'cc';\nimport { v2 } from 'cc';\nimport { Vec3 } from 'cc';\nimport { clamp01 } from 'cc';\nimport { resources } from 'cc';\nimport { EventManager, EventType } from '../../core/manager/EventManager';\nimport GameEntry from '../GameEntry';\nimport ConfigManager from '../../_config/ConfigManager';\nimport { Logger } from '../../../core/common/log/Logger';\ndeclare var GameGlobal: any;\nconst wx = window['wx'];\n\n@ccclass('LoadingWin')\nexport default class LoadingWin extends BasePanel {\n onBtnClicked(e: any, name: string) {\n switch (name) {\n case 'btn_kefu':\n // WindowManager.Instance().open(GameConst.winPath.KeFuLoadingUI, null, true);\n break;\n case 'btn_age12':\n // WindowManager.Instance().open(GameConst.winPath.Age12LoadingUI, null, true);\n break;\n }\n }\n isNew=true;\n // progress_loading: cc.ProgressBar = null;\n remoteBG: Texture2D;\n @property(Label)\n lbl_version: Label | null = null;\n // node_loading: Node | null = null;\n sp_bar: Sprite | null = null;\n // node_tips: Node | null = null;\n // progress_leaf: ProgressBar | null = null;\n\n @property(ProgressBar) loadBar: ProgressBar = null; // 进度条\n @property(Label) desc: Label = null; // 描述文本 \n // node_logo: cc.Node = null;\n // node_logo_target: cc.Node = null;\n // node_ji: cc.Node = null;\n // node_ji_target: cc.Node = null;\n\n onShow(data: any) {\n Logger.logNet(\"----------------onLoading-----------------\");\n // this.node_loading.active = false;\n // this.node_tips.active = false;\n // GameManager.Instance().timer.frameOnce(3, this, this.logoAni);\n // this.node.runAction(cc.sequence(cc.delayTime(10), cc.callFunc(() => {\n // this.btn_clear.node.active = true;\n // })))\n this.lbl_version.string = \"v\" + GameConst.LocalVersion;\n\n if (window['wx'] != null) {\n let version = window['__wxConfig'].envVersion;\n switch (version) {\n case 'develop':\n this.lbl_version.string += ' dev';\n break;\n case 'trial':\n this.lbl_version.string += ' tri';\n break;\n case 'release':\n this.lbl_version.string += ' pro';\n break;\n default:\n break;\n }\n this.lbl_version.string += ' ' + wx.getSystemInfoSync().SDKVersion;\n } else {\n if (PREVIEW) {\n this.lbl_version.string += ' pre'\n }\n }\n\n this.sp_bar.fillRange = 0;\n }\n\n logoAni() {\n // cc.tween(this.node_ji).to(0.2, { y: this.node_ji_target.y, scale: 1, width: this.node_ji_target.width, height: this.node_ji_target.height }, { easing: 'sineOut' }).start();\n // cc.tween(this.node_logo).delay(0.2).to(0.2, { y: this.node_logo_target.y }, { easing: 'backOut' }).call(() => {\n // this.node_loading.active = true;\n // this.node_tips.active = true;\n // }).start();\n }\n // btn_test: cc.Button = null;\n\n protected onLoad(): void {\n // if (PREVIEW || sys.platform == sys.Platform.WECHAT_GAME) {\n // WindowManager.Instance().open(GameConst.winPath.LoadingKefuWin)\n // }\n\n // 获取已加载的分包\n let resourceBundle = assetManager.bundles.get(\"resources\");\n resourceBundle = assetManager.getBundle(\"resources\");\n resourceBundle = assetManager.resources;\n\n // 获取某个指定文件夹下的所有资源信息\n const resourcePaths = resourceBundle.getDirWithPath(\"./\");\n // Logger.logNet(\"resourcePaths\", resourcePaths);\n const maxLen = resourcePaths.length;\n\n // Logger.logNet(\"===================获取最大资源长度=======================\"+maxLen);\n\n // 设置进度相关\n this.desc.string = \"\"\n this.loadBar.progress = 0;\n \n let loadCount = 0;\n for(let i = 0; i < maxLen; ++i) {\n const path = resourcePaths[i].path;\n // Logger.logNet(\"path:\", path);\n resources.preload(path, \n (completedCount: number, totalCount: number, item) => {\n // Logger.logNet(\"progress:\", completedCount, totalCount);\n }, \n (err: Error | null, data: any) => {\n if (err) {\n return console.error(\"preload failed: \" + err.message);\n }\n this.aniTipsIndex++;\n if (this.aniTipsIndex >= this.aniTipsInfo.length) {\n this.aniTipsIndex = 0;\n }\n this.desc.string = this.aniTipsInfo[this.aniTipsIndex];\n // 加载进度改变\n loadCount++;\n //this.desc.string = `加载${path}`\n this.loadBar.progress = clamp01(loadCount/maxLen);\n this.sp_bar.fillRange = this.loadBar.progress; \n // Logger.logNet(`预加载的资源:${path}, 进度${this.loadBar.progress}`);\n \n if (loadCount >= maxLen) {\n setTimeout(() => {\n this.desc.string = \"加载完成\";\n // 切换场景,进入主页面\n //TODO 需要在这里获取角色的基础数据 初始化gamemodle数据 包括关卡 角色属性 收益等 服务器消息返回后进行下一步\n WindowManager.Instance().open(GameConst.winPath.MainUI) \n // .then(() => {\n // Logger.logView(\"LoadingWin 移除\")\n // WindowManager.Instance().removeWindow(GameConst.winPath.LoadingWin,true);\n // WindowManager.Instance().removeWindow(GameConst.winPath.EnterUI,true);\n // })\n \n // Logger.logView(\"LoadingWin 移除\")\n WindowManager.Instance().removeWindow(GameConst.winPath.LoadingWin,true);\n // WindowManager.Instance().removeWindow(GameConst.winPath.EnterUI,true);\n EventManager.Inst.event(EventType.LOGIN_OVER_LOAD_MAP);\n }, 1000);\n }\n }\n );\n }\n }\n\n protected onDestroy(): void {\n // if (PREVIEW || sys.platform == sys.Platform.WECHAT_GAME) {\n // WindowManager.Instance().removeWindow(GameConst.winPath.LoadingKefuWin, true)\n // }\n }\n\n onHide(): void {\n if (this.remoteBG != null) {\n // cc.assetManager.releaseAsset(this.remoteBG)\n this.remoteBG.destroy();\n this.remoteBG = null;\n }\n }\n\n aniTipsInfo = ['加载中', '加载中.', '加载中..', '加载中...'];\n aniTipsIndex = 0;\n aniTipsTimer = 0;\n // lbl_loadingTips: Label | null = null;\n protected update(dt: number): void {\n // if(this.isNew){\n // this.aniTipsTimer += dt;\n // if (this.aniTipsTimer > 0.5) {\n // this.aniTipsTimer -= 0.5;\n // this.aniTipsIndex++;\n // if (this.aniTipsIndex >= this.aniTipsInfo.length) {\n // this.aniTipsIndex = 0;\n // }\n // }\n // this.lbl_loadingTips.string = this.aniTipsInfo[this.aniTipsIndex];\n // this.sp_bar.fillRange += (1 - this.sp_bar.fillRange) * 0.05\n // //this.progress_leaf.progress = this.data.progress;\n // this.progress_leaf.progress = this.sp_bar.fillRange;\n // // Logger.logNet(\"this.progress_leaf.progress==\"+this.progress_leaf.progress);\n // if(this.progress_leaf.progress>=0.99){\n // this.isNew=false;\n // this.progress_leaf.progress = 1;\n // WindowManager.Instance().open(GameConst.winPath.MainUI)\n // .then(() => {\n // WindowManager.Instance().removeWindow(GameConst.winPath.LoadingWin,true);\n // })\n // }\n // }\n\n }\n\n btn_wx_auth: Button | null = null;\n clearRes() {\n if (wx) {\n wx.showModal({\n title: '提示',\n content: '是否要清理缓存重新进入游戏?',\n success: function (res) {\n if (res.confirm) {\n wx.clearStorage()\n // TODO 3.x弃用了, 需要替代方案\n // audioEngine.stopAll() \n assetManager.releaseAll()\n game.restart()\n MsgHints.show(\"清理成功,请重启游戏\")\n } else {\n\n }\n }\n })\n }\n }\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { Label } from \"cc\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { BuffPoxy } from \"../proxy/BuffPoxy\";\nimport { Vec3 } from \"cc\";\nimport { ClientRequest } from \"electron\";\nimport { Sprite } from \"cc\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { BoxData } from \"../common/Component\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { FuBen, FuBenProxy } from \"../proxy/FuBenProxy\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { PassPoxy } from \"../proxy/PassPoxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport GameEntry from \"../../GameEntry\";\nimport { FightMapEnum } from \"../../../enum/Enum\";\nimport { Button } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass(\"LoadUI\")\nexport default class LoadUI extends BasePanel {\n\n fuBenData: FuBen;\n\n //副本\n @property(Node) Sprite_fubenred: Node | null = null;\n @property(Node) Sprite_fubenlock: Node | null = null;\n @property(Node) Label_towerlock: Node | null = null;\n @property(Button) Button_fuben: Button | null = null;\n\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_back\") {\n\n if(GameModleComp.getInstance().isInCopy){\n GameModleComp.getInstance().isInCopy = false;\n GameEntry.Inst.mapView.mapType = FightMapEnum.GuanQiaMap;\n console.log(\"关闭副本,切入正常游戏\")\n }\n if (!GlobalFunction.IsExistMainLayer()) {\n WindowManager.Instance().open(GameConst.winPath.MainUI, null, true);\n }\n this.close(true);\n } else if (name == \"Button_tower\") {\n this.ShowBox5();\n } else if (name == \"Button_hole\") {\n this.ShowBox5();\n } else if (name == \"Button_manor\") {\n this.ShowBox5();\n } else if (name == \"Button_fuben\") {\n EventManager.Inst.event(EventType.guideEvent_5003 , 5003);\n if (dataUser.Instance().passId >= this.fuBenData.pass) {\n WindowManager.Instance().open(GameConst.winPath.LoadFbenUI, true);\n }\n\n }\n }\n\n start() {\n this.addEvent();\n // ShopProxy.Inst.SendC1210();//兵种装备商城信息\n }\n\n private addEvent() {\n // EventManager.Inst.on(EventType.REFRESH_SOLDIERSHOP_UI, this, this.RefreshSoldierShopUi);\n }\n\n onShow(data: any): void {\n this.Sprite_fubenlock.active = false;\n let Label_towerlock = this.Label_towerlock.getComponent(Label);\n if (FuBenProxy.Inst.FuBenDataList != undefined && FuBenProxy.Inst.FuBenDataList.length > 0) {\n\n this.fuBenData = FuBenProxy.Inst.GetFubenById(FuBenProxy.Inst.FuBenDataList[0].fubenID);\n if (this.fuBenData) {\n this.Sprite_fubenlock.active = dataUser.Instance().passId < this.fuBenData.pass;\n if (this.Sprite_fubenlock.active) {\n Label_towerlock.string = PassPoxy.Inst.GetCurrentLevelDec(this.fuBenData.pass);\n }\n }\n }\n if(GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.uiOpenEvent_5003 , [5003,this.Button_fuben.node])\n }\n // this.scheduleOnce(function() {\n // // 这里的 this 指向 component\n // this.close(true);\n // }, 1.5);\n }\n\n ShowBox5() {\n let _data: BoxData = new BoxData\n {\n _data.content = GlobalFunction.GetMsg(20099);\n };\n GlobalFunction.ShowBox(_data, BoxStyle.BoxStyle5);\n }\n onHide(): void {\n }\n onLoad() {\n }\n}","\nimport { Console } from 'console';\nimport * as i18n from './LanguageData';\nimport { _decorator, Component, Label } from 'cc';\nimport { sys } from 'cc';\nimport ConfigManager from '../../../assets/scripts/_config/ConfigManager';\nimport { resources } from 'cc';\nimport { JsonAsset } from 'cc';\nimport { loader } from 'cc';\nimport { error } from 'cc';\nimport { assetManager } from 'cc';\nimport { AssetManager } from 'cc';\nimport { allowModifyCurveType } from '../../../@types/packages/scene/@types/cce/3d/manager/animation/utils';\nimport TextMeshPro from '../../../assets/textMeshPro/scripts/TextMeshPro';\nimport TmpRichText from '../../../assets/textMeshPro/scripts/TmpRichText';\nimport { GlobalFunction } from '../../../assets/scripts/modules/game/common/GlobalFunction';\nconst { ccclass, property, executeInEditMode } = _decorator;\n\n@ccclass('LocalizedLabel')\n@executeInEditMode\nexport class LocalizedLabel extends Component {\n label: Label | null = null;\n\n @property({ visible: false })\n @property(TextMeshPro) textMeshPro: TextMeshPro = null;\n\n @property({ visible: false })\n @property(TmpRichText) tmpRichText: TmpRichText = null;\n\n @property({ visible: false })\n key: string = '';\n @property(JsonAsset)\n language: JsonAsset = null;\n jsonObject: JSON = null;\n @property({ displayName: 'Key', visible: true })\n get _key() {\n return this.key;\n }\n set _key(str: string) {\n // sys.localStorage.clear();\n if (!ConfigManager.GetInstance().getLoadResult()) {\n let tmpRichTexts = this.node.getComponent(TmpRichText);\n if (tmpRichTexts) {\n this.tmpRichText = tmpRichTexts;\n }\n this.key = this.node.name;\n if (!!this.language) {\n // 将JSON对象转换为字符串\n let jsonString = JSON.stringify(this.language.json);\n sys.localStorage.setItem('JsonKey', jsonString);\n this.jsonObject = JSON.parse(sys.localStorage.getItem('JsonKey'));\n\n } else {\n let jsonString = sys.localStorage.getItem('JsonKey');\n if (jsonString) {\n // 将字符串解析为JSON对象\n this.jsonObject = JSON.parse(jsonString);\n }\n }\n this.label && (this.label.string = i18n.setKey(this.key, this.jsonObject));\n this.textMeshPro && (this.textMeshPro.string = i18n.setKey(this.key, this.jsonObject));\n this.tmpRichText && (this.tmpRichText.string = i18n.setKey(this.key, this.jsonObject));\n }\n // this.key = str;\n }\n\n onLoad() {\n if (!i18n.ready) {\n //i18n.init('zh');\n i18n.init('');\n }\n this.fetchRender();\n }\n protected update(dt: number): void {\n if (!ConfigManager.GetInstance().getLoadResult()) {\n if ((this.label && !!this.label.string) || this.textMeshPro && !!this.textMeshPro.string || this.node.getComponent(TmpRichText) && !!this.node.getComponent(TmpRichText).string) {\n let tmpRichTexts = this.node.getComponent(TmpRichText);\n if (tmpRichTexts) {\n this.tmpRichText = tmpRichTexts;\n }\n this.key = this.node.name;\n if (!!this.language) {\n\n // 将JSON对象转换为字符串\n let jsonString = JSON.stringify(this.language.json);\n sys.localStorage.setItem('JsonKey', jsonString);\n\n this.jsonObject = JSON.parse(sys.localStorage.getItem('JsonKey'));\n\n } else {\n\n let jsonString = sys.localStorage.getItem('JsonKey');\n if (jsonString) {\n // 将字符串解析为JSON对象\n this.jsonObject = JSON.parse(jsonString);\n }\n }\n this.label && (this.label.string = i18n.setKey(this.key, this.jsonObject));\n this.textMeshPro && (this.textMeshPro.string = i18n.setKey(this.key, this.jsonObject));\n this.tmpRichText && (this.tmpRichText.string = i18n.setKey(this.key, this.jsonObject));\n\n }\n // if (this.label.node.name != this.key) {\n // if (this.label) {\n // this.key = this.label.node.name;\n // }\n // if (this.textMeshPro) {\n // this.key = this.textMeshPro.node.name;\n // }\n // let tmpRichTexts = this.node.getComponent(TmpRichText);\n // if (tmpRichTexts) {\n // this.tmpRichText = tmpRichTexts;\n // this.key = this.tmpRichText.node.name;\n // }\n // let jsonString = sys.localStorage.getItem('JsonKey');\n // if (jsonString) {\n // // 将字符串解析为JSON对象\n // this.jsonObject = JSON.parse(jsonString);\n // }\n // this.label && (this.label.string = i18n.setKey(this.key, this.jsonObject));\n // this.textMeshPro && (this.textMeshPro.string = i18n.setKey(this.key, this.jsonObject));\n // this.tmpRichText && (this.tmpRichText.string = i18n.setKey(this.key, this.jsonObject));\n // }\n }\n }\n fetchRender() {\n let label = this.getComponent('cc.Label') as Label;\n if (label) {\n this.label = label;\n this.updateLabel();\n return;\n }\n let textMeshPro = this.getComponent(TextMeshPro);\n if (textMeshPro) {\n this.textMeshPro = textMeshPro;\n if (sys.localStorage.getItem('language') && (sys.localStorage.getItem('language') != 'zh'|| sys.localStorage.getItem('language') != 'tw') && GlobalFunction.IsLogin) {\n this.textMeshPro.spacingX = 0;\n }\n this.updateLabel();\n return;\n }\n let tmpRichText = this.getComponent(TmpRichText);\n if (tmpRichText) {\n this.tmpRichText = tmpRichText;\n this.updateLabel();\n return;\n }\n }\n\n updateLabel() {\n this.label && (this.label.string = i18n.t(this.key));\n this.textMeshPro && (this.textMeshPro.string = i18n.t(this.key));\n this.tmpRichText && (this.tmpRichText.string = i18n.t(this.key));\n }\n}\n","\nimport * as i18n from './LanguageData';\n\nimport { _decorator, Component, SpriteFrame, Sprite } from 'cc';\nconst { ccclass, property, executeInEditMode } = _decorator;\n\n@ccclass('LocalizedSpriteItem')\nclass LocalizedSpriteItem {\n @property\n language: string = 'zh';\n @property({\n type: SpriteFrame,\n })\n spriteFrame: SpriteFrame | null = null;\n}\n\n@ccclass('LocalizedSprite')\n@executeInEditMode\nexport class LocalizedSprite extends Component {\n sprite: Sprite | null = null;\n\n @property({\n type: LocalizedSpriteItem,\n })\n spriteList = [];\n\n onLoad() {\n if (!i18n.ready) {\n i18n.init(i18n._language);\n }\n this.fetchRender();\n }\n\n fetchRender () {\n let sprite = this.getComponent('cc.Sprite') as Sprite;\n if (sprite) {\n this.sprite = sprite;\n this.updateSprite();\n return;\n } \n }\n\n updateSprite () {\n for (let i = 0; i < this.spriteList.length; i++) {\n const item = this.spriteList[i];\n // @ts-ignore\n if (item.language === i18n._language) {\n // @ts-ignore\n this.sprite.spriteFrame = item.spriteFrame;\n break;\n }\n }\n }\n}\n","import { _decorator, sys } from 'cc';\nexport default class LocalStorage {\n static cache: { [key: string]: string } = {}\n public static setItem(key: string, value: any, force: boolean = false) {\n if (this.cache[key] != value || force) {\n if (value == null || value == '') {\n sys.localStorage.removeItem(key);\n delete this.cache[key];\n } else {\n sys.localStorage.setItem(key, JSON.stringify(value))\n // Laya.LocalStorage.setItem(key, JSON.stringify(value));\n }\n }\n this.cache[key] = value;\n if (value == null || value == '') {\n delete this.cache[key];\n }\n }\n public static getItem(key: string): any {\n if (this.cache[key] == undefined) {\n var str = sys.localStorage.getItem(key)\n if (str == null || str == '' || str == undefined){\n return null;\n } else if (this.isJSON(str)) {\n this.cache[key] = JSON.parse(str);\n } else {\n this.cache[key] = str;\n }\n }\n return this.cache[key];\n }\n\n static isJSON(str: string): boolean {\n if (typeof str == 'string') {\n try {\n var obj = JSON.parse(str);\n return true;\n } catch (e) {\n return false;\n }\n }\n }\n\n public static clear() {\n // Laya.LocalStorage.clear();\n }\n\n public static removeItem(key: string) {\n delete this.cache[key];\n sys.localStorage.removeItem(key);\n }\n\n public static get Cache(): any {\n return this.cache;\n }\n\n public static set Cache(v: any) {\n Object.keys(this.cache).forEach(key => {\n v[key] = this.cache[key];\n })\n this.cache = v;\n Object.keys(v).forEach(key => {\n LocalStorage.setItem(key, this.cache[key], true);\n })\n }\n}","import { log } from \"cc\";\r\n\r\n/** 日志类型 */\r\nexport enum LogType {\r\n /** 网络层日志 */\r\n Net = 1,\r\n /** 数据结构层日志 */\r\n Model = 2,\r\n /** 业务逻辑层日志 */\r\n Business = 4,\r\n /** 视图层日志 */\r\n View = 8,\r\n /** 配置日志 */\r\n Config = 16,\r\n /** 标准日志 */\r\n Trace = 32,\r\n}\r\n\r\nvar names = {\r\n \"1\": \"网络日志\",\r\n \"2\": \"数据日志\",\r\n \"4\": \"业务日志\",\r\n \"8\": \"视图日志\",\r\n \"16\": \"配置日志\",\r\n \"32\": \"标准日志\",\r\n}\r\n\r\n/** \r\n * 日志管理 \r\n * @example\r\noops.log.trace(\"默认标准日志\");\r\noops.log.logConfig(\"灰色配置日志\");\r\noops.log.logNet(\"橙色网络日志\");\r\noops.log.logModel(\"紫色数据日志\");\r\noops.log.logBusiness(\"蓝色业务日志\");\r\noops.log.logView(\"绿色视图日志\");\r\n */\r\nexport class Logger {\r\n _fps: number = 0;\r\n\r\n set FPS(v) {\r\n this.FPS = v;\r\n }\r\n get FPS() {\r\n return this.FPS;\r\n }\r\n\r\n private static tags: number = 0;\r\n\r\n private static init(): void {\r\n this.tags = \r\n LogType.Net |\r\n LogType.Model |\r\n LogType.Business |\r\n LogType.View |\r\n LogType.Config |\r\n LogType.Trace;\r\n }\r\n\r\n /** \r\n * 设置显示的日志类型,默认值为不显示任何类型日志\r\n */\r\n static setTags(tag: LogType = null!) {\r\n if (tag) {\r\n this.tags = tag;\r\n }\r\n }\r\n\r\n /**\r\n * 记录开始计时\r\n * @param describe 标题描述\r\n * @example\r\n log.start();\r\n ...\r\n 省略N行代码\r\n ...\r\n log.end();\r\n */\r\n static start(describe: string = \"Time\"): void {\r\n console.time(describe);\r\n }\r\n\r\n /**\r\n * 打印范围内时间消耗\r\n * @param describe 标题描述\r\n */\r\n static end(describe: string = \"Time\"): void {\r\n console.timeEnd(describe);\r\n }\r\n\r\n /**\r\n * 打印表格\r\n * @param msg 日志消息\r\n * @param describe 标题描述\r\n * @example\r\n var object:any = {uid:1000, name:\"oops\"};\r\n log.table(object);\r\n */\r\n static table(msg: any, describe?: string) {\r\n if (!this.isOpen(LogType.Trace)) {\r\n return;\r\n }\r\n console.table(msg);\r\n }\r\n\r\n /**\r\n * 打印标准日志\r\n * @param msg 日志消息\r\n */\r\n static trace(msg: any, color: string = \"color:#000000;\") {\r\n // 标记没有打开,不打印该日志\r\n if (!this.isOpen(LogType.Trace)) {\r\n return;\r\n\r\n }\r\n var backLog = console.log || log;\r\n backLog.call(null, \"%c%s%s\", color, this.getDateString(), msg);\r\n }\r\n\r\n /**\r\n * 打印网络层日志\r\n * @param msg 日志消息\r\n * @param describe 标题描述\r\n */\r\n static logNet(msg: any, describe?: string) {\r\n this.orange(LogType.Net, msg, describe);\r\n }\r\n\r\n /**\r\n * 打印数据层日志\r\n * @param msg 日志消息\r\n * @param describe 标题描述\r\n */\r\n static logModel(msg: any, describe?: string) {\r\n this.violet(LogType.Model, msg, describe);\r\n }\r\n\r\n /**\r\n * 打印业务层日志\r\n * @param msg 日志消息\r\n * @param describe 标题描述\r\n */\r\n static logBusiness(msg: any, describe?: string) {\r\n this.blue(LogType.Business, msg, describe);\r\n }\r\n\r\n /**\r\n * 打印视图日志\r\n * @param msg 日志消息\r\n * @param describe 标题描述\r\n */\r\n static logView(msg: any, describe?: string) {\r\n this.green(LogType.View, msg, describe);\r\n }\r\n\r\n /** 打印配置日志 */\r\n static logConfig(msg: any, describe?: string) {\r\n this.gray(LogType.Config, msg, describe);\r\n }\r\n\r\n // 橙色\r\n private static orange(tag: LogType, msg: any, describe?: string) {\r\n this.print(tag, msg, \"color:#ee7700;\", describe)\r\n }\r\n\r\n // 紫色\r\n private static violet(tag: LogType, msg: any, describe?: string) {\r\n this.print(tag, msg, \"color:Violet;\", describe)\r\n }\r\n\r\n // 蓝色\r\n private static blue(tag: LogType, msg: any, describe?: string) {\r\n this.print(tag, msg, \"color:#3a5fcd;\", describe)\r\n }\r\n\r\n // 绿色\r\n private static green(tag: LogType, msg: any, describe?: string) {\r\n this.print(tag, msg, \"color:green;\", describe)\r\n }\r\n\r\n // 灰色\r\n private static gray(tag: LogType, msg: any, describe?: string) {\r\n this.print(tag, msg, \"color:gray;\", describe)\r\n }\r\n\r\n private static isOpen(tag: LogType): boolean {\r\n return (this.tags & tag) != 0;\r\n }\r\n\r\n /**\r\n * 输出日志\r\n * @param tag 日志类型\r\n * @param msg 日志内容\r\n * @param color 日志文本颜色\r\n * @param describe 日志标题描述\r\n */\r\n private static print(tag: LogType, msg: any, color: string, describe?: string) {\r\n // 标记没有打开,不打印该日志\r\n if (!this.isOpen(tag)) {\r\n return;\r\n\r\n }\r\n var backLog = log; \r\n var type = names[tag];\r\n if (describe) {\r\n backLog.call(null, \"%c%s%s%s:%s%o\", color, this.getDateString(), '[' + type + ']', this.stack(5), describe, msg);\r\n }\r\n else {\r\n backLog.call(null, \"%c%s%s%s:%o\", color, this.getDateString(), '[' + type + ']', this.stack(5), msg);\r\n }\r\n }\r\n\r\n private static stack(index: number): string {\r\n var e = new Error();\r\n var lines = e.stack!.split(\"\\n\");\r\n var result: Array = [];\r\n lines.forEach((line) => {\r\n line = line.substring(7);\r\n var lineBreak = line.split(\" \");\r\n if (lineBreak.length < 2) {\r\n result.push(lineBreak[0]);\r\n }\r\n else {\r\n result.push({ [lineBreak[0]]: lineBreak[1] });\r\n }\r\n });\r\n\r\n var list: string[] = [];\r\n var splitList: Array = [];\r\n if (index < result.length - 1) {\r\n var value: string;\r\n for (var a in result[index]) {\r\n var splitList = a.split(\".\");\r\n\r\n if (splitList.length == 2) {\r\n list = splitList.concat();\r\n }\r\n else {\r\n value = result[index][a];\r\n var start = value!.lastIndexOf(\"/\");\r\n var end = value!.lastIndexOf(\".\");\r\n if (start > -1 && end > -1) {\r\n var r = value!.substring(start + 1, end);\r\n list.push(r);\r\n }\r\n else {\r\n list.push(value);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (list.length == 1) {\r\n return \"[\" + list[0] + \".ts]\";\r\n }\r\n else if (list.length == 2) {\r\n return \"[\" + list[0] + \".ts->\" + list[1] + \"]\";\r\n }\r\n return \"\";\r\n }\r\n\r\n private static getDateString(): string {\r\n let d = new Date();\r\n let str = d.getHours().toString();\r\n let timeStr = \"\";\r\n timeStr += (str.length == 1 ? \"0\" + str : str) + \":\";\r\n str = d.getMinutes().toString();\r\n timeStr += (str.length == 1 ? \"0\" + str : str) + \":\";\r\n str = d.getSeconds().toString();\r\n timeStr += (str.length == 1 ? \"0\" + str : str) + \":\";\r\n str = d.getMilliseconds().toString();\r\n if (str.length == 1) str = \"00\" + str;\r\n if (str.length == 2) str = \"0\" + str;\r\n timeStr += str;\r\n\r\n timeStr = \"[\" + timeStr + \"]\";\r\n return timeStr;\r\n }\r\n}\r\n\r\n// @ts-ignore\r\nLogger.init();","// 登录相关逻辑\r\nimport {c1001, s1001, c1004, s1004, c1033, c1006} from \"../../../proto/proto\";\r\nimport { Long_2_String, pt_int32} from \"../../../proto/protoRoute\";\r\nimport { dataAccout } from \"../../gameData/dataAccout\";\r\nimport ConfigManager from \"../../../_config/ConfigManager\";\r\nimport { dataServerList } from \"../../gameData/dataServerList\";\r\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\r\nimport { dataUser } from \"../../gameData/dataUser\";\r\nimport { GameManager } from \"../../GameManager\";\r\nimport { Logger } from \"../../../../core/common/log/Logger\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nimport { GlobalFunction } from \"../common/GlobalFunction\";\r\nimport { Monster, MonsterPoxy } from \"../proxy/MonsterPoxy\";\r\n\r\n// 与游戏服建立好websocket以后的登录操作\r\nexport function login(){\r\n let sysConfig = ConfigManager.GetInstance().getValue(\"sys\");\r\n var c1001:c1001= {\r\n token: dataAccout.Instance().accessToken, platformID: sysConfig.platform, channelID: dataAccout.Instance().channelType,\r\n deviceIMEI: \"\", client: sysConfig.channel, sid: dataServerList.Instance().selectServer.gmServerId, local_language: 1\r\n };\r\n send2client(\"c1001\", c1001);\r\n}\r\n\r\nexport function do_s1001(s1001:s1001){\r\n\r\n //console.log(\"s1001.result=========================================================================\"+s1001.result + \" s1001.nth===\" + s1001.nth); \r\n //未注册 1 、登录成功 2 、服务器在线人数已满,登陆失败 3 、账号封停中 4, 不合法登录 5, 服务器注册人数已满 6, 服务器在线人数已达到上限, 需要排队; 7,该时间段未成年人禁止登录\r\n\r\n if( s1001.result != 1 ){\r\n // TODO 弹窗提示错误\r\n Logger.logNet(\"login failed, error:\" + s1001.result);\r\n return;\r\n }\r\n dataUser.Instance().unitUID = s1001.uid;\r\n dataUser.Instance().nth = Math.floor((s1001.nth - 2468) / 7531);\r\n console.log(\"dataUser.Instance().unitUID===\"+dataUser.Instance().unitUID);\r\n var c1004:c1004 = {uid:dataUser.Instance().unitUID};\r\n send2client(\"c1004\", c1004);\r\n}\r\n\r\nexport function do_s1004(s1004:s1004){\r\n if( s1004.result != 1 ){\r\n // TODO 弹窗提示错误\r\n Logger.logNet(\"login failed, error:\" + s1004.result);\r\n return;\r\n }\r\n \r\n let playerInfo = s1004.playerinfo;\r\n let saveValues = {\r\n resId:pt_int32(playerInfo.res_id), gold:pt_int32(playerInfo.gold), coin:pt_int32(playerInfo.coin), \r\n diamond:pt_int32(playerInfo.diamond), magic:pt_int32(playerInfo.magic), call:pt_int32(playerInfo.call), \r\n challenge:pt_int32(playerInfo.challenge),passId:pt_int32(playerInfo.passId),star:pt_int32(playerInfo.star),\r\n power:pt_int32(playerInfo.power), userId:playerInfo.userId, nickName:playerInfo.nickName,\r\n };\r\n dataUser.Instance().up_data(saveValues);\r\n\r\n let c1033:c1033 = {};\r\n send2client(\"c1033\", c1033);\r\n\r\n setInterval(() => {\r\n var c1006:c1006 = {};\r\n send2client(\"c1006\",c1006);\r\n }, 1000);\r\n\r\n // TODO 设置玩家的基础信息到dataUser里面\r\n GameManager.Instance().fms.CurrentState.finishTask(\"login\");\r\n //console.log(\"======================接收1004消息=======选择角色进入游戏成功=============\");\r\n GlobalFunction.IsLogin=true;\r\n GlobalFunction.InitSendAgreementToSence();\r\n MonsterPoxy.Inst.getData();\r\n}","import { _decorator, Component, EventTouch, EventHandler, Node, UITransform, tween, v3 } from 'cc';\r\nconst { ccclass, property } = _decorator;\r\n\r\n/**\r\n * @classdesc 长按监听组件\r\n * @author caizhitao\r\n * @version 0.1.0\r\n * @since 2018-11-24\r\n * @description\r\n *\r\n * 1. 将本组件挂载在节点上\r\n * 2. 在属性检查器上设置对应的回调事件\r\n * 3. 长按挂载的节点,那么就会一直回调第2步中设置的事件\r\n *\r\n * @example\r\n *\r\n * ```\r\n * // 假设第二步回调接受函数为 onTouch() 那么在这个函数的参数如下:\r\n *\r\n * @param touchCounter 本次触摸次数\r\n * @param customEventData 在属性检查器中传入进来的 CustomEventData\r\n *\r\n * onTouch(touchCounter: number, customEventData?: any) { }\r\n * ```\r\n */\r\n\r\n@ccclass('LongTouchComponent')\r\nexport default class LongTouchComponent extends Component {\r\n @property({\r\n tooltip: \"触摸回调间隔(秒)。假如为0.1,那么1秒内会回调10次 ${longTouchEvents} 事件数组\"\r\n })\r\n touchInterval: number = 0.1;\r\n @property({\r\n readonly: true,\r\n tooltip: \"是否支持多点触控(当前还不支持)\"\r\n })\r\n enableMultiTouching: boolean = false;\r\n @property({\r\n type: [Component.EventHandler],\r\n tooltip: \"回调事件数组,每间隔 ${toucheInterval}s 回调一次\"\r\n })\r\n longTouchEvents: EventHandler[] = [];\r\n /**\r\n * 触摸计数器,用于统计本次长按的回调次数\r\n */\r\n private _touchCounter: number = 0;\r\n /**\r\n * 标记当前是否在触摸这个节点\r\n */\r\n private _isTouching: boolean = false;\r\n\r\n onEnable() {\r\n this.node.on(Node.EventType.TOUCH_START, this._onTouchStart, this);\r\n this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this);\r\n this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this);\r\n }\r\n onDisable() {\r\n this.node.off(Node.EventType.TOUCH_START, this._onTouchStart, this);\r\n this.node.off(Node.EventType.TOUCH_END, this._onTouchEnd, this);\r\n this.node.off(Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this);\r\n this.unschedule(this._touchCounterCallback);\r\n }\r\n public clear() {\r\n this._isTouching = false;\r\n this.unschedule(this._touchCounterCallback);\r\n }\r\n private _onTouchStart(event: EventTouch) {\r\n // 这是为了不支持多点触控\r\n if (!this.enableMultiTouching) {\r\n if (this._isTouching) {\r\n return;\r\n }\r\n\r\n if (this.node.getComponent(UITransform).getBoundingBoxToWorld().contains(event.getLocation())) {\r\n this._isTouching = true;\r\n } else {\r\n this._isTouching = false;\r\n }\r\n\r\n if (this._isTouching) {\r\n // 第一次触摸立即回调一次\r\n this.publishOneTouch();\r\n\r\n // x2.4老代码,待3.8替代方案测试通过后可删除\r\n // 然后开启计时器,计算后续的长按相当于触摸了多少次\r\n // this.node.runAction(tween.sequence(cc.delayTime(0.5), cc.callFunc(() => {\r\n // if (this._isTouching) {\r\n // this.unschedule(this._touchCounterCallback);\r\n // this.schedule(this._touchCounterCallback, this.touchInterval);\r\n // }\r\n // })))\r\n\r\n // 升级版本3.8替代方案,待测试\r\n tween(this.node).to(0.5, {}, {\r\n onComplete: (target?: object) => {\r\n if (this._isTouching) {\r\n this.unschedule(this._touchCounterCallback);\r\n this.schedule(this._touchCounterCallback, this.touchInterval);\r\n }\r\n }\r\n }).start();\r\n }\r\n }\r\n }\r\n private _onTouchEnd(event: EventTouch) {\r\n this._isTouching = false;\r\n this._touchCounter = 0;\r\n this.unschedule(this._touchCounterCallback);\r\n }\r\n private _onTouchCancel(event: EventTouch) {\r\n this._isTouching = false;\r\n this._touchCounter = 0;\r\n this.unschedule(this._touchCounterCallback);\r\n }\r\n private _touchCounterCallback() {\r\n if (this._isTouching) {\r\n this.publishOneTouch();\r\n } else {\r\n this.unschedule(this._touchCounterCallback);\r\n }\r\n }\r\n /**\r\n * 通知出去:被点击/触摸了一次,长按时,会连续多次回调这个方法\r\n */\r\n private publishOneTouch() {\r\n if (!this._isTouching) {\r\n return;\r\n }\r\n // x2.4老代码,待3.8替代方案测试通过后可删除\r\n // this.node.runAction(cc.sequence(cc.scaleTo(this.touchInterval / 2, 0.8), cc.scaleTo(this.touchInterval / 2, 1)));\r\n // 升级版本3.8替代方案,待测试\r\n tween(this.node).to(this.touchInterval/2, {scale: v3(0.8)}).to(this.touchInterval/2, {scale: v3(1)}).start();\r\n this._touchCounter++;\r\n this.longTouchEvents.forEach((eventHandler: EventHandler) => {\r\n eventHandler.emit([this.node]);\r\n });\r\n }\r\n}","/**\n * LosePoxy config配置文件\n */\nimport { c1300, s1300, c1301, s1301, c1302, s1302, c1405, s1405, p_build, p_army_equip } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\n@res_auto_bind()\nexport class LosePoxy {\n private static _inst: LosePoxy;\n public static get Inst(): LosePoxy {\n if (LosePoxy._inst == null) {\n LosePoxy._inst = new LosePoxy();\n }\n return LosePoxy._inst;\n }\n /***==========================lost 配置表 数据存储============================== */\n public LostDataList: Lost[];\n @res_assign(\"Lost\")\n public InitLostConfig() {/***建筑升级属性配置表 */\n if (!this.LostDataList) {\n\n this.LostDataList = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Lost\")) {\n let item = ConfigManager.GetInstance().getValue(\"Lost\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.LostDataList.push(item);\n }\n }\n return this.LostDataList;\n }\n\n public GetLostDataById(id: number): Lost {\n if (!this.LostDataList) {\n this.InitLostConfig();\n }\n return this.LostDataList.find(element => element.Id == id);\n\n }\n\n /***==========================lostjump 配置表 数据存储============================== */\n public LostJumpDataList: LostJump[];\n @res_assign(\"LostJump\")\n public InitLostJumpConfig() {/***建筑升级属性配置表 */\n if (!this.LostJumpDataList) {\n\n this.LostJumpDataList = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"LostJump\")) {\n let item = ConfigManager.GetInstance().getValue(\"LostJump\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.LostJumpDataList.push(item);\n }\n }\n return this.LostJumpDataList;\n }\n\n public GetLostJumpDataById(id: number): LostJump {\n if (!this.LostJumpDataList) {\n this.InitLostJumpConfig();\n }\n return this.LostJumpDataList.find(element => element.lostjumpId == id);\n\n }\n\n\n\n \n\n}\n\nexport class Lost {\n /** 战士装配表 ID*/\n Id: number;\n /** 建筑Id */\n ay_lostjumpId: string[];\n}\nexport class LostJump {\n lostjumpId: number;\n icon: string;\n jumpId: number;\n lan_dec :string;//描述\n}\n\nexport enum GameOverType { //村庄建築屬性類型\n bossfaile = 1, //boss失败\n fubenfaile = 2, //副本失败\n patafaile =3,//爬塔失败\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { FuBen, FuBenProxy } from \"../proxy/FuBenProxy\";\r\nimport { FuBenExp, FuBenExpPoxy } from \"../proxy/FuBenExpPoxy\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nimport { p_reward, s1622 } from \"../../../proto/proto\";\r\nimport { find } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { ItemData, ItemProxy } from \"../proxy/ItemProxy\";\r\nimport { GlobalFunction } from \"../common/GlobalFunction\";\r\nimport { tween } from \"cc\";\r\nimport BasePanel from \"../../../core/component/BasePanel\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nimport GameConst from \"../../../core/common/GameConst\";\r\nimport WindowManager from \"../../../core/manager/WindowManager\";\r\nimport { LosePoxy } from \"../proxy/LosePoxy\";\r\nimport { instantiate } from \"cc\";\r\nimport { Button } from \"cc\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"LoseUI\")\r\nexport class LoseUI extends BasePanel{\r\n\r\n\r\n\r\n type :number;\r\n @property(Node)\r\n Layout_lose:Node = null;\r\n lose: Node = null;\r\n prefablose: Node = null;\r\n\r\n onBtnClicked(e: any, name: string) {\r\n if (name == \"Button_sure\") {\r\n this.close(true)\r\n }\r\n }\r\n onLoad(){\r\n }\r\n\r\n onShow(data: any): void {\r\n this.init(data);\r\n }\r\n\r\n init(data :number){\r\n \r\n this.prefablose = this.lose;\r\n this.Layout_lose.removeAllChildren();\r\n this.type=data;\r\n let ay_lostjumpId = LosePoxy.Inst.GetLostDataById(data);\r\n // console.log(\"ay_lostjumpId====\"+ay_lostjumpId);\r\n if(ay_lostjumpId==undefined)return;\r\n let lostjumpList = ay_lostjumpId.ay_lostjumpId;\r\n // console.log(\"lostjumpList====\"+lostjumpList.length);\r\n for (let i = 0; i < lostjumpList.length; i++) {\r\n // 克隆并将节点添加到content中\r\n let itemNode = instantiate(this.prefablose);\r\n if (itemNode) {\r\n itemNode.parent = this.Layout_lose;\r\n let lostjumpid: number = Number(lostjumpList[i]);\r\n\r\n let jumpdata = LosePoxy.Inst.GetLostJumpDataById(lostjumpid);\r\n\r\n let Button_lose = itemNode.getChildByName(\"Button_lose\");\r\n let Sprite_lose = Button_lose.getChildByName(\"Sprite_lose\").getComponent(Sprite);\r\n\r\n GlobalFunction.SetSpriteFrame(Sprite_lose,jumpdata.icon);\r\n\r\n let Label_lose = Button_lose.getChildByName(\"Label_lose\").getComponent(Label);\r\n Label_lose.string = jumpdata.lan_dec;\r\n this.bindClickGoEvent(Button_lose, jumpdata.jumpId);\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n //go\r\n bindClickGoEvent(itemnode: Node, jumpId: number) {\r\n var clickEventHandler = new Component.EventHandler();\r\n //这个 node 节点是你的事件处理代码组件所属的节点\r\n clickEventHandler.target = this.node;\r\n //这个是代码文件名\r\n clickEventHandler.component = this.node.name;\r\n clickEventHandler.handler = \"CallOnclickGo\";\r\n clickEventHandler.customEventData = jumpId + \"\";\r\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\r\n }\r\n\r\n CallOnclickGo(itemnode, jumpID) {\r\n let jumpId = parseInt(jumpID);\r\n if(jumpId==1){\r\n WindowManager.Instance().open(GameConst.winPath.MainBuffUI, null, true);\r\n }else if(jumpId==2){\r\n WindowManager.Instance().open(GameConst.winPath.SoldiersUI, null, true);\r\n\r\n }else if(jumpId==3){\r\n //工厂\r\n WindowManager.Instance().open(GameConst.winPath.ManageUI, 1004, true);\r\n }else if(jumpId==4){\r\n WindowManager.Instance().open(GameConst.winPath.HeroUI, null, true);\r\n }\r\n this.close(true);\r\n }\r\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData, p_reward } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { MailProxy } from \"../proxy/MailProxy\";\nimport { instantiate } from \"cc\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('MailDecUI')\nexport default class MailDecUI extends BasePanel {\n\n mailid: string;\n CanGetReward: boolean;\n @property(Node) Label_title: Node = null;\n\n @property(Node) Label_year: Node = null;\n\n @property(Node) Label_time: Node = null;\n\n @property(Node) Label_dec: Node = null;\n @property(Node) Label_get: Node = null;\n @property(Node) ScrollView_item: Node = null;\n\n @property(Button) Button_get: Button = null;\n\n\n\n @property(Node) Layout_item: Node = null;\n item: Node = null;\n prefabitem: Node = null;\n @property(Node) Layout_item1: Node = null;\n item1: Node = null;\n prefabitem1: Node = null;\n\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_get\") {\n\n if (this.CanGetReward) {\n MailProxy.Inst.SendC1702(this.mailid);\n } else {\n this.close(true)\n }\n }\n }\n start() {\n this.addEvent();\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.REFRESH_MAILDEC_UI, this, this.RefreshMailDecUI);\n }\n RefreshMailDecUI() {\n let maildata = MailProxy.Inst.MailServerList.find(item => item.mailID == this.mailid);\n if (!maildata) return;\n this.Button_get.node.active = false;\n if (this.ScrollView_item.active) {\n for (let i = 0; i < this.Layout_item.children.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = this.Layout_item.children[i];\n if (itemNode) {\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_yidu = Button_item.getChildByName(\"Sprite_yidu\");\n Sprite_yidu.active = true;\n }\n }\n } else {\n for (let i = 0; i < this.Layout_item1.children.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = this.Layout_item1.children[i];\n if (itemNode) {\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_yidu = Button_item.getChildByName(\"Sprite_yidu\");\n Sprite_yidu.active = true;\n }\n }\n }\n }\n\n onShow(data: any): void {\n this.mailid = data;\n let maildata = MailProxy.Inst.MailServerList.find(item => item.mailID == this.mailid);\n if (!maildata) return;\n if (maildata.state == 1) { //未阅读\n MailProxy.Inst.SendC1701(this.mailid);//打开邮件\n }\n this.Button_get.node.active = maildata.state != 4;\n this.CanGetReward = maildata.rewards != undefined;\n let Label_title = this.Label_title.getComponent(Label);\n let Label_year = this.Label_year.getComponent(Label);\n let Label_time = this.Label_time.getComponent(Label);\n let Label_dec = this.Label_dec.getComponent(RichText);\n let Label_get = this.Label_get.getComponent(Label);\n Label_title.string = maildata.title;// GlobalFunction.GetMsg(maildata.title);\n Label_year.string = TimePoxy.Inst.SecondsToDate(maildata.recvTime);\n Label_time.string = TimePoxy.Inst.ShowTime(maildata.recvTime);\n Label_dec.string = maildata.content;\n if (this.CanGetReward) {\n Label_get.string = GlobalFunction.GetMsg(10089);\n } else {\n Label_get.string = GlobalFunction.GetMsg(20008);\n }\n if (maildata.rewards == undefined) return;\n this.ScrollView_item.active = maildata.rewards.length > 3;\n this.Layout_item1.active = maildata.rewards.length <= 3;\n if (maildata.rewards.length > 3) {\n\n this.prefabitem = this.item;\n this.Layout_item.removeAllChildren();\n\n for (let i = 0; i < maildata.rewards.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item;\n let reward: p_reward = maildata.rewards[i];\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_itemkuang = Button_item.getChildByName(\"Sprite_itemkaung\");\n let Sprite_item = Button_item.getChildByName(\"Sprite_item\");\n let Label_item = Button_item.getChildByName(\"Label_item\");\n\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n let itemkuangSprite = ItemProxy.Inst.GetItemKuangByColor(itemdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang.getComponent(Sprite), itemkuangSprite);\n GlobalFunction.SetSpriteFrame(Sprite_item.getComponent(Sprite), itemdata.icon);\n Label_item.getComponent(Label).string = reward.num + \"\";\n this.bindClickItemEvent(Button_item, reward.id);\n let Sprite_yidu = Button_item.getChildByName(\"Sprite_yidu\");\n Sprite_yidu.active = maildata.state == 4;\n }\n }\n } else {\n\n this.prefabitem1 = this.item1;\n this.Layout_item1.removeAllChildren();\n\n for (let i = 0; i < maildata.rewards.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabitem1);\n if (itemNode) {\n itemNode.parent = this.Layout_item1;\n let reward: p_reward = maildata.rewards[i];\n let Button_item = itemNode.getChildByName(\"Button_item\");\n let Sprite_itemkuang = Button_item.getChildByName(\"Sprite_itemkaung\");\n let Sprite_item = Button_item.getChildByName(\"Sprite_item\");\n let Label_item = Button_item.getChildByName(\"Label_item\");\n\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n let itemkuangSprite = ItemProxy.Inst.GetItemKuangByColor(itemdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang.getComponent(Sprite), itemkuangSprite);\n GlobalFunction.SetSpriteFrame(Sprite_item.getComponent(Sprite), itemdata.icon);\n Label_item.getComponent(Label).string = reward.num + \"\";\n this.bindClickItemEvent(Button_item, reward.id);\n let Sprite_yidu = Button_item.getChildByName(\"Sprite_yidu\");\n Sprite_yidu.active = maildata.state == 4;\n }\n }\n }\n\n }\n\n //点击道具\n bindClickItemEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n}\n","/**\n * MailProxy config配置文件\n */\nimport { _decorator } from 'cc';\nimport { c1700, p_mail, s1700, c1701, c1702, s1702, c1703, s1705, s1707, s1721, p_sys_notice } from '../../../proto/proto';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class MailProxy {\n private static _inst: MailProxy;\n public static get Inst(): MailProxy {\n if (MailProxy._inst == null) {\n MailProxy._inst = new MailProxy();\n }\n return MailProxy._inst;\n }\n // @res_assign(\"FunctionForetell\")\n // public FunctionDataList: FunctionForetell[];\n // public InitFunctionForetellConfig() {\n // if (this.FunctionDataList == null) {\n // this.FunctionDataList = [];\n // }\n // let PayInfoDataConfig = ConfigManager.GetInstance().getValue(\"FunctionForetell\")\n // for (var key in PayInfoDataConfig) {\n // let item = ConfigManager.GetInstance().getValue(\"FunctionForetell\")[key];\n // if (item) {\n // for (var keys in item) {\n // item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n // }\n // this.FunctionDataList.push(item);\n // }\n // }\n // }\n\n // /** 根据id获取payinfo */\n // public GetFunctionDataByID(id: number) {\n // if (this.FunctionDataList == null) {\n // this.InitFunctionForetellConfig();\n // }\n // let data: FunctionForetell = this.FunctionDataList.find(item => item.id == id);\n // if (data) {\n // return data;\n // }\n // return null;\n // } \n\n\n /***==========================服务器数据存储============================== */\n public MailServerList: p_mail[];\n public MailServerState: s1705;\n public NoticeServerList: p_sys_notice[];\n public SendC1700() {\n //所有邮件\n // console.log(\"===================C1700====================\");\n var c1700: c1700 = {};\n send2client(\"c1700\", c1700);\n }\n\n public SendC1701(mailId: string) {\n //打开邮件\n var c1701: c1701 = { mailId: mailId };\n send2client(\"c1701\", c1701);\n }\n\n public SendC1702(id: string) {\n // 领取的id,0的字符串的时候未一键领取所有\n var c1702: c1702 = { id: id };\n send2client(\"c1702\", c1702);\n }\n\n public SendC1703() {\n //删除已读和已领取的所有邮件\n var c1703: c1703 = {};\n send2client(\"c1703\", c1703);\n }\n}\n\n// /**所有邮件 */\nexport function do_s1700(s1700: s1700) {\n // console.log(\"===================接收是S1700====================\" + s1700.mailList);\n if (MailProxy.Inst.MailServerList == undefined) {\n MailProxy.Inst.MailServerList = [];\n }\n MailProxy.Inst.MailServerList.length = 0;\n if (s1700.mailList != undefined) {\n MailProxy.Inst.MailServerList = s1700.mailList;\n }\n EventManager.Inst.event(EventType.REFRESH_MAIL_UI);\n}\n//** 领取奖励-支持一键领取,一键领取的时候,所有没奖励邮件会变为已读 */\nexport function do_s1702(s1702: s1702) {\n // console.log(\"===================接收是s1702================同步已领奖的所有功能id列表,上线和有变化时后端主动推====\"+s1702.rewards);\n if (s1702.result == undefined) {\n if(s1702.rewards!=undefined){\n if (s1702.rewards && s1702.rewards.length > 0)\n var data = new BoxData\n {\n data.rewards = s1702.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n EventManager.Inst.event(EventType.REFRESH_MAILDEC_UI);\n }\n\n }\n\n}\n\n\n\n\n//** 邮件状态同步 */\nexport function do_s1705(s1705: s1705) {\n // console.log(\"===================接收是s1705================邮件状态同步===state=\"+s1705.state +\" id===\"+s1705.ids);\n\n // int32 state=1; //状态:2已阅读3删除4已领奖\n // repeated string ids=2; // 变化的id列表\n // for (let index = 0; index < MailProxy.Inst.MailServerList.length; index++) {\n // const element = MailProxy.Inst.MailServerList[index];\n // console.log(\" 1111MailServerList.id===\"+element.mailID + \" state ===\"+element.state);\n // }\n\n if(MailProxy.Inst.MailServerList.length>0 && s1705.ids!=undefined){\n // for (let index = 0; index < MailProxy.Inst.MailServerList.length; index++) {\n // const element = MailProxy.Inst.MailServerList[index];\n\n for (let i = 0; i < s1705.ids.length; i++) {\n const id = s1705.ids[i];\n // if(element.mailID==id){\n // console.log(\"相同id===\"+id);\n if(s1705.state==3){\n MailProxy.Inst.MailServerList = MailProxy.Inst.MailServerList.filter(item=>item.mailID!==id); \n }else{\n let element = MailProxy.Inst.MailServerList.find(item=>item.mailID==id); \n element.state = s1705.state;\n }\n // }\n }\n \n // }\n\n\n // for (let index = 0; index < MailProxy.Inst.MailServerList.length; index++) {\n // const element = MailProxy.Inst.MailServerList[index];\n // console.log(\" 22222MailServerList.id===\"+element.mailID + \" state ===\"+element.state);\n // }\n EventManager.Inst.event(EventType.REFRESH_MAIL_UI);\n }\n}\n\n//** // 新收到邮件推送(服务器主动推送) */\nexport function do_s1707(s1707: s1707) {\n // console.log(\"===================接收是s1707================新收到邮件推送(服务器主动推送)\");\n\n //repeated p_mail mails=1; // 新收到邮件\n\n if (s1707.mails != undefined) {\n if (MailProxy.Inst.MailServerList == undefined) {\n MailProxy.Inst.MailServerList = [];\n }\n for (let i = 0; i < s1707.mails.length; i++) {\n MailProxy.Inst.MailServerList.push(s1707.mails[i]);\n }\n EventManager.Inst.event(EventType.REFRESH_MAIL_UI);\n }\n}\n//** // 系统公告推送(登录和更新的时候后端主动推) */\nexport function do_s1721(s1721: s1721) {\n console.log(\"===================接收是s1721================系统公告推送====\"+s1721.sys_notice);\n if (MailProxy.Inst.NoticeServerList == undefined) {\n MailProxy.Inst.NoticeServerList = [];\n }\n MailProxy.Inst.NoticeServerList.length = 0;\n if (s1721.sys_notice != undefined) {\n MailProxy.Inst.NoticeServerList = s1721.sys_notice;\n }\n}\n// export class FunctionForetell {\n// /** 功能 ID */\n// id: number;\n// /** 名字 */\n// lan_name: string;\n// /**立绘 */\n// icon: string;\n// /** 内容多语言 */\n// lan_content: string;\n// /** 时间 */\n// time: number;\n// /** 关卡*/\n// level: number;\n// /** 奖励 */\n// ay_reward: string[];\n\n// }","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { MailProxy } from \"../proxy/MailProxy\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { instantiate } from \"cc\";\nimport { p_mail } from \"../../../proto/proto\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport { Component } from \"cc\";\nimport { Button } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('MailUI')\nexport default class MailUI extends BasePanel {\n\n itemid: number;\n @property(Node) not: Node = null;\n\n @property(Node) yes: Node = null;\n\n @property(Node) Layout_mail: Node = null;\n mail: Node = null;\n prefabmail: Node = null;\n\n\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n else if (name == \"Button_delete\") {\n //删除已读和已经领取的邮件\n MailProxy.Inst.SendC1703();\n }\n else if (name == \"Button_all\") {\n\n //一键领取\n MailProxy.Inst.SendC1702(0+\"\");\n }\n }\n start() {\n this.addEvent();\n MailProxy.Inst.SendC1700();//邮件信息\n\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.REFRESH_MAIL_UI, this, this.RefreshMailUI);\n }\n\n RefreshMailUI() {\n this.SortMailList();\n this.not.active = MailProxy.Inst.MailServerList.length==0;\n this.yes.active = !this.not.active;\n this.prefabmail = this.mail;\n this.Layout_mail.removeAllChildren();\n for (let i = 0; i < MailProxy.Inst.MailServerList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabmail);\n if (itemNode) {\n itemNode.parent = this.Layout_mail;\n let mailData: p_mail = MailProxy.Inst.MailServerList[i];\n\n // string mailID=1; // 邮件id\n // int32 state=2; // 状态1未阅读2已阅读3可领奖4已领奖\n // string title=3; // 主题\n // int32 recvTime=4; // 收到时间\n // int32 type=5; // 邮件类型\n // string content=6; // 邮件内容\n // repeated p_reward rewards=7; // 奖励列表\n\n\n let Button_mail = itemNode.getChildByName(\"Button_mail\");\n let Label_mail = Button_mail.getChildByName(\"Label_mail\");\n Label_mail.getComponent(Label).string = mailData.title;\n let Label_year = Button_mail.getChildByName(\"Label_year\");\n Label_year.getComponent(Label).string = TimePoxy.Inst.SecondsToDate(mailData.recvTime);\n let Label_time = Button_mail.getChildByName(\"Label_time\");\n Label_time.getComponent(Label).string = TimePoxy.Inst.ShowTime(mailData.recvTime);\n let Sprite_mailclose = Button_mail.getChildByName(\"Sprite_mailclose\");\n\n Sprite_mailclose.active = mailData.state==1;\n let Sprite_mailopen = Button_mail.getChildByName(\"Sprite_mailopen\");\n Sprite_mailopen.active = mailData.state>=2;\n\n let Sprite_new = Button_mail.getChildByName(\"Sprite_new\");\n Sprite_new.active = mailData.state==1;\n\n let Sprite_yidu = Button_mail.getChildByName(\"Sprite_yidu\");\n Sprite_yidu.active = mailData.state==4;\n\n let Sprite_itemkuang = Button_mail.getChildByName(\"Sprite_itemkuang\");\n Sprite_itemkuang.active = mailData.state!=4 && mailData.rewards!=undefined;\n let Sprite_item = Sprite_itemkuang.getChildByName(\"Sprite_item\");\n let Label_item = Sprite_itemkuang.getChildByName(\"Label_item\");\n\n this.bindClickButtonMailEvent(Button_mail, mailData.mailID);\n\n if(mailData.rewards!=undefined && mailData.rewards.length>0){\n // for (let index = 0; index < mailData.rewards.length; index++) {\n // const element = mailData.rewards[index];\n // console.log(\"element.id===========\"+element.id);\n // }\n let itemdata =ItemProxy.Inst.GetItemDataByID(mailData.rewards[0].id);\n let itemkuangSprite = ItemProxy.Inst.GetItemKuangByColor(itemdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang.getComponent(Sprite),itemkuangSprite);\n GlobalFunction.SetSpriteFrame(Sprite_item.getComponent(Sprite),itemdata.icon);\n Label_item.getComponent(Label).string = mailData.rewards[0].num+\"\";\n }\n\n\n\n }\n }\n }\n\n private SortMailList()\n {\n if(MailProxy.Inst.MailServerList.length>0){\n MailProxy.Inst.MailServerList.sort(function (a, b) {\n const detailA= a, detailB =b;\n let state1 = 4;\n let state2 = 4;\n //1新 2未领取 3已领取 4已读\n // 状态1未阅读2已阅读3可领奖4已领奖\n if(detailA.state==1){\n state1=1;\n }else if(detailA.state==2 && detailA.rewards!=undefined){\n state1=2;\n }else if(detailA.state==4){\n state1=3;\n }else{\n state1 = 4;\n }\n\n if(detailB.state==1){\n state2=1;\n }else if(detailB.state==2 && detailB.rewards!=undefined){\n state2=2;\n }else if(detailB.state==4){\n state2=3;\n }else{\n state2 = 4;\n }\n\n if(state1==state2){\n return detailA.recvTime - detailB.recvTime\n }else {\n return state1 -state2\n }\n });\n }\n\n }\n\n\n //点击邮件\n bindClickButtonMailEvent(itemnode: Node, mailid: string) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickMail\";\n clickEventHandler.customEventData = mailid;\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickMail(itemnode, mailid) {\n WindowManager.Instance().open(GameConst.winPath.MailDecUI, mailid, true);\n }\n onShow(data: any): void {\n this.not.active =false;\n this.yes.active = false;\n }\n}\n","/**\n * ZhuFu config配置文件\n */\nimport { _decorator } from 'cc';\nimport {c1025, s1025, c1026, s1026, p_reward } from '../../../proto/proto';\nimport {res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport {send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport {GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class MainBuffProxy {\n private static _inst: MainBuffProxy;\n public static get Inst(): MainBuffProxy {\n if (MainBuffProxy._inst == null) {\n MainBuffProxy._inst = new MainBuffProxy();\n }\n return MainBuffProxy._inst;\n }\n @res_assign(\"ZhuFu\")\n public ZhuFuDataList: ZhuFu[];\n public InitZhuFuConfig() {\n if (this.ZhuFuDataList == null) {\n this.ZhuFuDataList = [];\n }\n let ZhuFuDataConfig = ConfigManager.GetInstance().getValue(\"ZhuFu\")\n for (var key in ZhuFuDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"ZhuFu\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.ZhuFuDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取ZhuFu */\n public GetZhuFuDataByID(id: number,lv :number) {\n if (id == undefined) id=0;\n if (lv == undefined) lv=0;\n if (this.ZhuFuDataList == null) {\n this.InitZhuFuConfig();\n }\n let data: ZhuFu = this.ZhuFuDataList.find(item => item.id == id &&item.lv==lv);\n if (data) {\n return data;\n }\n return null;\n } \n\n\n /***==========================服务器数据存储============================== */\n public BuffServerData :s1025;\n public SendC1025(){\n //获取祝福界面信息\n var c1025: c1025 = {};\n send2client(\"c1025\", c1025);\n }\n\n\n public SendC1026(id :number){\n //祝福领取奖励\n Logger.logNet(\"==============发送====c1226=============\");\n var c1026: c1026 = {id:id};\n send2client(\"c1026\", c1026);\n }\n}\n\n/**获取祝福界面信息 */\nexport function do_s1025(s1025: s1025){\n // console.log(\"===================接收是1025=================\");\n // int32 id1=1;\n // int32 lv1=2; // id1的等级\n // int32 exp1=3; // id1的经验\n // int32 endTime1=4; // id1的结束时间\n // int32 id2=5;\n // int32 lv2=6; // id2的等级\n // int32 exp2=7; // id2的经验\n // int32 endTime2=8; // id2的结束时间\n // int32 id3=9;\n // int32 lv3=10; // id3的等级\n // int32 exp3=11; // id3的经验\n // int32 endTime3=12; // id3的结束时间\n // int32 id=13; // 整体的id\n // int32 lv=14; // 整体的等级\n // int32 exp=15; // 整体的经验\n\n MainBuffProxy.Inst.BuffServerData = s1025;\n EventManager.Inst.event(EventType.UPDATE_MAINBUFF_UI);\n EventManager.Inst.event(EventType.UPDATE_ZHUFU_MAIN_CHANGE);\n}\n\n/**祝福领取奖励 */\nexport function do_s1026(s1026: s1026){\n\n Logger.logNet(\"===================接收是1026====================\"+s1026.result);\n if(s1026.result==undefined){\n }\n // var data = new BoxData\n // {\n // data.rewards = s1026.rewards\n // };\n // GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n // OffineProxy.Inst.SendC1220();\n}\n\nexport class ZhuFu{\n /** 祝福效果id */\n id: number;\n /** 等级 */\n lv: number;\n /**效果类型 */\n effType: effType;\n /** 效果具体值 */\n ay_effList: string[];\n /** 升级下一级需要的经验*/\n exp: number;\n /** 一次领取的持续时间,单位秒 */\n time: number;\n}\nexport enum effType {\n addguanggao = 0,\n addbuff = 1,//加buff\n addgold = 2,//加金币\n adccd = 3,//减少cd\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { s1025, s1220 } from \"../../../proto/proto\";\nimport { OffineProxy } from \"../proxy/OffineProxy\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { Sprite } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { Button } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Component } from \"cc\";\nimport { MainBuffProxy } from \"../proxy/MainBuffProxy\";\nimport { ProgressBar } from \"cc\";\nimport { BuffPoxy } from \"../proxy/BuffPoxy\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { ShopProxy, ShopUiType } from \"../proxy/ShopProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('MainBuffUI')\nexport default class MainBuffUI extends BasePanel {\n\n buffdata: s1025;\n timeDayCallback1: any;\n timeDayCallback2: any;\n timeDayCallback3: any;\n @property(Node) ProgressBar_shouyi: Node | null = null;\n @property(Node) Bar_shouyi: Node | null = null;\n @property(Node) Label_shouyi: Node | null = null;\n\n @property(Node) Label_shouyilv: Node | null = null;\n @property(Node) Label_shouyinum: Node | null = null;\n @property(Node) Label_shouyitime: Node | null = null;\n\n\n @property(Node) ProgressBar_gongji: Node | null = null;\n @property(Node) Bar_gongji: Node | null = null;\n @property(Node) Label_gongji: Node | null = null;\n\n @property(Node) Label_gongjilv: Node | null = null;\n @property(Node) Label_gongjinum: Node | null = null;\n @property(Node) Label_gongjitime: Node | null = null;\n\n\n @property(Node) ProgressBar_skill: Node | null = null;\n @property(Node) Bar_skill: Node | null = null;\n @property(Node) Label_skill: Node | null = null;\n\n @property(Node) Label_skilllv: Node | null = null;\n @property(Node) Label_skillnum: Node | null = null;\n @property(Node) Label_skilltime: Node | null = null;\n\n\n @property(Node) ProgressBar_buff: Node | null = null;\n @property(Node) Bar_buff: Node | null = null;\n @property(Node) Label_buff: Node | null = null;\n\n @property(Node) Label_bufflv: Node | null = null;\n @property(Node) Sprite_dec1: Node | null = null;\n @property(Node) Label_dec1: Node | null = null;\n @property(Node) Sprite_dec2: Node | null = null;\n @property(Node) Label_dec2: Node | null = null;\n\n @property(Button) Button_syget: Button | null = null;\n @property(Button) Button_gjget: Button | null = null;\n @property(Button) Button_skillget: Button | null = null;\n @property(Button) Button_sure: Button | null = null;\n @property(Node) Panle_center: Node | null = null;\n\n @property(Node) Label_gongjiname: Node | null = null;\n @property(Node) Label_shouyiname: Node | null = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_syget\") {\n MainBuffProxy.Inst.SendC1026(1);\n } else if (name == \"Button_gjget\") {\n MainBuffProxy.Inst.SendC1026(2);\n }\n else if (name == \"Button_skillget\") {\n MainBuffProxy.Inst.SendC1026(3);\n }\n else if (name == \"Button_sure\") {\n // this.scheduleOnce(function() {\n // this.close(true);\n // }, 0.5);\n\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.heros, true);\n this.close(true);\n }\n }\n start() {\n\n this.addEvent();\n MainBuffProxy.Inst.SendC1025();\n }\n\n private addEvent() {\n\n EventManager.Inst.on(EventType.UPDATE_MAINBUFF_UI, this, this.UpdateMainBuffUI);\n }\n onShow(data: any): void {\n this.Panle_center.active=false;\n this.Label_gongjiname.getComponent(Label).string = GlobalFunction.GetMsg(10163);\n this.Label_shouyiname.getComponent(Label).string = GlobalFunction.GetMsg(10162);\n \n }\n\n\n ShowTimeDayCallback() {\n if (this.timeDayCallback1) {\n this.unschedule(this.timeDayCallback1);\n }\n if (this.timeDayCallback2) {\n this.unschedule(this.timeDayCallback2);\n }\n if (this.timeDayCallback3) {\n this.unschedule(this.timeDayCallback3);\n }\n let buffdata1 = MainBuffProxy.Inst.GetZhuFuDataByID(this.buffdata.id1, this.buffdata.lv1);\n let buffdata2 = MainBuffProxy.Inst.GetZhuFuDataByID(this.buffdata.id2, this.buffdata.lv2);\n let buffdata3 = MainBuffProxy.Inst.GetZhuFuDataByID(this.buffdata.id3, this.buffdata.lv3);\n let timelabel1 = this.Label_shouyitime.getComponent(Label)\n let timelabel2 = this.Label_gongjitime.getComponent(Label)\n let timelabel3 = this.Label_skilltime.getComponent(Label)\n let syget = this.Button_syget.getComponent(Sprite);\n syget.grayscale = false;\n let gjget = this.Button_gjget.getComponent(Sprite);\n gjget.grayscale = false;\n let skillget = this.Button_skillget.getComponent(Sprite);\n skillget.grayscale = false;\n if (this.buffdata.endTime1 > 0) {\n\n let endTime1 = this.buffdata.endTime1;\n let different1 = endTime1 - GameModleComp.getInstance().serverTime;\n if (different1 > 0) {\n syget.grayscale = true;\n timelabel1.string = TimePoxy.Inst.ShowTimeMinutesLabel(different1);\n this.timeDayCallback1 = function (dt) {\n if (different1 > 0) {\n different1--;\n timelabel1.string = TimePoxy.Inst.ShowTimeMinutesLabel(different1);\n } else {\n this.unschedule(this.timeDayCallback1);\n timelabel1.string = TimePoxy.Inst.ShowTimeMinutesLabel(0);\n // MainBuffProxy.Inst.SendC1025();\n }\n }\n this.schedule(this.timeDayCallback1, 1.0);\n } else {\n timelabel1.string = buffdata1.time / 60 + \" \" + GlobalFunction.GetMsg(20109);\n }\n } else {\n timelabel1.string = buffdata1.time / 60 + \" \" + GlobalFunction.GetMsg(20109);\n }\n\n\n if (this.buffdata.endTime2 > 0) {\n let endTime2 = this.buffdata.endTime2;\n let different2 = endTime2 - GameModleComp.getInstance().serverTime;\n\n if (different2 > 0) {\n gjget.grayscale = true;\n timelabel2.string = TimePoxy.Inst.ShowTimeMinutesLabel(different2);\n this.timeDayCallback2 = function (dt) {\n if (different2 > 0) {\n different2--;\n timelabel2.string = TimePoxy.Inst.ShowTimeMinutesLabel(different2);\n } else {\n this.unschedule(this.timeDayCallback2);\n timelabel2.string = TimePoxy.Inst.ShowTimeMinutesLabel(0);\n // MainBuffProxy.Inst.SendC1025();\n }\n }\n this.schedule(this.timeDayCallback2, 1.0);\n } else {\n\n timelabel2.string = buffdata2.time / 60 + \" \" + GlobalFunction.GetMsg(20109);\n }\n } else {\n timelabel2.string = buffdata2.time / 60 + \" \" + GlobalFunction.GetMsg(20109);\n }\n\n if (this.buffdata.endTime3 > 0) {\n let endTime3 = this.buffdata.endTime3;\n let different3 = endTime3 - GameModleComp.getInstance().serverTime;\n\n if (different3 > 0) {\n skillget.grayscale = true;\n timelabel3.string = TimePoxy.Inst.ShowTimeMinutesLabel(different3);\n this.timeDayCallback3 = function (dt) {\n if (different3 > 0) {\n different3--;\n timelabel3.string = TimePoxy.Inst.ShowTimeMinutesLabel(different3);\n } else {\n this.unschedule(this.timeDayCallback3);\n timelabel3.string = TimePoxy.Inst.ShowTimeMinutesLabel(0);\n // MainBuffProxy.Inst.SendC1025();\n }\n }\n this.schedule(this.timeDayCallback3, 1.0);\n } else {\n timelabel3.string = buffdata3.time / 60 + \" \" + GlobalFunction.GetMsg(20109);\n }\n } else {\n timelabel3.string = buffdata3.time / 60 + \" \" + GlobalFunction.GetMsg(20109);\n }\n }\n\n /**刷新界面 */\n UpdateMainBuffUI() {\n // int32 id1=1;\n // int32 lv1=2; // id1的等级\n // int32 exp1=3; // id1的经验\n // int32 endTime1=4; // id1的结束时间\n // int32 id2=5;\n // int32 lv2=6; // id2的等级\n // int32 exp2=7; // id2的经验\n // int32 endTime2=8; // id2的结束时间\n // int32 id3=9;\n // int32 lv3=10; // id3的等级\n // int32 exp3=11; // id3的经验\n // int32 endTime3=12; // id3的结束时间\n\n // int32 id=13; // 整体的id\n // int32 lv=14; // 整体的等级\n // int32 exp=15; // 整体的经验\n\n\n this.buffdata = MainBuffProxy.Inst.BuffServerData;\n //zongde\n let buffdata0 = MainBuffProxy.Inst.GetZhuFuDataByID(this.buffdata.id, this.buffdata.lv);\n this.Label_bufflv.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.lv) + \"\";\n this.Label_buff.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp) + \"/\" + buffdata0.exp;\n this.ProgressBar_buff.getComponent(ProgressBar).progress = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp) / buffdata0.exp;\n\n let buff1 = BuffPoxy.Inst.getBuffById(Number(buffdata0.ay_effList[0]));\n if (buff1) {\n let Sprite_dec1 = this.Sprite_dec1.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_dec1, buff1.icon);\n let Label_dec1 = this.Label_dec1.getComponent(Label);\n Label_dec1.string = GlobalFunction.ConvertExtremelyNumber(buff1.value);\n }\n let buff2 = BuffPoxy.Inst.getBuffById(Number(buffdata0.ay_effList[1]));\n if (buff2) {\n let Sprite_dec2 = this.Sprite_dec2.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_dec2, buff2.icon);\n let Label_dec2 = this.Label_dec2.getComponent(Label);\n Label_dec2.string = GlobalFunction.ConvertExtremelyNumber(buff2.value);\n }\n\n let buffdata1 = MainBuffProxy.Inst.GetZhuFuDataByID(this.buffdata.id1, this.buffdata.lv1);\n this.Label_shouyilv.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.lv1) + \"\";\n this.Label_shouyi.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp1) + \"/\" + buffdata1.exp;\n this.ProgressBar_shouyi.getComponent(ProgressBar).progress = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp1) / buffdata1.exp;\n this.Label_shouyinum.getComponent(Label).string = \"+\" + GlobalFunction.ConvertExtremelyNumber(Number(buffdata1.ay_effList[0]));\n // let Label_shouyitime = this.Label_shouyitime.getComponent(Label);\n\n\n\n\n let buffdata2 = MainBuffProxy.Inst.GetZhuFuDataByID(this.buffdata.id2, this.buffdata.lv2);\n this.Label_gongjilv.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.lv2) + \"\";\n this.Label_gongji.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp2) + \"/\" + buffdata2.exp;\n this.ProgressBar_gongji.getComponent(ProgressBar).progress = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp2) / buffdata2.exp;\n let buff3 = BuffPoxy.Inst.getBuffById(Number(buffdata2.ay_effList[0]));\n this.Label_gongjinum.getComponent(Label).string = \"+\"+GlobalFunction.ConvertExtremelyNumber(buff3.value);\n // let Label_gongjitime = this.Label_gongjitime.getComponent(Label);\n\n\n\n let buffdata3 = MainBuffProxy.Inst.GetZhuFuDataByID(this.buffdata.id3, this.buffdata.lv3);\n this.Label_skilllv.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.lv3) + \"\";\n this.Label_skill.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp3) + \"/\" + buffdata3.exp;\n this.ProgressBar_skill.getComponent(ProgressBar).progress = GlobalFunction.ConvertUndefinedToNumber(this.buffdata.exp3) / buffdata3.exp;\n this.Label_skillnum.getComponent(Label).string =\"-\"+GlobalFunction.ConvertExtremelyNumber( Number(buffdata3.ay_effList[0]));\n // let Label_skilltime = this.Label_skilltime.getComponent(Label);\n this.Button_sure.node.active=false;\n if(ShopProxy.Inst.GoodIdList!=undefined &&ShopProxy.Inst.GoodIdList.length > 0){\n let zhufudata = ShopProxy.Inst.GoodIdList.find(item=>item==4001);\n if(zhufudata){\n this.Button_sure.node.active=true;\n }\n }\n this.Panle_center.active=true;\n this.ShowTimeDayCallback();\n }\n //点击道具\n bindClickDayChildEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n // var data = new BoxData\n // {\n // data.rewards = s1023.rewards;\n // };\n // GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n if (this.timeDayCallback1) {\n this.unschedule(this.timeDayCallback1);\n }\n if (this.timeDayCallback2) {\n this.unschedule(this.timeDayCallback2);\n }\n if (this.timeDayCallback3) {\n this.unschedule(this.timeDayCallback3);\n }\n }\n clearRes() {\n }\n}\n","/**\n * MainPoxy config配置文件\n */\n\nimport { c1020, s1020 } from \"../../../proto/proto\";\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\n@res_auto_bind()\nexport class MainPoxy {\n private static _inst: MainPoxy;\n public static get Inst(): MainPoxy {\n if (MainPoxy._inst == null) {\n MainPoxy._inst = new MainPoxy();\n }\n return MainPoxy._inst;\n }\n /***==========================发送消息给服务器========================= */\n // public SendC1300() {\n // // 获取所有建筑信息\n // var c1300: c1300 = {};\n // send2client(\"c1300\", c1300);\n // }\n /***==========================服务器数据存储============================== */\n public MainRedList: number[]=[]; //服务器返回 -已经锁建筑列表数据\n}\n\n/***==========================接收消息给服务器========================= */\nexport function do_s1020(s1020: s1020) {\n\n // int32 type=1; //1-全部,2-更新,3-删除\n // repeated int32 ids=2; //红点id列表,前后端统一定义\n // console.log(\"=================成功接收s1020 ========================\" + s1020.ids);\n // let type = s1020.type;\n // console.log(\"=================成功接收s1020 ========================\" + s1020.type);\n\n // if (s1020.ids != undefined) {\n // for (let index = 0; index < s1020.ids.length; index++) {\n // const element = s1020.ids[index];\n // console.log(\"main id===\" + element);\n // }\n // }\n if (MainPoxy.Inst.MainRedList == undefined) {\n MainPoxy.Inst.MainRedList = [];\n }\n if (s1020.type == 1) {\n if(s1020.ids!=undefined){\n MainPoxy.Inst.MainRedList = s1020.ids; \n }else{\n MainPoxy.Inst.MainRedList.length=0;\n }\n } else if (s1020.type == 2) {\n if (s1020.ids != undefined) {\n for (let index = 0; index < s1020.ids.length; index++) {\n const element = s1020.ids[index];\n if (MainPoxy.Inst.MainRedList.length == 0) {\n MainPoxy.Inst.MainRedList.push(element);\n } else {\n if (!MainPoxy.Inst.MainRedList.includes(element)) {\n MainPoxy.Inst.MainRedList.push(element);\n }\n }\n\n }\n }\n } else if (s1020.type == 3) {\n if (s1020.ids != undefined) {\n if (MainPoxy.Inst.MainRedList.length != 0) {\n for (let index = 0; index < s1020.ids.length; index++) {\n const element = s1020.ids[index];\n\n if (MainPoxy.Inst.MainRedList.includes(element)) {\n MainPoxy.Inst.MainRedList = MainPoxy.Inst.MainRedList.filter(item => item !== element);\n }\n\n }\n }\n\n }\n }\n EventManager.Inst.event(EventType.UPDATE_MAIN_REDPOINT_CHANGE);\n\n}\nexport enum MainRedType {\n yueka = 1,\n renwu = 2,\n qiandao = 3,\n adlibao = 4,\n cflibao = 5,\n yingxiong = 6,\n shangdian = 7,\n fuben = 8,\n}","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class MainTitlePoxy {\n private static _inst: MainTitlePoxy;\n public static get Inst(): MainTitlePoxy {\n if (MainTitlePoxy._inst == null) {\n MainTitlePoxy._inst = new MainTitlePoxy();\n }\n return MainTitlePoxy._inst;\n }\n @res_assign(\"MainTitle\")\n public datas: MainTitle[]; \n public get datasAchieve(){\n if(!this.datas){\n this.datas =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"MainTitle\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"MainTitle\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.datas.push(achieveitem);\n }\n\n }\n return this.datas;\n }\n public getTitleById(id:number):MainTitle{\n if(this.datas){\n return this.datas.find(element=>element.mainTitleId==id); \n }else{\n \n this.datas = this.datasAchieve;\n return this.datas.find(element=>element.mainTitleId==id); \n }\n }\n}\n\nexport class MainTitle {\n mainTitleId: number;\n type: number;\n ay_hp: Array;\n ay_heroskill: Array;\n ay_hurt: Array;\n}","import { _decorator, Node, Button } from 'cc';\nconst { ccclass, property } = _decorator;\nimport GameConst from \"../../../core/common/GameConst\";\nimport BasePanel from \"../../../core/component/BasePanel\";\nimport WindowManager, { UILayer } from \"../../../core/manager/WindowManager\";\nimport { Component } from 'cc';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport GameEntry from '../../GameEntry';\nimport { Prefab } from 'cc';\nimport { SpineGmView } from './SpineGmView';\nimport { instantiate } from 'cc';\nimport { BuildHeroType } from '../../../map/layer/BuildView';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { GameModleComp } from '../../../game/GameModle';\nimport { GmView } from './GmView';\nimport BossChangeItemComp from './BossChangeItemComp';\nimport { WorldMapViewComp } from '../mapUI/WorldMapViewComp';\nimport { Label } from 'cc';\nimport { PassPoxy } from '../proxy/PassPoxy';\nimport { WordMapPoxy } from '../proxy/WordMapPoxy';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { ProgressBar } from 'cc';\nimport { find } from 'cc';\nimport { tween } from 'cc';\nimport { FuBen, FuBenOpenData, FuBenProxy } from '../proxy/FuBenProxy';\nimport { PveTypeEnum } from '../../../enum/Enum';\nimport { c1621, p_chat_msg, p_task } from '../../../proto/proto';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { MainBuffProxy } from '../proxy/MainBuffProxy';\nimport { Sprite } from 'cc';\nimport { FuBenExp, FuBenExpPoxy } from '../proxy/FuBenExpPoxy';\nimport { TaskProxy } from '../proxy/TaskProxy';\nimport { ItemProxy } from '../proxy/ItemProxy';\nimport { XiaoTou, XiaoTouPoxy } from '../proxy/XiaoTouPoxy';\nimport { BossGoUIViewComp } from './BossGoUIViewComp';\nimport { dataUser } from '../../gameData/dataUser';\nimport { RichText } from 'cc';\nimport { FestivalTimeProxy } from '../proxy/FestivalTimeProxy';\nimport { AdGiftProxy } from '../proxy/AdGiftProxy';\nimport { GameOverType } from '../proxy/LosePoxy';\nimport { MainPoxy, MainRedType } from '../proxy/MainPoxy';\nimport { ClothesType, KingDressProxy } from '../proxy/KingDressProxy';\nimport { sys } from 'cc';\nimport { MusicProxy } from '../proxy/MusicProxy';\nimport { KingInfoProxy } from '../proxy/KingInfoProxy';\nimport { ChatViewComp } from '../../../chat/ChatViewComp';\nimport { CommonMsgProxy } from '../proxy/CommonMsgProxy';\nimport { FunctionCfgPoxy } from '../../../_config/FunctionCfg';\nimport { FunctionProxy } from '../proxy/FunctionProxy';\nimport { DaySevenProxy } from '../proxy/DaySevenProxy';\nimport { TimePoxy } from '../proxy/TimePoxy';\nimport { BossLaiXi, BossLaixiPoxy } from '../proxy/BossLaixiPoxy';\nimport { ChatFacePoxy } from '../proxy/ChatFacePoxy';\nimport { ChangeImageItem } from '../../../chat/ChatTalkViewComp';\n\n@ccclass\nexport default class MainUI extends BasePanel {\n @property(Button)\n public mapTest: Button = null;\n @property(Prefab)\n public spineGm: Prefab = null;\n @property(Prefab)\n public Gm: Prefab = null;\n @property(Button)\n spineGmBtn: Button = null;\n\n @property(Prefab)\n bossChange: Prefab = null;\n @property(Node)\n hpNode: Node = null;\n @property(Prefab)\n wordMap: Prefab = null;\n @property(Prefab)\n shuyaoPre: Prefab = null;\n @property(Sprite)\n Button_adv: Sprite = null;\n @property(Sprite)\n Button_limit: Sprite = null;\n\n @property(Node)\n Button_advance: Node = null;\n\n\n private mapView: WorldMapViewComp;\n\n @property(Node) Label_map: Node = null;\n @property(Node) btnXiaotou: Node = null;\n\n private bossChangeItem: BossChangeItemComp;\n\n //祝福\n @property(Node) buffrightyes: Node = null;\n @property(Node) bufftopyse: Node = null;\n @property(Node) buffleftys: Node = null;\n //任务\n @property(Button) Button_taskyse: Button = null;\n @property(Button) Button_tasknott: Button = null;\n @property(Button) Button_taskget: Button = null;\n\n @property(Node) Label_taskyes: Node = null;\n @property(Node) ProgressBar_task: Node = null;\n\n @property(Node) Label_tasknot: Node = null;\n\n @property(Node) Sprite_taskitemkuang: Node = null;\n @property(Node) Sprite_taskitem: Node = null;\n @property(Node) Label_taskitem: Node = null;\n\n //战斗力\n @property(Node) Label_zhali: Node = null;\n\n //头像\n @property(Node) Sprite_head: Node = null;\n\n //按钮\n //@property(Button) Button_lasttime: Node = null;\n\n //红点按钮\n @property(Node) Sprite_welfarered: Node = null;//月卡签到\n @property(Node) Sprite_teakred: Node = null;//未加 任务\n @property(Node) Sprite_advred: Node = null;//广告\n @property(Node) Sprite_limitred: Node = null;//触发\n @property(Node) Sprite_herored: Node = null;//英雄\n @property(Node) Sprite_shopred: Node = null;//商店\n @property(Node) Sprite_fbred: Node = null;//副本\n\n @property(Prefab)\n chatPrefab: Prefab = null;\n\n private chatView: ChatViewComp = null;\n\n\n /** 按鈕解鎖 */\n @property(Button) Button_hero: Button = null;\n @property(Button) Button_herolock: Button = null;\n @property(Button) Button_equip: Button = null;\n @property(Button) Button_equiplock: Button = null;\n @property(Button) Button_fb: Button = null;\n @property(Button) Button_fblock: Button = null;\n @property(Button) Button_push: Button = null;\n @property(Button) Button_chat: Button = null;\n\n\n /**七天樂 */\n timeDayCallback: any;\n @property(Button) Button_seven: Button = null;\n @property(Node) Label_seventime: Node = null;\n\n @property(RichText)\n Label_chat:RichText = null;\n\n onBtnClicked(e: any, name: string) {\n switch (name) {\n //top \n case 'Button_head':\n //钻石\n WindowManager.Instance().open(GameConst.winPath.KingUI, null, true);\n break;\n case 'Button_map':\n if (this.mapView) {\n this.mapView.desTory();\n }\n this.mapView = instantiate(this.wordMap).getComponent(WorldMapViewComp);\n let layer = WindowManager.Instance().getLayer(UILayer.最顶层);\n layer.addChild(this.mapView.node);\n break;\n //left\n case 'Button_activity':\n //activity\n break;\n case 'Button_welfare':\n //welfare\n WindowManager.Instance().open(GameConst.winPath.WelfareUI, null, true);\n break;\n //right \n case 'Button_lasttime':\n WindowManager.Instance().open(GameConst.winPath.DayTaskUI, 1, true);\n break;\n case 'Button_seven':\n //seven\n WindowManager.Instance().open(GameConst.winPath.DaySevenUI, null, true);\n // GlobalFunction.ShowBox5();\n break;\n case 'Button_daytask':\n //daytask\n WindowManager.Instance().open(GameConst.winPath.DayTaskUI, 2, true);\n // GlobalFunction.ShowBox5();\n break;\n case 'Button_adv':\n //adv\n // GlobalFunction.ShowBox5();\n WindowManager.Instance().open(GameConst.winPath.RandomAdvertUI, null, true);\n break;\n //Mbotton \n case 'Button_taskyse':\n //taskyse\n WindowManager.Instance().open(GameConst.winPath.TaskUI, null, true);\n break;\n case 'Button_tasknott':\n //tasknot\n WindowManager.Instance().open(GameConst.winPath.TaskUI, null, true);\n break;\n case 'Button_taskget':\n //taskget\n WindowManager.Instance().open(GameConst.winPath.TaskUI, null, true);\n break;\n case 'Button_buff':\n //buff\n WindowManager.Instance().open(GameConst.winPath.MainBuffUI, null, true);\n break;\n case 'Button_chat':\n this.showChat();\n //chat\n break;\n case 'Button_hero':\n //hero\n EventManager.Inst.event(EventType.guideEvent_4003 , 4003);\n WindowManager.Instance().open(GameConst.winPath.HeroUI, null, true);\n break;\n case \"Button_herolock\":\n this.showUnLockLevel(1);\n break;\n case 'Button_equip':\n //equip\n EventManager.Inst.event(EventType.guideEvent_9002 , 9002);\n WindowManager.Instance().open(GameConst.winPath.HeroEquiptUI, null, true);\n break;\n case \"Button_equiplock\":\n this.showUnLockLevel(2);\n break;\n case 'Button_shop':\n //shop\n WindowManager.Instance().open(GameConst.winPath.ShopUI, null, true);\n break;\n case 'Button_fb':\n //fb\n EventManager.Inst.event(EventType.guideEvent_5002 , 5002);\n WindowManager.Instance().open(GameConst.winPath.LoadUI, null, true);\n break;\n case \"Button_fblock\":\n this.showUnLockLevel(3);\n break;\n case 'Button_guanka':\n //guanka\n break;\n case 'Button_guankago':\n //guankago\n break;\n case 'Button_boss':\n //boss\n break;\n case \"BossChangeItem\":\n // Logger.logView(\"2222222222222222222222222222\")\n break;\n case \"Button_push\":\n EventManager.Inst.event(EventType.guideEvent_2006 , 2006);\n EventManager.Inst.event(EventType.guideEvent_7004 , 7004);\n EventManager.Inst.event(EventType.guideEvent_8004 , 8004);\n this.onShuYaoClick();\n break;\n case \"btnXiaotou\":\n Logger.logView(\"展示小偷咯哟\");\n this.onThiefClick();\n break;\n case \"Button_advance\":\n EventManager.Inst.event(EventType.guideEvent_4007 , 4007);\n WindowManager.Instance().open(GameConst.winPath.AdvanceUI, null, true);\n break;\n case \"Button_limit\":\n WindowManager.Instance().open(GameConst.winPath.FestivalTimeUI, null, true);\n break;\n }\n }\n\n protected onLoad(): void {\n this.addEvent();\n\n if (GameModleComp.getInstance().openSpineGm) {\n this.spineGmBtn.node.active = true;\n }\n GlobalFunction.InitSendAgreementToUI();\n this.hpNode.removeAllChildren();\n this.bossChangeItem = instantiate(this.bossChange).getComponent(BossChangeItemComp);\n this.hpNode.addChild(this.bossChangeItem.node);\n this.showThief();\n this.showActiveBtn();\n };\n\n private showChat() {\n if (this.chatView) {\n this.hideChat();\n }\n this.chatView = instantiate(this.chatPrefab).getComponent(ChatViewComp);\n this.node.parent.addChild(this.chatView.node);\n }\n\n hideChat() {\n this.chatView.desTory();\n this.chatView = null;\n }\n\n private showMapLabel() {\n let psdata = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\n if (psdata) {\n let wordMapdata = WordMapPoxy.Inst.getWordMapById(psdata.wordMapID);\n this.Label_map.getComponent(Label).string = StringUtil.stringFormat(GlobalFunction.GetMsg(20065), wordMapdata.lan_classify, wordMapdata.typeId, psdata.typeId);\n }\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.CHANGE_REMOVE_MAIN_UI, this, this.onRemoveMe);\n EventManager.Inst.on(EventType.SEVER_CHANGE_PASS, this, this.onChanegPass);\n EventManager.Inst.on(EventType.THIEF_ACTIVE_TYPE_CHANGE, this, this.onThiefChange);\n EventManager.Inst.on(EventType.UPDATE_ZHUFU_MAIN_CHANGE, this, this.onZhuFuChange);\n EventManager.Inst.on(EventType.UPDATE_TASK_MAIN_CHANGE, this, this.OnTaskChange);\n EventManager.Inst.on(EventType.UPDATE_FESTIVALTIME_MAIN_CHANGE, this, this.OnFestivalChange);\n EventManager.Inst.on(EventType.UPDATE_ALLPOWER_MAIN_CHANGE, this, this.ShowPowerLabel);\n EventManager.Inst.on(EventType.AD_GIFT_REWARD_SHOW, this, this.showAdgiftReward);\n EventManager.Inst.on(EventType.AD_FEST_REWARD_SHOW, this, this.showFestReward);\n EventManager.Inst.on(EventType.SHOW_OFFINE_UI, this, this.showOffineUI);\n EventManager.Inst.on(EventType.UPDATE_MAIN_REDPOINT_CHANGE, this, this.MainRedPointChange);\n EventManager.Inst.on(EventType.UPDATE_MAIN_HREADIMG_CHANGE, this, this.MainHeadImgChange);\n EventManager.Inst.on(EventType.INIT_MUSIC_SETING, this, this.InitMusicSeting);\n EventManager.Inst.on(EventType.UPDATE_MAIN_DAYSEVEN_CHANGE, this, this.ChangeDaySeven);\n EventManager.Inst.on(EventType.ASK_INFO_PINGTAI, this, this.InItInfoFormTop);\n EventManager.Inst.on(EventType.UPDATE_MAIN_FUNTION_CHANGE, this, this.UpDataMainFuntion);\n EventManager.Inst.on(EventType.OPEN_ADVANCESHOW_UI, this, this.OpenAdvanceShowUI);\n EventManager.Inst.on(EventType.BOSS_LAI_XI_DATA_CHANGE, this, this.onBossLaiXi);\n EventManager.Inst.on(EventType.BOSS_LAI_XI_TIME_CHANGE , this , this.onTimeChaneg);\n EventManager.Inst.on(EventType.HAVE_NEW_CHAT_MSG , this, this.onNewMsg)\n }\n extractHashWithFourChars(inputString: string): string[] {\n const regex = /#(\\w{4})/g;\n let match;\n const matches = [];\n while ((match = regex.exec(inputString)) !== null) {\n matches.push(match[0]); // match[0] 包含整个匹配的子串,例如 \"#1234\"\n }\n return matches;\n }\n replaceHashWithText(inputString: string, target: string, replacement: string): string {\n let result = \"\";\n let currentIndex = 0;\n while (currentIndex < inputString.length) {\n const matchIndex = inputString.indexOf(target, currentIndex);\n if (matchIndex !== -1) {\n // 添加匹配前的内容\n result += inputString.substring(currentIndex, matchIndex);\n // 添加替换内容\n result += replacement;\n // 更新当前索引\n currentIndex = matchIndex + target.length;\n } else {\n // 添加剩余的内容\n result += inputString.substring(currentIndex);\n break;\n }\n }\n \n return result;\n }\n changeImage(){\n let newMsg:string = \"\"\n if(this.changeIdArr.length){\n newMsg = this.getNewMsg(this.nowMsg.msg)\n for(let i = 0 ; i < this.changeIdArr.length ; i++){\n this.changeIdArr[i].changeIndex++;\n if(this.changeIdArr[i].changeIndex >= this.changeIdArr[i].changePath.length){\n this.changeIdArr[i].changeIndex = 0;\n }\n newMsg = this.replaceHashWithText(newMsg , this.changeIdArr[i].changeStr , ``);\n }\n find(\"newChatLabel\" , this.Button_chat.node).getComponent(RichText).string = \"\"+this.nowMsg.nickname+\":\"+newMsg+\"\";;\n }\n }\n getNewMsg(str:string):string{\n let rStr:string = \"\";\n for(let i = 0 ; i < str.length ; i++){\n rStr += str.charAt(i);\n }\n return rStr;\n }\n private changeIdArr:Array = [];\n private nowMsg:p_chat_msg ;\n private onNewMsg(){\n this.changeIdArr = [];\n let nowMsg:p_chat_msg = ChatFacePoxy.Inst.msgList[ChatFacePoxy.Inst.msgList.length - 1];\n this.nowMsg = ChatFacePoxy.Inst.msgList[ChatFacePoxy.Inst.msgList.length - 1];\n if(!this.nowMsg){\n return;\n }\n if(nowMsg.channel == 1){\n let matches:Array = this.extractHashWithFourChars(nowMsg.msg);\n let idArr:Array = [];\n for(let i = 0 ; i < matches.length ; i++){\n let str:string = matches[i];\n let imageId:number = ChatFacePoxy.Inst.getIdByVe(str)\n if(imageId >= 0){\n idArr[i] = imageId;\n }\n }\n for(let i = 0 ; i < idArr.length ; i++){\n if(idArr[i]){\n let changeItem:ChangeImageItem = new ChangeImageItem();\n changeItem.changeId = idArr[i];\n changeItem.changeStr = matches[i];\n changeItem.changePath = ChatFacePoxy.Inst.getFaceArrById(idArr[i]);\n changeItem.changeIndex = 0;\n this.changeIdArr.push(changeItem);\n }\n }\n let newMsg:string = this.getNewMsg(nowMsg.msg)\n for(let l = 0 ; l < this.changeIdArr.length ; l++){\n newMsg = this.replaceHashWithText(newMsg , this.changeIdArr[l].changeStr , ``);\n }\n find(\"newChatLabel\" , this.Button_chat.node).getComponent(RichText).string = \"\"+nowMsg.nickname+\":\"+newMsg+\"\";\n }else if(nowMsg.channel == 5){\n find(\"newChatLabel\" , this.Button_chat.node).getComponent(RichText).string = \"\"+nowMsg.msg+\"\"\n }\n }\n private onTimeChaneg(){\n if(this.Button_push.node.active && BossLaixiPoxy.Inst.s1049 && BossLaixiPoxy.Inst.s1049.state==0){\n let labels:Label = find(\"Label_bosstime\" , this.Button_push.node).getComponent(Label);\n labels.string = TimePoxy.Inst.ShowTime(GameModleComp.getInstance().bossComeTime);\n }\n }\n\n private onBossLaiXi(){\n if(BossLaixiPoxy.Inst.s1049 && BossLaixiPoxy.Inst.s1049.bossId && BossLaixiPoxy.Inst.s1049.state==0){\n this.Button_push.node.active = true;\n let bosslaixi:BossLaiXi = BossLaixiPoxy.Inst.getBossLaiXiById(BossLaixiPoxy.Inst.s1049.bossId);\n let sp:Sprite = find(\"Sprite_debuffbg\" , this.Button_push.node).getComponent(Sprite);\n let labels:Label = find(\"Label_boss\" , this.Button_push.node).getComponent(Label);\n GlobalFunction.SetSpriteFrame(sp , bosslaixi.push);\n labels.string = bosslaixi.lan_name;\n }else{\n this.Button_push.node.active = false;\n }\n }\n private OpenAdvanceShowUI(){\n FunctionProxy.Inst.OpenAdvanceShowUI();\n }\n\n private showUnLockLevel(lock: number) {\n let data = FunctionProxy.Inst.GetFunctionDataByType(lock);\n if (data) {\n let strings: string[] = [(data.level-1) + \"\"];\n CommonMsgProxy.Inst.ShowCommonMsg(1015, strings);\n }\n }\n\n private UpDataMainFuntion() {\n let datahero = FunctionProxy.Inst.GetFunctionDataByType(1);\n let datayizhi = FunctionProxy.Inst.GetFunctionDataByType(2);\n let datafb = FunctionProxy.Inst.GetFunctionDataByType(3);\n\n this.Button_hero.node.active = (dataUser.Instance().passId+1) >= datahero.level;\n this.Button_herolock.node.active = (dataUser.Instance().passId+1) < datahero.level;\n\n this.Button_equip.node.active = (dataUser.Instance().passId+1) >= datayizhi.level;\n this.Button_equiplock.node.active = (dataUser.Instance().passId+1) < datayizhi.level;\n\n this.Button_fb.node.active = (dataUser.Instance().passId+1) >= datafb.level;\n this.Button_fblock.node.active = (dataUser.Instance().passId+1) < datafb.level;\n }\n private ChangeDaySeven() {\n let different = DaySevenProxy.Inst.SevenEndTime -GameModleComp.instance.serverTime;\n if(different<=0){\n this.Button_seven.node.active=false;\n }else{\n this.Button_seven.node.active=true;\n // let timelabel = this.Label_seventime.getComponent(Label);\n // if (different > 0) {\n // if(this.timeDayCallback==null){\n // timelabel.string = TimePoxy.Inst.ShowDaySevenTime(different);\n // this.timeDayCallback = function (dt) {\n // if (different > 0) {\n // different--;\n // timelabel.string = TimePoxy.Inst.ShowDaySevenTime(different);\n \n // } else {\n // DaySevenProxy.Inst.SendC1052();\n // this.unschedule(this.timeDayCallback);\n // timelabel.string = TimePoxy.Inst.ShowDaySevenTime(0);\n\n // }\n // }\n // this.schedule(this.timeDayCallback, 1.0);\n // }\n // } else {\n // timelabel.string = TimePoxy.Inst.ShowDaySevenTime(0);\n // }\n }\n }\n private InitMusicSeting() {\n MusicProxy.Inst.InItMusicSeting();\n }\n private InItInfoFormTop() {\n KingInfoProxy.Inst.GetContactContent();\n }\n private MainHeadImgChange(any: number) {\n let headid;\n if (any == 0) {\n console.log(\"dataUser.Instance().resId==\" + dataUser.Instance().resId);\n headid = dataUser.Instance().resId;\n } else {\n headid = any\n }\n let Sprite_head = this.Sprite_head.getComponent(Sprite);\n let ClothesRoleDataList = KingDressProxy.Inst.GetClothesListByType(ClothesType.touxiang);\n let ClothesData = ClothesRoleDataList.find(item => item.clothes_id == headid);\n if (ClothesData) {\n let itemdata = ItemProxy.Inst.GetItemDataByID(ClothesData.item_id);\n if (ClothesData.model_name == \"\") {\n GlobalFunction.SetSpriteFrame(Sprite_head, itemdata.icon);\n\n } else {\n GlobalFunction.SetSpriteFrame(Sprite_head, ClothesData.model_name);\n }\n\n }\n }\n\n private MainRedPointChange() {\n\n if (MainPoxy.Inst.MainRedList.length != 0) {\n this.Sprite_teakred.active = MainPoxy.Inst.MainRedList.includes(MainRedType.renwu);\n this.Sprite_advred.active = MainPoxy.Inst.MainRedList.includes(MainRedType.adlibao);\n this.Sprite_limitred.active = MainPoxy.Inst.MainRedList.includes(MainRedType.cflibao);\n // this.Sprite_herored.active = MainPoxy.Inst.MainRedList.includes(MainRedType.yingxiong);\n this.Sprite_shopred.active = MainPoxy.Inst.MainRedList.includes(MainRedType.shangdian);\n this.Sprite_fbred.active = MainPoxy.Inst.MainRedList.includes(MainRedType.fuben);\n this.Sprite_welfarered.active = MainPoxy.Inst.MainRedList.includes(MainRedType.yueka) || MainPoxy.Inst.MainRedList.includes(MainRedType.qiandao);\n } else {\n this.Sprite_teakred.active = false;\n this.Sprite_advred.active = false;\n this.Sprite_limitred.active = false;\n this.Sprite_herored.active = false;\n this.Sprite_shopred.active = false;\n this.Sprite_fbred.active = false;\n this.Sprite_welfarered.active = false;\n }\n\n\n }\n private showOffineUI() {\n WindowManager.Instance().open(GameConst.winPath.OfflineUI, true);\n }\n private showActiveBtn() {\n if (FestivalTimeProxy.Inst.FestivalGiftList && FestivalTimeProxy.Inst.FestivalGiftList.length) {\n this.showFestReward(true)\n }\n if (AdGiftProxy.Inst.rewardsList && AdGiftProxy.Inst.rewardsList.length) {\n this.showAdgiftReward(true);\n }\n }\n private showAdgiftReward(isOpen: boolean) {\n this.Button_adv.node.active = isOpen;\n }\n private showFestReward(isOpen: boolean) {\n this.Button_limit.node.active = isOpen;\n }\n\n /**触发式礼包状态改变*/\n private OnFestivalChange() {\n\n let buffserverdata = MainBuffProxy.Inst.BuffServerData;\n if (buffserverdata) {\n if (buffserverdata.endTime3 > 0) {\n let endTime3 = buffserverdata.endTime3;\n let different3 = endTime3 - GameModleComp.getInstance().serverTime;\n this.buffleftys.active = different3 > 0;\n }\n\n if (buffserverdata.endTime2 > 0) {\n let endTime2 = buffserverdata.endTime2;\n let different2 = endTime2 - GameModleComp.getInstance().serverTime;\n this.bufftopyse.active = different2 > 0;\n }\n\n if (buffserverdata.endTime1 > 0) {\n let endTime1 = buffserverdata.endTime1;\n let different1 = endTime1 - GameModleComp.getInstance().serverTime;\n this.buffrightyes.active = different1 > 0;\n }\n }\n }\n /**祝福状态改变*/\n private onZhuFuChange() {\n\n let buffserverdata = MainBuffProxy.Inst.BuffServerData;\n if (buffserverdata) {\n if (buffserverdata.endTime3 > 0) {\n let endTime3 = buffserverdata.endTime3;\n let different3 = endTime3 - GameModleComp.getInstance().serverTime;\n this.buffleftys.active = different3 > 0;\n }\n\n if (buffserverdata.endTime2 > 0) {\n let endTime2 = buffserverdata.endTime2;\n let different2 = endTime2 - GameModleComp.getInstance().serverTime;\n this.bufftopyse.active = different2 > 0;\n }\n\n if (buffserverdata.endTime1 > 0) {\n let endTime1 = buffserverdata.endTime1;\n let different1 = endTime1 - GameModleComp.getInstance().serverTime;\n this.buffrightyes.active = different1 > 0;\n }\n }\n }\n\n private InItZhuFuState() {\n this.buffleftys.active = false;\n this.bufftopyse.active = false;\n this.buffrightyes.active = false;\n }\n /**战斗力值改变 */\n public ShowPowerLabel() {\n let Label_zhali = this.Label_zhali.getComponent(Label);\n Label_zhali.string = GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().power);\n }\n /**任务显示 */\n private OnTaskChange() {\n\n if (TaskProxy.Inst.TaskServerMap && TaskProxy.Inst.TaskServerMap.size > 0) {\n let TaskServerList: p_task[] = [];\n for (const [key, value] of Array.from(TaskProxy.Inst.TaskServerMap.entries())) {\n TaskServerList.push(value);\n }\n let taskdata = TaskServerList[0];\n this.Button_taskyse.node.active = taskdata.state == 1;\n this.Button_taskget.node.active = taskdata.state == 2;\n this.Button_tasknott.node.active = taskdata.state == 3;\n let taskData = TaskProxy.Inst.GetTaskDataByID(taskdata.taskId);\n if (taskData) {\n if (this.Button_taskyse.node.active) {\n let newContent: string[] = [];\n for (let i = 0; i < taskData.ay_task.length; i++) {\n let type = Number(taskData.ay_task[i]);\n if (type == 1) {\n newContent.push(GlobalFunction.GetMsg(Number(taskData.ay_taskNum[i])));\n } else {\n newContent.push(taskData.ay_taskNum[i]);\n }\n }\n this.Label_taskyes.getComponent(RichText).string = StringUtil.stringAyFormat(GlobalFunction.GetMsg(taskData.task), newContent);\n this.ProgressBar_task.getComponent(ProgressBar).progress = GlobalFunction.ConvertUndefinedToNumber(taskdata.now_content) / taskdata.max_content;\n }\n\n if (this.Button_tasknott.node.active) {\n this.Label_tasknot.getComponent(RichText).string = StringUtil.stringFormat(GlobalFunction.GetMsg(taskData.passlan), taskData.pass);\n }\n }\n let itemdata = ItemProxy.Inst.GetItemDataByID(taskData.item);\n if (itemdata) {\n let Sprite_taskitemkuang = this.Sprite_taskitemkuang.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_taskitemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_taskitem = this.Sprite_taskitem.getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_taskitem, itemdata.icon);\n let Label_taskitem = this.Label_taskitem.getComponent(Label);\n Label_taskitem.string = GlobalFunction.ConvertNumberWithUnit(taskData.itemNum);\n }\n // this.Sprite_teakred.active=false;\n if (TaskServerList.length > 1) {\n for (let i = 0; i < TaskServerList.length; i++) {\n if (i > 0) {\n if (TaskServerList[i].state == 2) {\n // this.Sprite_teakred.active =true;\n break;\n }\n }\n }\n }\n TaskServerList = null;\n }\n\n }\n\n\n /**小偷活动改变*/\n private onThiefChange(isOpen: boolean) {\n if (GameModleComp.getInstance().isOpenGame) {\n this.showThief();\n }\n }\n private showThief() {\n if (FuBenProxy.Inst.thiefIsOpen) {\n this.btnXiaotou.active = true;\n let pro: ProgressBar = find(\"ProgressBar_time\", this.btnXiaotou).getComponent(ProgressBar);\n // tween(pro).to(FuBenProxy.Inst.thiefEndTime, { progress: 0 }).start();\n\n let xiaotou: XiaoTou = XiaoTouPoxy.Inst.GetXiaoTouById(FuBenProxy.Inst.thiefId)\n\n let nowTime: number = GameModleComp.getInstance().serverTime;\n let overTime: number = FuBenProxy.Inst.thiefEndTime;\n let time: number = (overTime - nowTime);\n if (time < 0) {\n time = 0;\n }\n let haveTime: number = time;\n pro.progress = haveTime / xiaotou.aliveTime;\n tween(pro).to(haveTime, { progress: 0 }).call(() => {\n if (this.btnXiaotou) {\n this.btnXiaotou.active = false\n }\n }).start();\n } else {\n this.btnXiaotou.active = false;\n }\n }\n\n /**小偷点击*/\n private onThiefClick() {\n GameEntry.Inst.mapView.nowScene.changeToThief()\n }\n private onChanegPass() {\n this.showMapLabel();\n }\n\n onBossChangeClick() {\n Logger.logView(\"111111111111111111111111\");\n }\n\n onShow(data: any) {\n // GlobalFunction.OpenTitlePoup(this.node.name, \"\");\n this.ShowMainFunction();\n this.onBossLaiXi();\n this.showFestReward(FestivalTimeProxy.Inst.FestivalGiftList && FestivalTimeProxy.Inst.FestivalGiftList.length>0)\n setTimeout(() => {\n this.onNewMsg();\n this.schedule(this.changeImage, 0.2);\n }, 1000);\n\n }\n\n\n\n public ShowMainFunction() {\n this.InItZhuFuState();\n this.showMapLabel();\n this.ShowPowerLabel();\n EventManager.Inst.event(EventType.UPDATE_MAIN_REDPOINT_CHANGE);\n EventManager.Inst.event(EventType.UPDATE_MAIN_HREADIMG_CHANGE, 0);\n EventManager.Inst.event(EventType.INIT_MUSIC_SETING);\n EventManager.Inst.event(EventType.ASK_INFO_PINGTAI);\n EventManager.Inst.event(EventType.UPDATE_MAIN_FUNTION_CHANGE);\n }\n\n logoAni() {\n\n }\n\n protected onDestroy(): void {\n\n }\n\n onHide(): void {\n if(this.timeDayCallback!=null){\n this.unschedule(this.timeDayCallback);\n this.timeDayCallback=null;\n }\n \n }\n clearRes() {\n\n }\n\n\n onSpineTestClick() {\n }\n onSpineGmClick() {\n let gm: SpineGmView = instantiate(this.spineGm).getComponent(SpineGmView);\n this.node.addChild(gm.node);\n }\n onGmClick() {\n let gm: GmView = instantiate(this.Gm).getComponent(GmView);\n GameEntry.Inst.container.addChild(gm.node);\n }\n onCopyClick() {\n let data: FuBenOpenData = new FuBenOpenData();\n data.fubenType = PveTypeEnum.DaDao;\n data.fubenId = 1;\n data.fubenExpId = 101;\n data.openType = 1;\n GameModleComp.getInstance().transPveData = data;\n let fubenExp: FuBenExp = FuBenExpPoxy.Inst.GetFuBenExpByID(GameModleComp.getInstance().transPveData.fubenExpId);\n var c1621: c1621 = {\n id: GameModleComp.getInstance().transPveData.fubenId,\n lv: fubenExp.lv,\n type: GameModleComp.getInstance().transPveData.openType\n };\n send2client(\"c1621\", c1621);\n }\n private onRemoveMe() {\n this.bossChangeItem.desTroy();\n }\n\n private onShuYaoClick() {\n let shuyao: BossGoUIViewComp = instantiate(this.shuyaoPre).getComponent(BossGoUIViewComp);\n let layer = WindowManager.Instance().getLayer(UILayer.最顶层);\n layer.addChild(shuyao.node);\n }\n onRecycle(): void {\n EventManager.Inst.off(EventType.CHANGE_REMOVE_MAIN_UI, this, this.onRemoveMe);\n EventManager.Inst.off(EventType.SEVER_CHANGE_PASS, this, this.onChanegPass);\n EventManager.Inst.off(EventType.THIEF_ACTIVE_TYPE_CHANGE, this, this.onThiefChange);\n EventManager.Inst.off(EventType.UPDATE_ZHUFU_MAIN_CHANGE, this, this.onZhuFuChange);\n EventManager.Inst.off(EventType.UPDATE_TASK_MAIN_CHANGE, this, this.OnTaskChange);\n EventManager.Inst.off(EventType.UPDATE_FESTIVALTIME_MAIN_CHANGE, this, this.OnFestivalChange);\n EventManager.Inst.off(EventType.UPDATE_ALLPOWER_MAIN_CHANGE, this, this.ShowPowerLabel);\n EventManager.Inst.off(EventType.AD_GIFT_REWARD_SHOW, this, this.showAdgiftReward);\n EventManager.Inst.off(EventType.AD_FEST_REWARD_SHOW, this, this.showFestReward);\n EventManager.Inst.off(EventType.SHOW_OFFINE_UI, this, this.showOffineUI);\n EventManager.Inst.off(EventType.UPDATE_MAIN_REDPOINT_CHANGE, this, this.MainRedPointChange);\n EventManager.Inst.off(EventType.UPDATE_MAIN_HREADIMG_CHANGE, this, this.MainHeadImgChange);\n EventManager.Inst.off(EventType.INIT_MUSIC_SETING, this, this.InitMusicSeting);\n EventManager.Inst.off(EventType.UPDATE_MAIN_DAYSEVEN_CHANGE, this, this.ChangeDaySeven);\n EventManager.Inst.off(EventType.ASK_INFO_PINGTAI, this, this.InItInfoFormTop);\n EventManager.Inst.off(EventType.UPDATE_MAIN_FUNTION_CHANGE, this, this.UpDataMainFuntion);\n EventManager.Inst.off(EventType.BOSS_LAI_XI_DATA_CHANGE, this, this.onBossLaiXi);\n EventManager.Inst.off(EventType.BOSS_LAI_XI_TIME_CHANGE , this , this.onTimeChaneg);\n EventManager.Inst.off(EventType.HAVE_NEW_CHAT_MSG , this, this.onNewMsg)\n this.unschedule(this.changeImage)\n }\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { BuffAttType, Camp, CampPoxy, VillageAttrType } from \"../proxy/CampPoxy\";\nimport { p_build } from \"../../../proto/proto\";\nimport { ProgressBar } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { RichText } from \"cc\";\nimport { Button } from \"cc\";\nimport { BuildHeroType } from \"../../../map/layer/BuildView\";\nimport { SoldierEquipProxy, SoldiersEquip, SoldiersEquipType, VillageBuildType } from \"../proxy/SoldierEquipProxy\";\nimport { Component } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { Village, VillagePoxy } from \"../proxy/VillagePoxy\";\nimport { BuildPoxy, BuildType, Build} from \"../proxy/BuildPoxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { color } from \"cc\";\nimport { Color } from \"cc\";\nimport { CoinType, ItemProxy } from \"../proxy/ItemProxy\";\nimport { ShopGoodType, ShopProxy, ShopUiType } from \"../proxy/ShopProxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nimport { FunctionProxy } from \"../proxy/FunctionProxy\";\nimport { CommonMsgProxy } from \"../proxy/CommonMsgProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('ManageUI') //城建UI\nexport default class ManageUI extends BasePanel {\n\n builddata: Build;\n firstCamp: Camp;\n secondCamp: Camp;\n firstVillage: Village;\n secondVillage: Village;\n p_build: p_build;\n down: boolean;\n buildid: number;\n\n upbuilddata: Number;\n downbuilddata: Number;\n\n SoldiersEquipList: SoldiersEquip[];\n SoldiersEquipList1: SoldiersEquip[];\n SoldiersEquipList2: SoldiersEquip[];\n @property(Node) Label_managename: Node | null = null;\n @property(Node) Sprite_one: Node | null = null;\n @property(Node) Label_oen: Node | null = null;\n @property(Node) Label_oendec: Node | null = null;\n @property(Node) ProgressBar_one: Node | null = null;\n @property(Node) Label_berone: Node | null = null;\n @property(Node) Label_aftone: Node | null = null;\n @property(Node) Label_onenum: Node | null = null;\n @property(Node) Label_onetips: Node | null = null;\n @property(Node) Label_upone: Node | null = null;\n @property(Node) Sprite_upone: Node | null = null;\n\n\n @property(Node) Sprite_two: Node | null = null;\n @property(Node) Label_two: Node | null = null;\n @property(Node) Label_twodec: Node | null = null;\n @property(Node) ProgressBar_two: Node | null = null;\n @property(Node) Label_bertwo: Node | null = null;\n @property(Node) Label_afttwo: Node | null = null;\n @property(Node) Label_twonum: Node | null = null;\n @property(Node) Label_twotips: Node | null = null;\n @property(Node) Label_uptwo: Node | null = null;\n @property(Node) Sprite_uptwo: Node | null = null;\n\n @property(Node) Sprite_updec: Node | null = null;\n @property(Node) expand: Node | null = null;\n @property(Node) Label_updec: Node | null = null;\n\n @property(Node) Layout_equit: Node | null = null;\n equit: Node | null = null;\n equitPrefab: Node | null = null;\n Button_up: Button | null = null;\n Button_upone: Button | null = null;\n Button_uptwo: Button | null = null;\n Button_close:Button | null = null;\n\n Button_right: Button | null = null;\n Button_left: Button | null = null;\n\n @property(Button) Button_zhaohuan: Button | null = null;\n @property(Button) Button_zhaohuanlock: Button | null = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n EventManager.Inst.event(EventType.guideEvent_1008 , 1008);\n EventManager.Inst.event(EventType.guideEvent_1012 , 1012);\n EventManager.Inst.event(EventType.guideEvent_3004 , 3004);\n this.close(true)\n } else if (name == \"Button_left\") {\n WindowManager.Instance().open(GameConst.winPath.ManageUI, this.upbuilddata, true);\n\n } else if (name == \"Button_right\") {\n\n WindowManager.Instance().open(GameConst.winPath.ManageUI, this.downbuilddata, true);\n\n } else if (name == \"Button_up\") {\n this.down = true;\n this.ShowExpand(this.down);\n\n } else if (name == \"Button_down\") {\n this.down = false;\n this.ShowExpand(this.down);\n }\n else if (name == \"Button_upone\") {\n \n // let key = this.node.name + \"cost_jinbi\";\n // //升级1\n // if (this.builddata.addParts == BuildType.cunzhuang) {\n // let costNum = this.firstVillage.upRes;\n // GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => { CampPoxy.Inst.SendC1302(this.firstVillage.buildId, 1)});\n\n // } else {\n\n // let costNum = this.firstCamp.costNum1;\n // GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => {CampPoxy.Inst.SendC1302(this.firstCamp.buildId, 1)});\n \n // }\n } else if (name == \"Button_uptwo\") {\n // let key = this.node.name + \"cost_jinbi\";\n // //升级2\n // if (this.builddata.addParts == BuildType.cunzhuang) {\n\n // let costNum = this.secondVillage.upRes;\n \n // GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => { CampPoxy.Inst.SendC1302(this.secondVillage.buildId, 2)});\n \n // } else {\n // let costNum =this.secondCamp.costNum2\n\n // GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => {CampPoxy.Inst.SendC1302(this.secondCamp.buildId, 2)});\n\n // }\n\n } else if (name == \"Button_zhaohuan\") {\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.zhaohuan, true);\n }else if(name ==\"Button_zhaohuanlock\"){\n let data =FunctionProxy.Inst.GetFunctionDataByType(4);\n if(data){\n let strings :string[] =[(data.level-1)+\"\"];\n CommonMsgProxy.Inst.ShowCommonMsg(1015,strings);\n }\n }\n }\n protected onLoad(): void {\n }\n\n onLoadUpdate(data: any) {\n if(data==1){\n this.ShowCampInfo();\n }else if(data==2){\n this.ShowSolderEquip();\n }\n\n\n }\n onShow(data: any): void {\n if (data == undefined) return;\n this.buildid = data;\n this.down = true;\n this.builddata = BuildPoxy.Inst.GetBuildById(this.buildid);\n if (this.builddata == undefined) return;\n this.upbuilddata = 0;\n this.downbuilddata = 0;\n this.expand.active = false;\n this.ShowCampInfo();\n CampPoxy.Inst.SendC1405(this.GetCampEquipType(this.buildid));\n\n this.Button_upone.node.on(Node.EventType.TOUCH_START,this.onTouchOneStar,this);\n this.Button_upone.node.on(Node.EventType.TOUCH_END,this.onTouchOneEnd,this);\n\n this.Button_uptwo.node.on(Node.EventType.TOUCH_START,this.onTouchTwoStar,this);\n this.Button_uptwo.node.on(Node.EventType.TOUCH_END,this.onTouchTwoEnd,this);\n\n let datahero =FunctionProxy.Inst.GetFunctionDataByID(2);\n this.Button_zhaohuan.node.active = (dataUser.Instance().passId+1)>=datahero.level;\n this.Button_zhaohuanlock.node.active = (dataUser.Instance().passId+1) { CampPoxy.Inst.SendC1302(this.firstVillage.buildId, 1)});\n\n }\n \n } else {\n \n let costNum = this.firstCamp.costNum1;\n if(goldNum {CampPoxy.Inst.SendC1302(this.firstCamp.buildId, 1)});\n }\n \n }\n }\n this.schedule(this.timeOneCallback, 0.5);\n}\n\n\nprivate onTouchOneEnd(){\n this.newOneTime = GameModleComp.getInstance().serverTime;//結束時間\n this.unschedule(this.timeOneCallback);\n\n if(this.newOneTime-this.olderOneTime==0){\n let key = this.node.name + \"cost_jinbi\";\n //升级1\n if (this.builddata.addParts == BuildType.cunzhuang) {\n let costNum = this.firstVillage.upRes;\n GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => { CampPoxy.Inst.SendC1302(this.firstVillage.buildId, 1)});\n \n //新手引导log\n if(GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.guideEvent_1007 , 1007);\n setTimeout(() => {\n GuideManager.getInstance().waitSmallId = 1008;\n EventManager.Inst.event(EventType.uiOpenEvent_1008 , [1008,this.Button_close.node])\n }, 500);\n }\n } else {\n if(GuideManager.getInstance().isInGuide){\n if(this.builddata.buildId == 1004){\n EventManager.Inst.event(EventType.guideEvent_1011 , 1011);\n setTimeout(() => {\n GuideManager.getInstance().waitSmallId = 1012;\n EventManager.Inst.event(EventType.uiOpenEvent_1012 , [1012,this.Button_close.node])\n }, 100);\n }else if(this.builddata.buildId == 1007){\n EventManager.Inst.event(EventType.guideEvent_3003 , 3003);\n setTimeout(() => {\n GuideManager.getInstance().waitSmallId = 3004;\n EventManager.Inst.event(EventType.uiOpenEvent_3004 , [3004,this.Button_close.node])\n }, 100);\n }\n }\n let costNum = this.firstCamp.costNum1;\n GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => {CampPoxy.Inst.SendC1302(this.firstCamp.buildId, 1)});\n \n }\n }\n}\n\n\n/**长按点击Two事件处理 */\ntimeTwoCallback: any;\nolderTwoTime :number;\nnewTwoTime :number;\nprivate onTouchTwoStar(){\n this.olderTwoTime = GameModleComp.getInstance().serverTime; //開始時間\n this.timeTwoCallback = function (dt) {\n\n let goldNum = dataUser.Instance().gold;\n let key = this.node.name + \"cost_jinbi\";\n //升级1\n if (this.builddata.addParts == BuildType.cunzhuang) {\n\n let costNum = this.secondVillage.upRes;\n \n\n if(goldNum { CampPoxy.Inst.SendC1302(this.secondVillage.buildId, 2)});\n\n }\n \n } else {\n let costNum =this.secondCamp.costNum2\n if(goldNum {CampPoxy.Inst.SendC1302(this.secondCamp.buildId, 2)});\n }\n \n }\n }\n this.schedule(this.timeTwoCallback, 0.5);\n \n\n\n\n}\nprivate onTouchTwoEnd(){\n this.newTwoTime = GameModleComp.getInstance().serverTime;//結束時間\n this.unschedule(this.timeTwoCallback);\n\n if(this.newTwoTime-this.olderTwoTime==0){\n let key = this.node.name + \"cost_jinbi\";\n //升级2\n if (this.builddata.addParts == BuildType.cunzhuang) {\n\n let costNum = this.secondVillage.upRes;\n \n GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => { CampPoxy.Inst.SendC1302(this.secondVillage.buildId, 2)});\n \n } else {\n let costNum =this.secondCamp.costNum2\n\n GlobalFunction.NotEnouthCostNum(costNum, CoinType.jinbi,key, () => {CampPoxy.Inst.SendC1302(this.secondCamp.buildId, 2)});\n\n }\n }\n}\n\n\n\n\n public ShowCampInfo() {\n if (this.builddata.addParts == BuildType.cunzhuang) {\n this.SetVillageInfo();\n } else {\n this.SetCampInfo();\n }\n }\n\n\n\n\n\n public SetCampInfo() {\n this.expand.active = true;\n this.p_build = CampPoxy.Inst.buildMaps.get(this.buildid);\n if (this.p_build == undefined) return;\n this.SetCampBuild();\n this.Button_left.node.active = this.upbuilddata != 0;\n this.Button_right.node.active = this.downbuilddata != 0;\n\n this.firstCamp = CampPoxy.Inst.GetCampById(this.p_build.buildId, this.p_build.lv1);\n this.secondCamp = CampPoxy.Inst.GetCampById(this.p_build.buildId, this.p_build.lv2);\n let MaxLevel = CampPoxy.Inst.GetCampMaxLvById(this.p_build.buildId);\n let Label_managename = this.Label_managename.getComponent(Label);\n let Sprite_one = this.Sprite_one.getComponent(Sprite);\n let Label_oen = this.Label_oen.getComponent(Label);\n let Label_dec = this.Label_oendec.getComponent(Label);\n let ProgressBar_one = this.ProgressBar_one.getComponent(ProgressBar);\n let Label_berone = this.Label_berone.getComponent(Label);\n let Label_aftone = this.Label_aftone.getComponent(Label);\n let Label_onenum = this.Label_onenum.getComponent(RichText);\n let Label_onetips = this.Label_onetips.getComponent(Label);\n let Label_upone = this.Label_upone.getComponent(Label);\n let Sprite_upone = this.Sprite_upone.getComponent(Sprite);\n this.Sprite_updec.active = true;\n let Sprite_updec = this.Sprite_updec.getComponent(Sprite);\n Label_managename.string = this.builddata.lan_build;\n if(this.builddata.addParts == BuildType.wuqi){\n GlobalFunction.SetSpriteFrame(Sprite_updec, \"ui_icon_gongji\");\n }else if(this.builddata.addParts == BuildType.kaijia){\n GlobalFunction.SetSpriteFrame(Sprite_updec, \"ui_yingxiong_buff_fangyu\");\n }else if(this.builddata.addParts == BuildType.maozi){\n GlobalFunction.SetSpriteFrame(Sprite_updec, \"ui_icon_shengming\");\n }\n GlobalFunction.SetSpriteFrame(Sprite_one, this.GetCampIcon(this.firstCamp.attrType1));\n Label_oen.string = this.GetCampName(this.firstCamp.attrType1);\n Label_dec.string = this.GetCampDec(this.firstCamp.attrType1);\n\n // Label_onetips.string = \"改造:等級\" + MaxLevel;\n let nextCamp = CampPoxy.Inst.GetCampNextLvById(this.firstCamp.buildId, this.firstCamp.level);\n let nextOneAtt = \"\";\n if (nextCamp != undefined) {\n nextOneAtt = nextCamp.attr1 + \"\";\n }\n this.Button_upone.node.active = nextCamp != undefined;\n this.Label_aftone.active=nextCamp != undefined;\n ProgressBar_one.progress = 0;\n Label_berone.string = GlobalFunction.ShowLV(this.p_build.lv1);\n let tageOne = this.GetBuildAttrType(this.firstCamp.attrType1);\n let oneLevel = Math.ceil(this.p_build.lv1 / tageOne);\n if (this.p_build.lv1 == oneLevel * tageOne) {\n oneLevel = (oneLevel + 1) * tageOne;\n } else {\n oneLevel = oneLevel * tageOne;\n }\n\n ProgressBar_one.progress = (tageOne - (oneLevel - this.p_build.lv1)) / tageOne;\n \n\n\n Label_aftone.string = GlobalFunction.ShowLV(oneLevel);\n if (nextCamp != undefined) {\n\n Label_onenum.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20180), this.firstCamp.attr1, nextOneAtt);\n } else {\n Label_onenum.string =this.firstCamp.attr1+\"\";\n Label_berone.string = \"MAX\";\n ProgressBar_one.progress = 1;\n }\n Label_upone.string =GlobalFunction.ConvertNumberWithUnit(this.firstCamp.costNum1);\n\n if(dataUser.Instance().gold 0) {\n let upid = SoldierEquipProxy.Inst.SoldierBuildTypeList[i - 1];\n if (CampPoxy.Inst.buildMaps.get(upid) != undefined) {\n this.upbuilddata = upid;\n break;\n }\n }\n\n }\n }\n\n for (let i = 0; i < SoldierEquipProxy.Inst.SoldierBuildTypeList.length; i++) {\n let id = SoldierEquipProxy.Inst.SoldierBuildTypeList[i];\n if (this.buildid == id) {\n if (i < SoldierEquipProxy.Inst.SoldierBuildTypeList.length - 1) {\n let downid = SoldierEquipProxy.Inst.SoldierBuildTypeList[i + 1];\n if (CampPoxy.Inst.buildMaps.get(downid) != undefined) {\n this.downbuilddata = downid;\n break;\n }\n }\n }\n }\n }\n\n public SetVillageInfo() {\n\n this.p_build = CampPoxy.Inst.buildMaps.get(this.buildid);\n if (this.p_build == undefined) return;\n\n this.SetVillageBuild();\n\n this.firstVillage = VillagePoxy.Inst.GetVillageById(this.p_build.buildId, this.p_build.lv1,1);\n this.secondVillage = VillagePoxy.Inst.GetVillageById(this.p_build.buildId, this.p_build.lv2,2);\n\n let Label_managename = this.Label_managename.getComponent(Label);\n let Sprite_one = this.Sprite_one.getComponent(Sprite);\n let Label_oen = this.Label_oen.getComponent(Label);\n let Label_dec = this.Label_oendec.getComponent(Label);\n let ProgressBar_one = this.ProgressBar_one.getComponent(ProgressBar);\n let Label_berone = this.Label_berone.getComponent(Label);\n let Label_aftone = this.Label_aftone.getComponent(Label);\n let Label_onenum = this.Label_onenum.getComponent(RichText);\n let Label_onetips = this.Label_onetips.getComponent(Label);\n let Label_upone = this.Label_upone.getComponent(Label);\n let Sprite_upone = this.Sprite_upone.getComponent(Sprite);\n this.Sprite_updec.active = false;\n this.Button_up.node.active = false;\n Label_managename.string = this.builddata.lan_build;\n GlobalFunction.SetSpriteFrame(Sprite_one, this.GetVillageIcon(this.firstVillage.type));\n Label_oen.string = this.GetVillageName(this.firstVillage.type);\n Label_dec.string = this.GetVillageDec(this.firstVillage.type);\n\n // Label_onetips.string = \"改造:等級\" + MaxLevel;\n let nextCamp = VillagePoxy.Inst.GetVillageNextLvById(this.firstVillage.buildId, this.firstVillage.level, VillageAttrType.shuliang);\n let nextOneAtt = \"\";\n if (nextCamp != undefined) {\n nextOneAtt = nextCamp.typeNum + \"\";\n }\n this.Button_upone.node.active = nextCamp != undefined;\n ProgressBar_one.progress = 0;\n Label_berone.string = GlobalFunction.ShowLV(this.p_build.lv1);\n let tageOne = this.GetBuildAttrType(this.firstVillage.type);\n // let oneLevel = Math.ceil(this.p_build.lv1 / tageOne);\n // if (this.p_build.lv1 == oneLevel * tageOne) {\n // oneLevel = (oneLevel + 1) * tageOne;\n // } else {\n // oneLevel = oneLevel * tageOne;\n // }\n let oneLevel = VillagePoxy.Inst.GetVillageMaxLvById(this.p_build.buildId, VillageAttrType.shuliang);\n ProgressBar_one.progress = this.p_build.lv1 / oneLevel;\n Label_aftone.string = GlobalFunction.ShowLV(oneLevel);\n if (nextCamp != undefined) {\n\n Label_onenum.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20180), this.firstVillage.typeNum, nextOneAtt);\n } else {\n Label_onenum.string =this.firstVillage.typeNum + \"\";\n Label_berone.string =\"MAX\";\n ProgressBar_one.progress =1;\n }\n\n Label_upone.string = GlobalFunction.ConvertNumberWithUnit(this.firstVillage.upRes);\n if(dataUser.Instance().gold 0) {\n let upid = SoldierEquipProxy.Inst.VillageBuildTypeList[i - 1];\n if (CampPoxy.Inst.buildMaps.get(upid) != undefined) {\n this.upbuilddata = upid;\n break;\n }\n }\n\n }\n }\n for (let i = 0; i < SoldierEquipProxy.Inst.VillageBuildTypeList.length; i++) {\n let id = SoldierEquipProxy.Inst.VillageBuildTypeList[i];\n if (this.buildid == id) {\n if (i < SoldierEquipProxy.Inst.VillageBuildTypeList.length - 1) {\n let downid = SoldierEquipProxy.Inst.VillageBuildTypeList[i + 1];\n if (CampPoxy.Inst.buildMaps.get(downid) != undefined) {\n this.downbuilddata = downid;\n break;\n }\n }\n }\n }\n\n }\n public ShowSolderEquip() {\n if (this.firstCamp == null) return;\n this.Button_up.node.active = !this.down;\n let Label_updec = this.Label_updec.getComponent(RichText);\n this.equitPrefab = this.equit;\n this.Layout_equit.removeAllChildren();\n if (!this.SoldiersEquipList) {\n this.SoldiersEquipList = [];\n }\n this.SoldiersEquipList.length = 0;\n\n if (!this.SoldiersEquipList1) {\n this.SoldiersEquipList1 = [];\n }\n this.SoldiersEquipList1.length = 0;\n\n // if (!this.SoldiersEquipList2) {\n // this.SoldiersEquipList2 = [];\n // }\n // this.SoldiersEquipList2.length = 0;\n\n let buildEquipList = CampPoxy.Inst.equipMaps;\n\n let SoldiersEquipLists: SoldiersEquip[] = SoldierEquipProxy.Inst.GetSoldiersEquipList(this.GetCampEquipType(this.buildid));\n\n let attCount: number = 0;\n Label_updec.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20181), GlobalFunction.ConvertExtremelyNumber(attCount));\n //获取后端传过来的装备列表\n if (buildEquipList.size != 0) {\n for (let v of buildEquipList.values()) {\n\n let data = SoldiersEquipLists.find(item => item.id == v.id);\n if (data) {\n data.level = v.lv;\n if (data.level != undefined) {\n data.fragments = v.num;\n attCount += data.have;\n this.SoldiersEquipList1.push(data);\n // SoldiersEquipLists = SoldiersEquipLists.filter(item => item != data);\n }\n\n }\n }\n\n Label_updec.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20181), GlobalFunction.ConvertExtremelyNumber(attCount));\n if (this.SoldiersEquipList1.length > 0) {\n this.SoldiersEquipList1.sort(function (a, b) { return b.color - a.color; });\n }\n\n // for (let i = 0; i < SoldiersEquipLists.length; i++) {\n // let count = 6 - this.SoldiersEquipList1.length;\n // if (i < count) {\n // let soldierdata = SoldiersEquipLists[i];\n // this.SoldiersEquipList2.push(soldierdata);\n // }\n // }\n // if (this.SoldiersEquipList2.length > 0) {\n // this.SoldiersEquipList2.sort(function (a, b) { return b.color - a.color; });\n // }\n // this.SoldiersEquipList = this.SoldiersEquipList1.concat(this.SoldiersEquipList2);\n this.SoldiersEquipList = this.SoldiersEquipList1;\n }\n // else {\n // for (let i = 0; i < 6; i++) {\n // let soldierdata = SoldiersEquipLists[i];\n // this.SoldiersEquipList.push(soldierdata);\n // }\n // this.SoldiersEquipList.sort(function (a, b) { return b.color - a.color; });\n // }\n\n for (let i = 0; i < 6; i++) {\n let itemNode = instantiate(this.equitPrefab);\n if (itemNode) {\n itemNode.parent = this.Layout_equit;\n let Button_equit = itemNode.getChildByName(\"Button_equit\");\n\n let yes = Button_equit.getChildByName(\"yes\");\n let not = Button_equit.getChildByName(\"not\");\n let Sprite_equitkuang = yes.getChildByName(\"Sprite_equitkuang\");\n let equipkuang = Sprite_equitkuang.getComponent(Sprite);\n let Sprite_equit = yes.getChildByName(\"Sprite_equit\").getComponent(Sprite);\n let Sprite_equitred = yes.getChildByName(\"Sprite_equitred\");\n\n let soldierEquip = this.SoldiersEquipList[i];\n if (soldierEquip != null) {\n yes.active = true;\n not.active = false;\n //比较已有装备碎片与升级需求碎片的个数\n Sprite_equitred.active = false;\n Sprite_equit.grayscale = soldierEquip.level == undefined;\n this.bindClickEquipEvent(Button_equit,soldierEquip.bigType);\n if (soldierEquip.level != undefined) {\n let soldiersEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(soldierEquip.level, soldierEquip.color);\n if (soldiersEquipUpData != undefined) {\n if (soldierEquip.fragments >= soldiersEquipUpData.up) {\n Sprite_equitred.active = true;\n }\n }\n }\n let equipColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(soldierEquip.color);\n GlobalFunction.SetSpriteFrame(equipkuang, equipColor);\n GlobalFunction.SetSpriteFrame(Sprite_equit, soldierEquip.icon);\n }\n\n\n\n }\n }\n }\n\n private isSendGuide:boolean = false;\n /***点击equip事件 */\n bindClickEquipEvent(itemnode: Node,bigtype:number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickEquip\";\n clickEventHandler.customEventData = bigtype+\"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n itemnode[\"guide\"] = 1006\n if(!this.isSendGuide && GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.uiOpenEvent_10006 , [10006 , itemnode])\n }\n\n }\n\n CallOnclickEquip(itemnode, bigtype) {\n if(itemnode[\"guide\"] && itemnode[\"guide\"] == 1006 && GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.guideEvent_10006, 10006);\n }\n WindowManager.Instance().open(GameConst.winPath.SoldiersUI, bigtype, true);\n }\n\n\n\n public ShowExpand(show: boolean) {\n this.expand.active = show;\n this.Button_up.node.active = !show;\n }\n\n\n //#region 武器铠甲帽子\n public GetCampIcon(type: BuffAttType) {\n let campIcon = \"\";\n if (type == BuffAttType.gongji) {\n campIcon = \"ui_yingxiong_buff_gongji\";\n\n } else if (type == BuffAttType.fangyu) {\n\n campIcon = \"ui_yingxiong_buff_fangyu\";\n } else if (type == BuffAttType.xueliang) {\n campIcon = \"ui_yingxiong_buff_shengming\";\n\n } else if (type == BuffAttType.baojilv) {\n campIcon = \"ui_icon_baoji\";\n\n } else if (type == BuffAttType.shanghaijianmian) {\n campIcon = \"ui_yingxiong_buff_jianmian\";\n\n } else if (type == BuffAttType.baojishanghai) {\n campIcon = \"ui_yingxiong_buff_shanghai\";\n }\n return campIcon;\n\n }\n\n public GetCampName(type: BuffAttType) {\n let campName = \"\";\n if (type == BuffAttType.gongji) {\n campName = GlobalFunction.GetMsg(20004);\n } else if (type == BuffAttType.fangyu) {\n campName = GlobalFunction.GetMsg(20005);\n\n } else if (type == BuffAttType.xueliang) {\n campName = GlobalFunction.GetMsg(20006);\n\n } else if (type == BuffAttType.baojilv) {\n campName = GlobalFunction.GetMsg(20149);\n\n } else if (type == BuffAttType.shanghaijianmian) {\n campName = GlobalFunction.GetMsg(20150);\n\n } else if (type == BuffAttType.baojishanghai) {\n campName = GlobalFunction.GetMsg(20151);\n\n }\n return campName;\n }\n\n public GetBuildAttrType(type: BuffAttType) {\n let number = 10;\n // if (type == BuffAttType.attrType1) {\n // number = 10;\n // } else if (type == BuffAttType.attrType2) {\n // number = 10;\n\n // } else if (type == BuffAttType.attrType3) {\n // number = 10;\n\n // } else if (type == BuffAttType.attrType4) {\n // number = 10;\n\n // } else if (type == BuffAttType.attrType5) {\n // number = 10;\n\n // } else if (type == BuffAttType.attrType6) {\n // number = 10;\n\n // }\n return number;\n }\n public GetCampDec(type: BuffAttType) {\n let campDec = \"\";\n if (type == BuffAttType.gongji) {\n campDec = GlobalFunction.GetMsg(20152);\n\n } else if (type == BuffAttType.fangyu) {\n campDec = GlobalFunction.GetMsg(20153);\n\n } else if (type == BuffAttType.xueliang) {\n campDec = GlobalFunction.GetMsg(20154);\n\n } else if (type == BuffAttType.baojilv) {\n campDec = GlobalFunction.GetMsg(20155);\n\n } else if (type == BuffAttType.shanghaijianmian) {\n\n campDec = GlobalFunction.GetMsg(20156);\n } else if (type == BuffAttType.baojishanghai) {\n campDec = GlobalFunction.GetMsg(20157);\n\n }\n return campDec;\n }\n\n public GetCampEquipType(type: BuildHeroType) {\n\n let campHeroName = SoldiersEquipType.equipType1;\n if (type == BuildHeroType.ZhanShiWuqi) {\n campHeroName = SoldiersEquipType.equipType1;\n\n } else if (type == BuildHeroType.ZhanShiKaiJia) {\n campHeroName = SoldiersEquipType.equipType2;\n\n } else if (type == BuildHeroType.ZhanShiMaoZi) {\n campHeroName = SoldiersEquipType.equipType3;\n\n } else if (type == BuildHeroType.FaShiWuQi) {\n campHeroName = SoldiersEquipType.equipType4;\n\n } else if (type == BuildHeroType.FaShiKaiJia) {\n\n campHeroName = SoldiersEquipType.equipType5;\n } else if (type == BuildHeroType.FaShiMaoZi) {\n campHeroName = SoldiersEquipType.equipType6;\n\n } else if (type == BuildHeroType.CiKeWuQi) {\n campHeroName = SoldiersEquipType.equipType7;\n\n } else if (type == BuildHeroType.CiKeKaiJia) {\n\n campHeroName = SoldiersEquipType.equipType8;\n } else if (type == BuildHeroType.CiKeMaoZi) {\n campHeroName = SoldiersEquipType.equipType9;\n\n } else if (type == BuildHeroType.PaoShouWuQi) {\n campHeroName = SoldiersEquipType.equipType10;\n\n } else if (type == BuildHeroType.PaoShouKaiJia) {\n\n campHeroName = SoldiersEquipType.equipType11;\n } else if (type == BuildHeroType.PaoShouMaoZi) {\n campHeroName = SoldiersEquipType.equipType12;\n\n }\n return campHeroName;\n }\n //#endregion\n\n //#region 村庄\n public GetVillageIcon(type: VillageAttrType) {\n let campIcon = \"\";\n if (type == VillageAttrType.shuliang) {\n campIcon = \"ui_icon_shenghuapin\";\n\n } else if (type == VillageAttrType.shichang) {\n\n campIcon = \"ui_icon_shixiao\";\n }\n return campIcon;\n\n }\n\n public GetVillageName(type: VillageAttrType) {\n let campName = \"\";\n if (type == VillageAttrType.shuliang) {\n campName = GlobalFunction.GetMsg(20158);\n } else if (VillageAttrType.shichang) {\n campName = GlobalFunction.GetMsg(20160);\n }\n return campName;\n }\n\n public GetVillageDec(type: VillageAttrType) {\n let campDec = \"\";\n if (type == VillageAttrType.shuliang) {\n campDec = GlobalFunction.GetMsg(20159);\n } else if (type == VillageAttrType.shichang) {\n campDec = GlobalFunction.GetMsg(20161);\n }\n return campDec;\n }\n public GetVillageHeroName(type: VillageBuildType) {\n\n let campHeroName = \"\";\n if (type == VillageBuildType.Village1) {\n campHeroName = GlobalFunction.GetMsg(70001);\n }\n else if (type == VillageBuildType.Village2) {\n campHeroName = GlobalFunction.GetMsg(70001);\n }\n if (type == VillageBuildType.Village3) {\n campHeroName = GlobalFunction.GetMsg(70001);\n }\n return campHeroName;\n }\n\n //#endregion\n\n protected onDestroy(): void {\n }\n onHide(): void {\n this.timeTwoCallback=null;\n this.timeOneCallback=null;\n }\n clearRes() {\n }\n}\n","import { MapType } from \"./MapType\";\r\n\r\nexport default class MapData {\r\n public name: string = \"\";\r\n public bgName: string = \"\";\r\n public type: MapType = MapType.angle45;\r\n public mapWidth: number = 0;\r\n public mapHeight: number = 0;\r\n public nodeWidth: number = 0;\r\n public nodeHeight: number = 0;\r\n public roadDataArr: number[][] = [];\r\n //public row:number = 0;\r\n //public col:number = 0;\r\n\r\n public mapItems: object[] = [];\r\n}\r\n","import { sp } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { p_hero } from \"../proto/proto\";\r\nimport { HeroProxy } from \"../modules/game/proxy/HeroProxy\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { instantiate } from \"cc\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nimport { Vec3 } from \"cc\";\r\nimport { HeroModle } from \"../role/HeroModle\";\r\nimport { pid } from \"process\";\r\nimport { FuBen, FuBenProxy } from \"../modules/game/proxy/FuBenProxy\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('MapGoldEffViewComp')\r\nexport class MapGoldEffViewComp extends Component{\r\n @property({\r\n type: sp.Skeleton,\r\n displayName: \"FuhuoTop\",\r\n })\r\n spine: sp.Skeleton = null!;\r\n\r\n reset(): void {\r\n this.node.destroy();\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n }\r\n init(id:number){\r\n let fuben:FuBen = FuBenProxy.Inst.GetFubenById(id);\r\n this.showSpine(id , ()=>{\r\n setTimeout(() => {\r\n this.spine.setAnimation(0, \"e_ui_titleui_glodexp\", true);\r\n }, 50);\r\n })\r\n }\r\n showSpine(id , callBack){\r\n let spineRes:string = \"\";\r\n switch(id){\r\n case 1:\r\n spineRes = \"e_ui_titleui_goldcoin\";\r\n break;\r\n case 2:\r\n spineRes = \"e_ui_titleui_zuanshi\";\r\n break;\r\n case 3:\r\n spineRes = \"e_ui_titleui_mofang\";\r\n break;\r\n case 4:\r\n spineRes = \"e_ui_titleui_jingyan\";\r\n break;\r\n }\r\n let path: string = \"spineRes/effect/\"+spineRes+\"/\" + spineRes;\r\n let sktd = ResHelper.get(path, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n callBack(); \r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n callBack(); \r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n onLoad(){\r\n // this.spine.getComponent(sp.Skeleton)!.setCompleteListener((trackEntry) => {\r\n // let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n // switch (name) {\r\n // case \"e_ui_titleui_glod_appear\":\r\n // this.playWait();\r\n // break;\r\n // default:\r\n // break;\r\n // }\r\n // });\r\n }\r\n /**\r\n * 播放动画\r\n * @param id \r\n */\r\n playAni() {\r\n // this.spine.setAnimation(0, \"e_ui_titleui_glod_appear\", false);\r\n }\r\n /**\r\n * 播放动画\r\n * @param id \r\n */\r\n playWait() {\r\n // this.spine.setAnimation(0, \"e_ui_titleui_glod_wait\", false);\r\n }\r\n}","import { Color, Component, Layers, Node, Prefab, Sprite, SpriteFrame, Texture2D, UITransform, Vec3, _decorator, instantiate } from 'cc';\r\nimport { MapLoadModel } from '../base/MapLoadModel';\r\nimport MapParams from '../base/MapParams';\r\nimport ResHelper from '../../core/manager/ResHelper';\r\nimport { MapModelComp } from '../MapModel';\r\nimport { Logger } from '../../../core/common/log/Logger';\r\nimport { numberDump } from '../../../../@types/packages/scene/@types/cce/export/dump/types/number-dump';\r\nimport { StringUtil } from '../../core/utils/StringUtil';\r\nimport { DynamicAtlasManager } from 'cc';\r\nimport { view } from 'cc';\r\nimport { GameModleComp } from '../../game/GameModle';\r\n\r\nconst { ccclass, property } = _decorator;\r\n/**\r\n * 地图层 \r\n * \r\n */\r\n@ccclass('MapLayer')\r\nexport default class MapLayer extends Component {\r\n\t/** 切割小图片集 */\r\n\tpublic _sliceImgDic: { [key: string]: Sprite | null } = {};\r\n\tpublic _mapParams: MapParams | null = null;\r\n\t@property(Sprite)\r\n\tprivate bgImg: Sprite | null = null;\r\n\tpublic init(mapParams: MapParams): void {\r\n\t\tthis._mapParams = mapParams;\r\n\r\n\t\tif (!this.bgImg) {\r\n\t\t\tvar bgNode: Node = new Node();\r\n\t\t\tthis.node.addChild(bgNode);\r\n\t\t\tbgNode.layer = Layers.Enum.DEFAULT;\r\n\t\t\tthis.bgImg = bgNode.addComponent(Sprite);\r\n\t\t\tthis.bgImg.sizeMode = Sprite.SizeMode.RAW;\r\n\t\t\tbgNode.getComponent(UITransform)!.anchorX = 0;\r\n\t\t\tbgNode.getComponent(UITransform)!.anchorY = 0;\r\n\t\t}\r\n\t\tif (mapParams.mapLoadModel == MapLoadModel.slices) {\r\n\t\t\tthis.bgImg.getComponent(UITransform)!.width = mapParams.mapWidth;\r\n\t\t\tthis.bgImg.getComponent(UITransform)!.height = mapParams.mapHeight;\r\n\t\t}\r\n\t\tthis.getComponent(UITransform)!.width = this.width;\r\n\t\tthis.getComponent(UITransform)!.height = this.height;\r\n\t}\r\n\t/**\r\n\t * 根据视图区域加载小地图\r\n\t * @param px 滚动视图左上角的x坐标 \r\n\t * @param py 滚动视图左上角的y坐标 \r\n\t * \r\n\t */\r\n\tpublic loadSliceImage(px: number, py: number): void {\r\n\t\tDynamicAtlasManager.instance.reset();\r\n\t\t// Logger.logView(\"载入地图切片\");\r\n\t\tvar iy1: number = 0;\r\n\t\tvar iy2: number = Math.floor(py/this._mapParams.sliceHeight);\r\n\t\tvar jx1: number = 0;\r\n\t\tvar jx2: number = Math.floor(px/this._mapParams.sliceWidth);\r\n\t\tvar key: string;\r\n\t\tfor (const sp in this._sliceImgDic) {\r\n\t\t\tif (Object.prototype.hasOwnProperty.call(this._sliceImgDic, sp)) {\r\n\t\t\t\tconst el = this._sliceImgDic[sp];\r\n\t\t\t\tel.node.active = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet offX:number = 0//(this._mapParams.mapWidth - view.getVisibleSize().x)/2\r\n\t\tlet offy:number = 0//(this._mapParams.mapHeight - view.getVisibleSize().y)/2\r\n\t\tif(this._mapParams.name.indexOf(\"fuben\") >= 0){\r\n\t\t\toffX = (this._mapParams.mapWidth - view.getVisibleSize().x)/2\r\n\t\t\toffy = (this._mapParams.mapHeight - view.getVisibleSize().y)/2\r\n\t\t}\r\n\t\tfor (var i: number = iy1; i <= iy2; i++) {\r\n\t\t\tfor (var j: number = jx1; j <= jx2; j++) {\r\n\t\t\t\tkey = (i + 1) + \"_\" + (j + 1); \t\t\t\t// 图片的索引是从1开始的,所以要加1\r\n\t\t\t\tif (!this._sliceImgDic[key]) {\r\n\t\t\t\t\tvar path: string = MapModelComp.getInstance().getResContentSlices(this._mapParams!.bgName, key);\r\n\t\t\t\t\tlet tex: Texture2D = ResHelper.get(path, Texture2D , \"mapRes\") as Texture2D;\r\n\t\t\t\t\tif (tex) {\r\n\t\t\t\t\t\tlet bitmap: Sprite = this.getSliceSprite(key)\r\n\t\t\t\t\t\tthis._sliceImgDic[key] = bitmap;\r\n\t\t\t\t\t\tthis.node.addChild(bitmap.node);\r\n\t\t\t\t\t\tbitmap.node.position = new Vec3(j * this._mapParams!.sliceWidth + offX, i * this._mapParams!.sliceHeight - offy, 0)\r\n\t\t\t\t\t\t// Logger.logView(\"path:\"+path);\r\n\t\t\t\t\t\t// Logger.logView(\"bitmap.node.position:\"+bitmap.node.position)\r\n\t\t\t\t\t\tvar spriteFrame: SpriteFrame = new SpriteFrame();\r\n\t\t\t\t\t\tspriteFrame.texture = tex;\r\n\t\t\t\t\t\tbitmap.spriteFrame = spriteFrame;\r\n\t\t\t\t\t\tbitmap.trim = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//只为了保险\r\n\t\t\t\t\t\tResHelper.loadAny(path, Texture2D, (err, tex:any) => {\r\n\t\t\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tlet bitmap: Sprite = this.getSliceSprite(key)\r\n\t\t\t\t\t\t\t\tthis._sliceImgDic[key] = bitmap;\r\n\t\t\t\t\t\t\t\tthis.node.addChild(bitmap.node);\r\n\t\t\t\t\t\t\t\tbitmap.node.position = new Vec3(j * this._mapParams!.sliceWidth, i * this._mapParams!.sliceHeight, 0)\r\n\t\t\t\t\t\t\t\tvar spriteFrame: SpriteFrame = new SpriteFrame();\r\n\t\t\t\t\t\t\t\tspriteFrame.texture = tex;\r\n\t\t\t\t\t\t\t\tbitmap.spriteFrame = spriteFrame;\r\n\t\t\t\t\t\t\t} catch (error) {}\r\n\t\t\t\t\t\t},\"mapRes\")\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis._sliceImgDic[key].node.active = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tprivate getSliceSprite(name: string) {\r\n\t\tvar node: Node = new Node(name);\r\n\t\tvar sprite: Sprite = node.addComponent(Sprite);\r\n\t\tsprite.sizeMode = Sprite.SizeMode.RAW;\r\n\t\tnode.getComponent(UITransform)!.anchorX = 0;\r\n\t\tnode.getComponent(UITransform)!.anchorY = 0;\r\n\t\treturn sprite;\r\n\t}\r\n\tpublic clear(): void {\r\n\t\tthis.bgImg!.spriteFrame = null;\r\n\t\tfor (var key in this._sliceImgDic) {\r\n\t\t\tvar sprite: Sprite | null = this._sliceImgDic[key];\r\n\t\t\tsprite && sprite.node.destroy();\r\n\t\t\tthis._sliceImgDic[key] = null;\r\n\t\t\tdelete this._sliceImgDic[key];\r\n\t\t}\r\n\t}\r\n\tpublic get bgImage(): Sprite {\r\n\t\treturn this.bgImg!;\r\n\t}\r\n\tpublic get width(): number {\r\n\t\tif (this.bgImg) {\r\n\t\t\treturn this.bgImg.getComponent(UITransform)!.width;\r\n\t\t}\r\n\t\treturn this._mapParams!.viewWidth;\r\n\t}\r\n\tpublic get height(): number {\r\n\t\tif (this.bgImg) {\r\n\t\t\treturn this.bgImg.getComponent(UITransform)!.height;\r\n\t\t}\r\n\t\treturn this._mapParams!.viewHeight;\r\n\t}\r\n\tpublic addMoveEvent(){\r\n\t}\r\n}","/**\r\n * 地图加载模式\r\n */\r\nexport enum MapLoadModel {\r\n /**\r\n * 单张地图加载\r\n */\r\n single = 0,\r\n\r\n /**\r\n * 分切片加载\r\n */\r\n slices = 1,\r\n}\r\n","import { _decorator } from \"cc\";\r\nimport { PassPoxy } from \"../modules/game/proxy/PassPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { Vec3 } from \"cc\";\r\nimport { FightMapEnum, PveTypeEnum } from \"../enum/Enum\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('MapModel')\r\nexport class MapModelComp{\r\n\r\n /**\r\n * @zh 单例\r\n */\r\n private static instance: MapModelComp;\r\n /**\r\n * @zh 静态获取单例函数\r\n * @return 单例 \r\n */\r\n public static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new MapModelComp();\r\n }\r\n return this.instance;\r\n }\r\n\r\n /** 初始地图编号 */\r\n id: number = 1;\r\n\r\n /** 地图数据配置 */\r\n resConfigMap: string = \"map/\";\r\n /** 地图转场点数据配置 */\r\n resDeliveryMap: string = \"game/preload/map/mapconfig/map_delivery\";\r\n /** 地图显示预制 */\r\n resPrefab: string = \"prefabs/map_rpg\";\r\n /**地图怪物集合*/\r\n mapMonsterArr:Array = [];\r\n /**地图怪物顺序*/\r\n mapMonsterIndex:number = 0;\r\n\r\n /** 地图内容资源 */\r\n getResContentMiniMap(mapName: string): string {\r\n return `map/${mapName}/${mapName}/miniMap/sprite-frame`;\r\n };\r\n\r\n /** 地图瓦片资源 */\r\n getResContentSlices(bgName: string, key: string): string {\r\n return `map/${bgName}/slices/${key}/texture`;\r\n };\r\n\r\n /** 地图数据资源 */\r\n getResContentData(mapName: string): string {\r\n return `map/${mapName}/${mapName}`;\r\n };\r\n /**获取当前关卡所有怪物*/\r\n getMapList(){\r\n this.mapMonsterArr = [];\r\n let mapId:Array = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).ay_monster;\r\n this.mapMonsterArr = [Number(mapId[0]) , Number(mapId[1]),Number(mapId[2]) , Number(mapId[3])];\r\n }\r\n\r\n\r\n /**UI中金币的位置*/\r\n private _goldPosInUi: Vec3 = new Vec3(-90,720,0);\r\n public get goldPosInUi(): Vec3 {\r\n return this._goldPosInUi;\r\n }\r\n public set goldPosInUi(value: Vec3) {\r\n this._goldPosInUi = value;\r\n }\r\n /**副本金币坐标*/\r\n private _copyPosInUi: Vec3 = new Vec3(0, 0, 0);\r\n public get copyPosInUi(): Vec3 {\r\n return this._copyPosInUi;\r\n }\r\n public set copyPosInUi(value: Vec3) {\r\n this._copyPosInUi = value;\r\n }\r\n\r\n \r\n /**通过副本类型获取地图类型*/\r\n getMapTypeByPve(pveType:PveTypeEnum):FightMapEnum{\r\n switch(pveType){\r\n case PveTypeEnum.DaDao:\r\n return FightMapEnum.DaDaoMap;\r\n case PveTypeEnum.BaoKu:\r\n return FightMapEnum.BaoKuMap;\r\n case PveTypeEnum.JunHuo:\r\n return FightMapEnum.JunHuoMap;\r\n case PveTypeEnum.JiYin:\r\n return FightMapEnum.JiYinMap;\r\n default:\r\n return FightMapEnum.GuanQiaMap;\r\n }\r\n }\r\n\r\n reset() {\r\n\r\n }\r\n}\r\n","\r\nimport { MapType } from \"./MapType\";\r\nimport { MapLoadModel } from \"./MapLoadModel\";\r\nimport { Texture2D } from \"cc\";\r\n\r\n/**\r\n * 地图参数\r\n */\r\nexport default class MapParams {\r\n /**\r\n * 地图名称\r\n */\r\n public name: string = \"\";\r\n\r\n /**\r\n * 底图资源名称\r\n */\r\n public bgName: string = \"\";\r\n\r\n /**\r\n * 地图类型\r\n */\r\n public mapType: MapType = MapType.angle45;\r\n\r\n /**\r\n * 地图宽\r\n */\r\n public mapWidth: number = 750;\r\n\r\n /**\r\n * 地图高\r\n */\r\n public mapHeight: number = 1600;\r\n\r\n /**\r\n * 地图单元格宽\r\n */\r\n public ceilWidth: number = 174;\r\n\r\n /**\r\n * 地图单元格高\r\n */\r\n public ceilHeight: number = 174;\r\n\r\n /**\r\n * 地图视野宽\r\n */\r\n public viewWidth: number = 750;\r\n\r\n /**\r\n * 地图视野高\r\n */\r\n public viewHeight: number = 1334;\r\n\r\n /**\r\n * 地图切片宽\r\n */\r\n public sliceWidth: number = 256;\r\n\r\n /**\r\n * 地图切片高\r\n */\r\n public sliceHeight: number = 256;\r\n\r\n /**\r\n * 底图加载模式,是单张还是切片加载\r\n */\r\n public mapLoadModel: MapLoadModel = MapLoadModel.single;\r\n\r\n /**\r\n * 地图底图\r\n */\r\n public bgTex: Texture2D | null = null;\r\n}\r\n","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { s1406 } from '../../../proto/proto';\nimport { GameModleComp } from '../../../game/GameModle';\n@res_auto_bind()\nexport class MapPoxy {\n private static _inst: MapPoxy;\n public static get Inst(): MapPoxy {\n if (MapPoxy._inst == null) {\n MapPoxy._inst = new MapPoxy();\n }\n return MapPoxy._inst;\n }\n @res_assign(\"Map\")\n public datas: Maps[]; \n public get datasAchieve(){\n if(!this.datas){\n this.datas =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"Map\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"Map\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n console.log(\"achieveitem==\"+achieveitem.toString())\n this.datas.push(achieveitem);\n }\n }\n return this.datas;\n }\n public getMapById(id:number):Maps{\n if(this.datas){\n return this.datas.find(element=>element.mapId==id); \n }else{\n \n this.datas = this.datasAchieve;\n return this.datas.find(element=>element.mapId==id); \n }\n }\n}\n\nexport class Maps {\n /** 地图ID */\n mapId: number;\n /** 地图资源名字 */\n mapSource: string;\n /** 下一个地图资源名字 */\n nextMap: string;\n /** 地图类型 1:pve boss 2:pvp */\n mapType: number;\n /** 建筑id */\n ay_mapBuild: Array;\n /** 建筑id */\n pos_buildPoint: Array>;\n /** BOSS坐标 */\n ay_bossPoint: Array;\n /** 英雄坐标 */\n ay_heroPoint: Array;\n /** 近战坐标 */\n pos_combatPoint: Array>;\n /** 远程坐标 */\n pos_archerPoint:Array>;\n /** 远程坐标 */\n pos_heroArcherPoint : Array>;\n /** 近战坐标 */\n pos_heroCombatPoint : Array>;\n /**解锁建筑ID*/\n ay_lock : Array;\n /** 建筑id */\n pos_lockPoint: Array>;\n ay_heroInitPoint : Array;\n ay_camera : Array\n pos_xiaotou : Array>;\n soundid:number;\n}\nexport function do_s1406(s1406: s1406){\n Logger.logNet(\"服务器推送的装备信息 == > s1406:\" + s1406);\n GameModleComp.getInstance().equipArr = s1406.armyWearList;\n}","import { Vec3 } from \"cc\";\r\nimport { MapType } from \"../base/MapType\";\r\nimport Point from \"./Point\";\r\nimport RoadNode from \"./RoadNode\";\r\nimport ResHelper from \"../../core/manager/ResHelper\";\r\nimport { JsonAsset } from \"cc\";\r\nimport { MapModelComp } from \"../MapModel\";\r\nimport { Logger } from \"../../../core/common/log/Logger\";\r\nimport { PassPoxy } from \"../../modules/game/proxy/PassPoxy\";\r\nimport { GameModleComp } from \"../../game/GameModle\";\r\nimport { MapPoxy, Maps } from \"../../modules/game/proxy/MapPoxy\";\r\n\r\nexport default class MapRoadUtils {\r\n\r\n\tprivate static _instance: MapRoadUtils;\r\n\r\n\tpublic static get instance(): MapRoadUtils {\r\n\t\tif (this._instance == null) {\r\n\t\t\tthis._instance = new MapRoadUtils();\r\n\t\t}\r\n\t\treturn this._instance;\r\n\t}\r\n\r\n\t/**\r\n\t * 地图宽度\r\n\t */\r\n\tprivate _mapWidth: number;\r\n\r\n\t/**\r\n\t *地图高度 \r\n\t */\r\n\tprivate _mapHeight: number;\r\n\r\n\t/**\r\n\t *地图一共分成几行 \r\n\t */\r\n\tprivate _row: number;\r\n\r\n\t/**\r\n\t *地图一共分成几列 \r\n\t */\r\n\tprivate _col: number;\r\n\r\n\t/**\r\n\t *地图路点单元格宽 \r\n\t */\r\n\tprivate _nodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元格高 \r\n\t */\r\n\tprivate _nodeHeight: number;\r\n\r\n\t/**\r\n\t *地图路点单元宽的一半 \r\n\t */\r\n\tprivate _halfNodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元高的一半 \r\n\t */\r\n\tprivate _halfNodeHeight: number;\r\n\r\n\tprivate _mapType: number;\r\n\r\n\tprivate _mapRoad: IMapRoad;\r\n\r\n\tpublic updateMapInfo(mapWidth: number, mapHeight: number, nodeWidth: number, nodeHeight: number, mapType: MapType): void {\r\n\t\tthis._mapWidth = mapWidth;\r\n\t\tthis._mapHeight = mapHeight;\r\n\t\tthis._nodeWidth = nodeWidth;\r\n\t\tthis._nodeHeight = nodeHeight;\r\n\r\n\t\tthis._halfNodeWidth = Math.floor(this._nodeWidth / 2);\r\n\t\tthis._halfNodeHeight = Math.floor(this._nodeHeight / 2);\r\n\r\n\t\tthis._mapType = mapType;\r\n\r\n\t\tswitch (this._mapType) {\r\n\t\t\tcase MapType.angle45:\r\n\r\n\t\t\t\tthis._col = Math.ceil(mapWidth / this._nodeWidth);\r\n\t\t\t\tthis._row = Math.ceil(mapHeight / this._nodeHeight) * 2;\r\n\r\n\t\t\t\tthis._mapRoad = new MapRoad45Angle(this._row, this._col, this._nodeWidth, this._nodeHeight, this._halfNodeWidth, this._halfNodeHeight); break;\r\n\t\t\tcase MapType.angle90:\r\n\r\n\t\t\t\tthis._col = Math.ceil(mapWidth / this._nodeWidth);\r\n\t\t\t\tthis._row = Math.ceil(mapHeight / this._nodeHeight);\r\n\r\n\t\t\t\tthis._mapRoad = new MapRoad90Angle(this._row, this._col, this._nodeWidth, this._nodeHeight, this._halfNodeWidth, this._halfNodeHeight); break;\r\n\t\t\tcase MapType.honeycomb:\r\n\r\n\t\t\t\t//this._nodeHeight = (this._nodeWidth / 2) * 1.732;\r\n\r\n\t\t\t\tthis._col = Math.ceil((this._mapWidth - this._nodeWidth / 4) / (this._nodeWidth / 4 * 6)) * 2;\r\n\t\t\t\tthis._row = Math.ceil((this._mapHeight - this._nodeHeight / 2) / this._nodeHeight);\r\n\r\n\t\t\t\tthis._mapRoad = new MapRoadHoneycomb(this._row, this._col, this._nodeWidth, this._nodeHeight, this._halfNodeWidth, this._halfNodeHeight); break;\r\n\t\t}\r\n\r\n\t\t// //console.log(\"c r\", this._col, this._row);\r\n\t}\r\n\r\n\t/**\r\n\t *根据地图平面像素坐标获得路节点 \r\n\t\t* @param x \r\n\t\t* @param y\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\tpublic getNodeByPixel(x: number, y: number): RoadNode {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getNodeByPixel(x, y);\r\n\t\t}\r\n\t\treturn new RoadNode();\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点平面坐标点获得路节点 \r\n\t\t* @param px\r\n\t\t* @param py\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\tpublic getNodeByDerect(dx: number, dy: number): RoadNode {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getNodeByDerect(dx, dy);\r\n\t\t}\r\n\t\treturn new RoadNode();\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点场景世界坐标获得路节点 \r\n\t\t* @param wx\r\n\t\t* @param wy\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\tpublic getNodeByWorldPoint(wx: number, wy: number): RoadNode {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getNodeByWorldPoint(wx, wy);\r\n\t\t}\r\n\t\treturn new RoadNode();\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标得到场景世界坐标 \r\n\t\t* @param x\r\n\t\t* @param y\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\tpublic getWorldPointByPixel(x: number, y: number): Point {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getWorldPointByPixel(x, y);\r\n\t\t}\r\n\t\treturn new Point();\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得像素坐标 \r\n\t\t* @param cx\r\n\t\t* @param cy\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\tpublic getPixelByWorldPoint(cx: number, cy: number): Point {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getPixelByWorldPoint(cx, cy);\r\n\t\t}\r\n\t\treturn new Point();\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标获得网格平面坐标\r\n\t\t* @param x\r\n\t\t* @param y\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\tpublic getDerectByPixel(x: number, y: number): Point {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getDerectByPixel(x, y);\r\n\t\t}\r\n\t\treturn new Point();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得网格平面坐标 \r\n\t\t* @param cx\r\n\t\t* @param cy\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\tpublic getDerectByWorldPoint(cx: number, cy: number): Point {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getDerectByWorldPoint(cx, cy);\r\n\t\t}\r\n\t\treturn new Point();\r\n\t}\r\n\r\n\t/**\r\n\t *根据网格平面坐标获得世界坐标 \r\n\t\t* @param dx\r\n\t\t* @param dy\r\n\t\t* @return \r\n\t\t* \r\n\t\t*/\r\n\t/*\tpublic getWorldPointByDerect(dx:number,dy:number):Point\r\n\t\t{\r\n\t\t\tvar cx:number = (dy + dx) / 2;\r\n\t\t\tvar cy:number = (dy - dx) / 2 + col - 1;\r\n\t\t\treturn new Point(cx,cy);\r\n\t\t}*/\r\n\r\n\tpublic getPixelByDerect(dx: number, dy: number): Point {\r\n\t\tif (this._mapRoad) {\r\n\t\t\treturn this._mapRoad.getPixelByDerect(dx, dy);\r\n\t\t}\r\n\t\treturn new Point();\r\n\t}\r\n\r\n\tpublic get mapWidth(): number {\r\n\t\treturn this._mapWidth;\r\n\t}\r\n\r\n\tpublic get mapHeight(): number {\r\n\t\treturn this._mapHeight;\r\n\t}\r\n\r\n\tpublic get nodeWidth(): number {\r\n\t\treturn this._nodeWidth;\r\n\t}\r\n\r\n\tpublic get nodeHeight(): number {\r\n\t\treturn this._nodeHeight;\r\n\t}\r\n\r\n\tpublic get row(): number {\r\n\t\treturn this._row;\r\n\t}\r\n\r\n\tpublic get col(): number {\r\n\t\treturn this._col;\r\n\t}\r\n\r\n\tpublic get halfNodeWidth(): number {\r\n\t\treturn this._halfNodeWidth;\r\n\t}\r\n\r\n\tpublic get halfNodeHeight(): number {\r\n\t\treturn this._halfNodeHeight;\r\n\t}\r\n\r\n\t/**\r\n\t *地图类型 0:斜45度等视角地图, 1:90度角平面地图 \r\n\t\t*/\r\n\tpublic get mapType(): number {\r\n\t\treturn this._mapType;\r\n\t}\r\n\r\n\r\n\tstatic toAStarPoint(pos: Readonly): Readonly {\r\n let x: number = Math.floor(pos.x / 40);\r\n let y: number = Math.floor(pos.y / 40);\r\n let v3: Vec3 = new Vec3(x, y, pos.z);\r\n return v3;\r\n }\r\n\r\n\tstatic AStarToPoint(pos: Readonly): Readonly {\r\n let x: number = Math.floor(pos.x * 40);\r\n let y: number = Math.floor(pos.y * 40);\r\n let v3: Vec3 = new Vec3(x, y, pos.z);\r\n return v3;\r\n }\r\n\r\n}\r\n\r\n/**\r\n *地图路点处理接口 \r\n * @author Administrator\r\n * \r\n */\r\ninterface IMapRoad {\r\n\t/**\r\n\t *根据地图平面像素坐标获得路节点 \r\n\t * @param x \r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetNodeByPixel(x: number, y: number): RoadNode;\r\n\r\n\t/**\r\n\t *根据路点平面坐标点获得路节点 \r\n\t * @param px\r\n\t * @param py\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetNodeByDerect(dx: number, dy: number): RoadNode;\r\n\r\n\t/**\r\n\t *根据路点场景世界坐标获得路节点 \r\n\t * @param wx\r\n\t * @param wy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetNodeByWorldPoint(wx: number, wy: number): RoadNode;\r\n\r\n\r\n\t/**\r\n\t *根据像素坐标得到场景世界坐标 \r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetWorldPointByPixel(x: number, y: number): Point;\r\n\r\n\r\n\t/**\r\n\t *根据世界坐标获得像素坐标 \r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetPixelByWorldPoint(cx: number, cy: number): Point;\r\n\r\n\r\n\t/**\r\n\t *根据像素坐标获得网格平面坐标\r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetDerectByPixel(x: number, y: number): Point;\r\n\r\n\r\n\t/**\r\n\t *根据世界坐标获得网格平面坐标 \r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetDerectByWorldPoint(cx: number, cy: number): Point;\r\n\r\n\r\n\t/**\r\n\t *根据网格平面坐标获得像素坐标 \r\n\t * @param dx\r\n\t * @param dy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tgetPixelByDerect(dx: number, dy: number): Point;\r\n}\r\n\r\n/**\r\n *45度等视角地图路点处理接口实现 \r\n * @author Administrator\r\n * \r\n */\r\nclass MapRoad45Angle implements IMapRoad {\r\n\r\n\t/**\r\n\t *地图一共分成几行 \r\n\t */\r\n\tprivate _row: number;\r\n\r\n\t/**\r\n\t *地图一共分成几列 \r\n\t */\r\n\tprivate _col: number;\r\n\r\n\t/**\r\n\t *地图路点单元格宽 \r\n\t */\r\n\tprivate _nodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元格高 \r\n\t */\r\n\tprivate _nodeHeight: number;\r\n\r\n\t/**\r\n\t *地图路点单元宽的一半 \r\n\t */\r\n\tprivate _halfNodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元高的一半 \r\n\t */\r\n\tprivate _halfNodeHeight: number;\r\n\r\n\tpublic constructor(row: number, col: number, nodeWidth: number, nodeHeight: number, halfNodeWidth: number, halfNodeHeight: number) {\r\n\t\tthis._row = row;\r\n\t\tthis._col = col;\r\n\t\tthis._nodeWidth = nodeWidth;\r\n\t\tthis._nodeHeight = nodeHeight;\r\n\t\tthis._halfNodeWidth = halfNodeWidth;\r\n\t\tthis._halfNodeHeight = halfNodeHeight;\r\n\t}\r\n\r\n\t/**\r\n\t *根据地图平面像素坐标获得路节点 \r\n\t * @param x \r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByPixel(x: number, y: number): RoadNode {\r\n\t\tvar wPoint: Point = this.getWorldPointByPixel(x, y);\r\n\t\tvar fPoint: Point = this.getPixelByWorldPoint(wPoint.x, wPoint.y);\r\n\t\tvar dPoint: Point = this.getDerectByPixel(x, y);\r\n\r\n\t\tvar node: RoadNode = new RoadNode();\r\n\r\n\t\tnode.cx = wPoint.x;\r\n\t\tnode.cy = wPoint.y;\r\n\r\n\t\tnode.px = fPoint.x;\r\n\t\tnode.py = fPoint.y;\r\n\r\n\t\tnode.dx = dPoint.x;\r\n\t\tnode.dy = dPoint.y;\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点平面坐标点获得路节点 \r\n\t * @param px\r\n\t * @param py\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByDerect(dx: number, dy: number): RoadNode {\r\n\r\n\t\tvar fPoint: Point = this.getPixelByDerect(dx, dy);\r\n\t\tvar wPoint: Point = this.getWorldPointByPixel(fPoint.x, fPoint.y);\r\n\r\n\t\tvar node: RoadNode = new RoadNode();\r\n\r\n\t\tnode.cx = wPoint.x;\r\n\t\tnode.cy = wPoint.y;\r\n\r\n\t\tnode.px = fPoint.x;\r\n\t\tnode.py = fPoint.y;\r\n\r\n\t\tnode.dx = dx;\r\n\t\tnode.dy = dy;\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点场景世界坐标获得路节点 \r\n\t * @param wx\r\n\t * @param wy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByWorldPoint(wx: number, wy: number): RoadNode {\r\n\t\tvar point: Point = this.getPixelByWorldPoint(wx, wy)\r\n\t\treturn this.getNodeByPixel(point.x, point.y);\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标得到场景世界坐标 \r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getWorldPointByPixel(x: number, y: number): Point {\r\n\t\tvar cx: number = Math.ceil(x / this._nodeWidth - 0.5 + y / this._nodeHeight) - 1;\r\n\t\tvar cy: number = (this._col - 1) - Math.ceil(x / this._nodeWidth - 0.5 - y / this._nodeHeight);\r\n\r\n\t\treturn new Point(cx, cy);\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得像素坐标 \r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getPixelByWorldPoint(cx: number, cy: number): Point {\r\n\t\tvar x: number = Math.floor((cx + 1 - (cy - (this._col - 1))) * this._halfNodeWidth);\r\n\t\tvar y: number = Math.floor((cx + 1 + (cy - (this._col - 1))) * this._halfNodeHeight);\r\n\t\treturn new Point(x, y);\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标获得网格平面坐标\r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getDerectByPixel(x: number, y: number): Point {\r\n\t\tvar worldPoint: Point = this.getWorldPointByPixel(x, y);\r\n\t\tvar pixelPoint: Point = this.getPixelByWorldPoint(worldPoint.x, worldPoint.y);\r\n\t\tvar dx: number = Math.floor(pixelPoint.x / this._nodeWidth) - (pixelPoint.x % this._nodeWidth == 0 ? 1 : 0);\r\n\t\tvar dy: number = Math.floor(pixelPoint.y / this._halfNodeHeight) - 1;\r\n\t\treturn new Point(dx, dy);\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得网格平面坐标 \r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getDerectByWorldPoint(cx: number, cy: number): Point {\r\n\t\tvar dx: number = Math.floor((cx - (cy - (this._col - 1))) / 2);\r\n\t\tvar dy: number = cx + (cy - (this._col - 1));\r\n\t\treturn new Point(dx, dy);\r\n\t}\r\n\r\n\t/**\r\n\t *根据网格平面坐标获得像素坐标 \r\n\t * @param dx\r\n\t * @param dy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getPixelByDerect(dx: number, dy: number): Point {\r\n\t\tvar x: number = Math.floor((dx + dy % 2) * this._nodeWidth + (1 - dy % 2) * this._halfNodeWidth);\r\n\t\tvar y: number = Math.floor((dy + 1) * this._halfNodeHeight);\r\n\t\treturn new Point(x, y);\r\n\t}\r\n}\r\n\r\n/**\r\n *90度平面地图路点处理接口实现 \r\n * @author Administrator\r\n * \r\n */\r\nclass MapRoad90Angle implements IMapRoad {\r\n\t/**\r\n\t *地图一共分成几行 \r\n\t */\r\n\tprivate _row: number;\r\n\r\n\t/**\r\n\t *地图一共分成几列 \r\n\t */\r\n\tprivate _col: number;\r\n\r\n\t/**\r\n\t *地图路点单元格宽 \r\n\t */\r\n\tprivate _nodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元格高 \r\n\t */\r\n\tprivate _nodeHeight: number;\r\n\r\n\t/**\r\n\t *地图路点单元宽的一半 \r\n\t */\r\n\tprivate _halfNodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元高的一半 \r\n\t */\r\n\tprivate _halfNodeHeight: number;\r\n\r\n\tpublic constructor(row: number, col: number, nodeWidth: number, nodeHeight: number, halfNodeWidth: number, halfNodeHeight: number) {\r\n\t\tthis._row = row;\r\n\t\tthis._col = col;\r\n\t\tthis._nodeWidth = nodeWidth;\r\n\t\tthis._nodeHeight = nodeHeight;\r\n\t\tthis._halfNodeWidth = halfNodeWidth;\r\n\t\tthis._halfNodeHeight = halfNodeHeight;\r\n\t}\r\n\r\n\t/**\r\n\t *根据地图平面像素坐标获得路节点 \r\n\t * @param x \r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByPixel(x: number, y: number): RoadNode {\r\n\t\tvar wPoint: Point = this.getWorldPointByPixel(x, y);\r\n\t\tvar fPoint: Point = this.getPixelByWorldPoint(wPoint.x, wPoint.y);\r\n\t\tvar dPoint: Point = this.getDerectByPixel(x, y);\r\n\r\n\t\tvar node: RoadNode = new RoadNode();\r\n\r\n\t\tnode.cx = wPoint.x;\r\n\t\tnode.cy = wPoint.y;\r\n\r\n\t\tnode.px = fPoint.x;\r\n\t\tnode.py = fPoint.y;\r\n\r\n\t\tnode.dx = dPoint.x;\r\n\t\tnode.dy = dPoint.y;\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点平面坐标点获得路节点 \r\n\t * @param px\r\n\t * @param py\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByDerect(dx: number, dy: number): RoadNode {\r\n\r\n\t\tvar fPoint: Point = this.getPixelByDerect(dx, dy);\r\n\t\tvar wPoint: Point = this.getWorldPointByPixel(fPoint.x, fPoint.y);\r\n\r\n\t\tvar node: RoadNode = new RoadNode();\r\n\r\n\t\tnode.cx = wPoint.x;\r\n\t\tnode.cy = wPoint.y;\r\n\r\n\t\tnode.px = fPoint.x;\r\n\t\tnode.py = fPoint.y;\r\n\r\n\t\tnode.dx = dx;\r\n\t\tnode.dy = dy;\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点场景世界坐标获得路节点 \r\n\t * @param wx\r\n\t * @param wy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByWorldPoint(wx: number, wy: number): RoadNode {\r\n\t\tvar point: Point = this.getPixelByWorldPoint(wx, wy)\r\n\t\treturn this.getNodeByPixel(point.x, point.y);\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标得到场景世界坐标 \r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getWorldPointByPixel(x: number, y: number): Point {\r\n\t\tvar cx: number = Math.floor(x / this._nodeWidth);\r\n\t\tvar cy: number = Math.floor(y / this._nodeHeight);\r\n\r\n\t\treturn new Point(cx, cy);\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得像素坐标 \r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getPixelByWorldPoint(cx: number, cy: number): Point {\r\n\t\tvar x: number = Math.floor((cx + 1) * this._nodeWidth - this._halfNodeWidth);\r\n\t\tvar y: number = Math.floor((cy + 1) * this._nodeHeight - this._halfNodeHeight);\r\n\t\treturn new Point(x, y);\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标获得网格平面坐标\r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getDerectByPixel(x: number, y: number): Point {\r\n\t\tvar dx: number = Math.floor(x / this._nodeWidth);\r\n\t\tvar dy: number = Math.floor(y / this._nodeHeight);\r\n\t\treturn new Point(dx, dy);\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得网格平面坐标 90度地图的世界坐标和网格坐标相同\r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getDerectByWorldPoint(cx: number, cy: number): Point {\r\n\t\treturn new Point(cx, cy);\r\n\t}\r\n\r\n\t/**\r\n\t *根据网格平面坐标获得像素坐标 \r\n\t * @param dx\r\n\t * @param dy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getPixelByDerect(dx: number, dy: number): Point {\r\n\t\tvar x: number = Math.floor((dx + 1) * this._nodeWidth - this._halfNodeWidth);\r\n\t\tvar y: number = Math.floor((dy + 1) * this._nodeHeight - this._halfNodeHeight);\r\n\t\treturn new Point(x, y);\r\n\t}\r\n}\r\n\r\n/**\r\n *蜂巢式(即正六边形)地图路点处理接口实现 \r\n * @author Administrator\r\n * \r\n */\r\nclass MapRoadHoneycomb implements IMapRoad {\r\n\t/**\r\n\t *地图一共分成几行 \r\n\t */\r\n\tprivate _row: number;\r\n\r\n\t/**\r\n\t *地图一共分成几列 \r\n\t */\r\n\tprivate _col: number;\r\n\r\n\t/**\r\n\t *地图路点单元格宽 \r\n\t */\r\n\tprivate _nodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元格高 \r\n\t */\r\n\tprivate _nodeHeight: number;\r\n\r\n\t/**\r\n\t *地图路点单元宽的一半 \r\n\t */\r\n\tprivate _halfNodeWidth: number;\r\n\r\n\t/**\r\n\t *地图路点单元高的一半 \r\n\t */\r\n\tprivate _halfNodeHeight: number;\r\n\r\n\t/**\r\n\t * 六边形直径的4分之一\r\n\t */\r\n\tprivate _nwDiv4: number;\r\n\r\n\t/**\r\n\t * 六边形直径的半径\r\n\t */\r\n\tprivate _radius: number;\r\n\r\n\t/**\r\n\t * 六边形宽高的tan值,正六边形为1.732\r\n\t */\r\n\tprivate _proportion = 1.732;\r\n\r\n\t/**\r\n\t *蜂巢式(即正六边形)地图路点处理 \r\n\t * @param row\r\n\t * @param col\r\n\t * @param nodeWidth\r\n\t * @param nodeHeight\r\n\t * @param halfNodeWidth\r\n\t * @param halfNodeHeight\r\n\t * \r\n\t */\r\n\tpublic constructor(row: number, col: number, nodeWidth: number, nodeHeight: number, halfNodeWidth: number, halfNodeHeight: number) {\r\n\t\tthis._row = row;\r\n\t\tthis._col = col;\r\n\t\tthis._nodeWidth = nodeWidth;\r\n\t\t//this._nodeHeight = (this._nodeWidth / 2) * 1.732;\r\n\t\tthis._nodeHeight = nodeHeight;\r\n\t\tthis._halfNodeWidth = halfNodeWidth;\r\n\t\tthis._halfNodeHeight = halfNodeHeight;\r\n\r\n\t\tthis._nwDiv4 = this._nodeWidth / 4;\r\n\t\tthis._radius = this._nwDiv4 * 4;\r\n\r\n\t\tthis._proportion = this._nodeHeight * 2 / this._nodeWidth;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t *根据地图平面像素坐标获得路节点 \r\n\t * @param x \r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByPixel(x: number, y: number): RoadNode {\r\n\t\tvar wPoint: Point = this.getWorldPointByPixel(x, y);\r\n\t\tvar fPoint: Point = this.getPixelByWorldPoint(wPoint.x, wPoint.y);\r\n\t\t//var dPoint:Point = getDerectByPixel(x,y);\r\n\r\n\t\tvar node: RoadNode = new RoadNode();\r\n\r\n\t\tnode.cx = wPoint.x;\r\n\t\tnode.cy = wPoint.y;\r\n\r\n\t\tnode.px = fPoint.x;\r\n\t\tnode.py = fPoint.y;\r\n\r\n\t\tnode.dx = wPoint.x;\r\n\t\tnode.dy = wPoint.y;\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点平面坐标点获得路节点 \r\n\t * @param px\r\n\t * @param py\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByDerect(dx: number, dy: number): RoadNode {\r\n\r\n\t\tvar fPoint: Point = this.getPixelByDerect(dx, dy);\r\n\t\t//var wPoint:Point = getWorldPointByPixel(fPoint.x,fPoint.y);\r\n\r\n\t\tvar node: RoadNode = new RoadNode();\r\n\r\n\t\tnode.cx = dx;\r\n\t\tnode.cy = dy;\r\n\r\n\t\tnode.px = fPoint.x;\r\n\t\tnode.py = fPoint.y;\r\n\r\n\t\tnode.dx = dx;\r\n\t\tnode.dy = dy;\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t *根据路点场景世界坐标获得路节点 \r\n\t * @param wx\r\n\t * @param wy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getNodeByWorldPoint(wx: number, wy: number): RoadNode {\r\n\t\tvar point: Point = this.getPixelByWorldPoint(wx, wy)\r\n\t\treturn this.getNodeByPixel(point.x, point.y);\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标得到场景世界坐标 \r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getWorldPointByPixel(x: number, y: number): Point {\r\n\t\tvar nwDiv4Index: number = Math.floor(x / this._nwDiv4); //六边形的外切矩形竖方向均等分成4分,所有的六边形外切矩形连在一起形成一个个4分之一矩形宽的区域,nwDiv4Index就是该区域的索引\r\n\r\n\t\tvar col: number = Math.floor(nwDiv4Index / 3); //取得临时六边形横轴的索引,根据不同的情况可能会变\r\n\r\n\t\tvar row: number; //六边形纵轴的索引\r\n\r\n\t\tvar cx: number;\r\n\r\n\t\tvar cy: number;\r\n\r\n\t\tif ((nwDiv4Index - 1) % 6 == 0 || (nwDiv4Index - 2) % 6 == 0) {\r\n\t\t\trow = Math.floor(y / this._nodeHeight);\r\n\t\t\tcx = col;\r\n\t\t\tcy = row;\r\n\t\t}\r\n\t\telse if ((nwDiv4Index - 4) % 6 == 0 || (nwDiv4Index - 5) % 6 == 0) {\r\n\t\t\tif (y < this._nodeHeight / 2) {\r\n\t\t\t\trow = -1;\r\n\t\t\t} else {\r\n\t\t\t\trow = Math.floor((y - this._nodeHeight / 2) / this._nodeHeight);\r\n\t\t\t}\r\n\t\t\tcx = col;\r\n\t\t\tcy = row\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (col % 2 == 0) {\r\n\t\t\t\t//(x - 1,y - 1) (x - 1,y)\r\n\t\t\t\trow = Math.floor(y / this._nodeHeight);\r\n\r\n\t\t\t\tif (this.testPointInHoneycomb(col, row, x, y)) {\r\n\t\t\t\t\tcx = col;\r\n\t\t\t\t\tcy = row;\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.testPointInHoneycomb(col - 1, row - 1, x, y)) {\r\n\t\t\t\t\tcx = col - 1;\r\n\t\t\t\t\tcy = row - 1;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcx = col - 1;\r\n\t\t\t\t\tcy = row;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t//(x - 1,y) (x - 1,y + 1)\r\n\t\t\t\tif (y < this._nodeHeight / 2) {\r\n\t\t\t\t\trow = -1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\trow = Math.floor((y - this._nodeHeight / 2) / this._nodeHeight);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.testPointInHoneycomb(col, row, x, y)) {\r\n\t\t\t\t\tcx = col;\r\n\t\t\t\t\tcy = row;\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.testPointInHoneycomb(col - 1, row, x, y)) {\r\n\t\t\t\t\tcx = col - 1;\r\n\t\t\t\t\tcy = row;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcx = col - 1;\r\n\t\t\t\t\tcy = row + 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new Point(cx, cy);\r\n\t}\r\n\r\n\tprivate testPointInHoneycomb(col: number, row: number, px: number, py: number): Boolean {\r\n\t\tvar a: number = this._nwDiv4 * 2;\r\n\r\n\t\tvar point: Point = this.getPixelByWorldPoint(col, row);\r\n\r\n\t\tvar absX: number = Math.abs(px - point.x);\r\n\t\tvar absY: number = Math.abs(py - point.y);\r\n\r\n\t\t//return a-absX >= absY/(1.732);\r\n\r\n\t\treturn a - absX >= absY / this._proportion;\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得像素坐标 \r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getPixelByWorldPoint(cx: number, cy: number): Point {\r\n\t\tvar x: number = Math.floor((2 + 3 * cx) / 4 * this._nodeWidth);\r\n\t\tvar y: number = Math.floor((cy + 1 / 2 * (1 + (cx % 2))) * this._nodeHeight);\r\n\r\n\t\treturn new Point(x, y);\r\n\t}\r\n\r\n\t/**\r\n\t *根据像素坐标获得网格平面坐标\r\n\t * @param x\r\n\t * @param y\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getDerectByPixel(x: number, y: number): Point {\r\n\r\n\t\treturn this.getWorldPointByPixel(x, y);\r\n\t}\r\n\r\n\t/**\r\n\t *根据世界坐标获得网格平面坐标 90度地图的世界坐标和网格坐标相同\r\n\t * @param cx\r\n\t * @param cy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getDerectByWorldPoint(cx: number, cy: number): Point {\r\n\t\treturn new Point(cx, cy);\r\n\t}\r\n\r\n\t/**\r\n\t *根据网格平面坐标获得像素坐标 \r\n\t * @param dx\r\n\t * @param dy\r\n\t * @return \r\n\t * \r\n\t */\r\n\tpublic getPixelByDerect(dx: number, dy: number): Point {\r\n\t\tvar x: number = (2 + 3 * dx) / 4 * this._nodeWidth;\r\n\t\tvar y: number = (dy + 1 / 2 * (1 + (dx % 2))) * this._nodeHeight;\r\n\t\treturn new Point(x, y);\r\n\t}\r\n}\r\n","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport Point from '../../../map/road/Point';\nimport { Vec2 } from 'cc';\n@res_auto_bind()\nexport class MapTestPoxy {\n private static _inst: MapTestPoxy;\n public static get Inst(): MapTestPoxy {\n if (MapTestPoxy._inst == null) {\n MapTestPoxy._inst = new MapTestPoxy();\n }\n return MapTestPoxy._inst;\n }\n @res_assign(\"MapTest\")\n public datas: MapTest[]; \n public get datasAchieve(){\n if(!this.datas){\n this.datas =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"MapTest\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"MapTest\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.datas.push(achieveitem);\n }\n\n }\n return this.datas;\n }\n public getMapById(id:number):MapTest{\n if(this.datas){\n return this.datas.find(element=>element.mapId==id); \n }else{\n \n this.datas = this.datasAchieve;\n return this.datas.find(element=>element.mapId==id); \n }\n }\n}\n\nexport class MapTest {\n mapId: number;\n spineName: string;\n spineAni: string;\n spinePoint: string;\n spineSca: string;\n}","import { sp } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { MapTest } from \"../../modules/game/proxy/MapTestPoxy\";\r\nimport ResHelper from \"../../core/manager/ResHelper\";\r\nimport { Vec3 } from \"cc\";\r\nimport { EventTouch } from \"cc\";\r\nimport { Vec2 } from \"cc\";\r\nconst { ccclass,property } = _decorator;\r\n\r\n@ccclass('MapTestView')\r\nexport class MapTestView extends Component{\r\n \r\n @property(Node)\r\n skeleton :Node = null;\r\n public spine!: sp.Skeleton;\r\n private testData:MapTest;\r\n onLoad(){\r\n\r\n this.node.on(Node.EventType.TOUCH_START, this.onMapMouseDown, this);\r\n this.node.on(Node.EventType.TOUCH_MOVE, this.onMapMouseMove, this);\r\n this.node.on(Node.EventType.TOUCH_END, this.onMapMouseEnd, this);\r\n }\r\n onClick(){\r\n }\r\n private isTouchDown:boolean = false;\r\n private beginPoint:Vec2 = new Vec2(0,0);\r\n private originPoint:Vec2 = new Vec2(0,0);\r\n private endPoint:Vec2 = new Vec2(0,0);\r\n private distPoint:Vec2 = new Vec2(0,0);\r\n private movePoint:Vec2 = new Vec2(0,0)\r\n public onMapMouseDown(event: EventTouch): void {\r\n this.isTouchDown = true;\r\n this.beginPoint.x = event.touch.getLocationX();\r\n this.beginPoint.y = event.touch.getLocationY();\r\n\t\tthis.originPoint.x = this.node.position.x;\r\n this.originPoint.y = this.node.position.y;\r\n }\r\n public onMapMouseMove(event: EventTouch): void {\r\n if(!this.isTouchDown){\r\n return;\r\n }\r\n this.endPoint.x = event.touch.getLocationX();\r\n this.endPoint.y = event.touch.getLocationY();\r\n this.distPoint.x = this.endPoint.x - this.beginPoint.x;\r\n this.distPoint.y = this.endPoint.y - this.beginPoint.y;\r\n this.movePoint.x = this.originPoint.x + this.distPoint.x;\r\n this.movePoint.y = this.originPoint.y + this.distPoint.y;\r\n this.node.position = new Vec3(this.movePoint.x , this.movePoint.y,0);\r\n }\r\n public onMapMouseEnd(event: EventTouch): void {\r\n this.isTouchDown = false;\r\n }\r\n showData(test:MapTest ){\r\n this.testData = test;\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.skeleton.setScale(new Vec3(Number(this.testData.spineSca.split(\",\")[0]) , Number(this.testData.spineSca.split(\",\")[1]) , 1))\r\n this.showSp()\r\n }\r\n private showSp(){\r\n let path: string = \"spineRes/test/\"+this.testData.spineName+\"/\" + this.testData.spineName;\r\n let sktd = ResHelper.get(path, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n setTimeout(() => {\r\n this.showWait();\r\n }, 1000);\r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n setTimeout(() => {\r\n this.showWait();\r\n }, 1000);\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n private showWait(){\r\n this.spine.setAnimation(0, this.testData.spineAni, true);\r\n }\r\n}","\r\nexport enum MapType {\r\n angle45 = 0,\r\n angle90 = 1,\r\n honeycomb = 2,\r\n}\r\n","import { instantiate, JsonAsset, Node, Prefab, Vec3, _decorator, v3 } from \"cc\";\r\nimport { MapViewScene } from \"./MapViewScene\";\r\nimport { MapModelComp } from \"./MapModel\";\r\nimport MapData from \"./base/MapData\";\r\nimport { MapLoadModel } from \"./base/MapLoadModel\";\r\nimport MapRoadUtils from \"./road/MapRoadUtils\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { StringUtil } from \"../core/utils/StringUtil\";\r\nimport { LayerUtil } from \"../core/utils/LayerUtil\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport BasePanel from \"../core/component/BasePanel\";\r\nimport { GebolInAttTypeEnum, GebolInTypeEnum, GebolinView } from \"../role/GebolinView\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { Pass, PassPoxy } from \"../modules/game/proxy/PassPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport ConfigManager from \"../_config/ConfigManager\";\r\nimport { BuildPart, BuildView } from \"./layer/BuildView\";\r\nimport { RoleViewHitHpPrompt } from \"./RoleViewHitHpPrompt\";\r\nimport { BuildTopView } from \"./layer/BuildTopView\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { c1621, p_build, p_hero, p_hero_sz, s1101, s1622 } from \"../proto/proto\";\r\nimport { CampPoxy } from \"../modules/game/proxy/CampPoxy\";\r\nimport { Hero, HeroProxy } from \"../modules/game/proxy/HeroProxy\";\r\nimport { HeroModle } from \"../role/HeroModle\";\r\nimport { GlobalFunction } from \"../modules/game/common/GlobalFunction\";\r\nimport { Build, BuildPoxy } from \"../modules/game/proxy/BuildPoxy\";\r\nimport { FuhuoFloorViewComp } from \"../item/FuhuoFloorViewComp\";\r\nimport { FuhuoTopViewComp } from \"../item/FuhuoTopViewComp\";\r\nimport { FightMapEnum, PveTypeEnum } from \"../enum/Enum\";\r\nimport { ThiefAiEnum, ThiefRoleViewComp } from \"../role/ThiefRoleViewComp\";\r\nimport { FuBen, FuBenOpenData, FuBenProxy } from \"../modules/game/proxy/FuBenProxy\";\r\nimport LoadingUiComp from \"../modules/loading/LoadingUiComp\";\r\nimport { GebolinMapType } from \"../role/Role\";\r\nimport { FuBenExp, FuBenExpPoxy } from \"../modules/game/proxy/FuBenExpPoxy\";\r\nimport { LoadFightUIViewComp } from \"../modules/game/mainui/LoadFightUIViewComp\";\r\nimport WindowManager, { UILayer } from \"../core/manager/WindowManager\";\r\nimport {FuBenSoldiersPoxy } from \"../modules/game/proxy/FuBenSoldiersPoxy\";\r\nimport GameConst from \"../core/common/GameConst\";\r\nimport { Monster, MonsterPoxy } from \"../modules/game/proxy/MonsterPoxy\";\r\nimport { AudioManager } from \"../audio/AudioManager\";\r\nimport { SoundEffectsConfig, SoundEffectsConfigPoxy } from \"../modules/game/proxy/SoundEffectsConfigPoxy\";\r\nimport { SoundManager } from \"../core/utils/SoundManager\";\r\nimport { ShakeCamera } from \"../core/utils/ShakeCamera\";\r\nimport GameEntry from '../modules/GameEntry';\r\nimport { GuideManager } from \"../modules/game/guilde/GuideManager\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('MapViewComp')\r\nexport class MapViewComp extends BasePanel {\r\n @property(Prefab)\r\n severOver:Prefab = null;\r\n @property(Prefab)\r\n scenePre: Prefab = null!;\r\n @property(Node)\r\n bossIn:Node = null;\r\n @property(Prefab)\r\n uiRole:Prefab = null;\r\n @property(Prefab)\r\n thiefPre:Prefab = null;\r\n @property(Prefab)\r\n fightUiPre:Prefab = null;\r\n @property(Prefab)\r\n copyLose:Prefab = null;\r\n @property(Prefab)\r\n copyWin:Prefab = null;\r\n @property(Prefab)\r\n buffItem:Prefab = null;\r\n private fightUiView:LoadFightUIViewComp;\r\n /** 是否正在转场 */\r\n isTransfer = false;\r\n /** 当前地图数据 */\r\n current_map: any;\r\n /** 转场碰撞点对象集合 */\r\n deliverys: Map = new Map();\r\n /***当前地图类型*/\r\n mapType:FightMapEnum = FightMapEnum.GuanQiaMap;\r\n private map_data: any; // 地图配置\r\n private map_delivery: any; // 转场点配置\r\n /**地图上的建筑集合*/\r\n private _buildMap: Map;\r\n public get buildMap(): Map {\r\n return this._buildMap;\r\n }\r\n public set buildMap(value: Map) {\r\n this._buildMap = value;\r\n }\r\n /**地图待解锁建筑集合*/\r\n private _lockBuildMap: Map;\r\n public get lockBuildMap(): Map {\r\n return this._lockBuildMap;\r\n }\r\n public set lockBuildMap(value: Map) {\r\n this._lockBuildMap = value;\r\n }\r\n /**地图上的哥布林集合*/\r\n private _gebolinMap: Map = new Map();\r\n public get gebolinMap(): Map {\r\n return this._gebolinMap;\r\n }\r\n public set gebolinMap(value: Map) {\r\n this._gebolinMap = value;\r\n }\r\n /**地图上的英雄合集*/\r\n private _heroMap: Map = new Map();\r\n public get heroMap(): Map {\r\n return this._heroMap;\r\n }\r\n public set heroMap(value: Map) {\r\n this._heroMap = value;\r\n }\r\n /**地图上的英雄合集*/\r\n private _copyheroMap: Map = new Map();\r\n public get copyheroMap(): Map {\r\n return this._copyheroMap;\r\n }\r\n public set copyheroMap(value: Map) {\r\n this._copyheroMap = value;\r\n }\r\n public getHeroById(id:number):HeroView{\r\n return this.heroMap.get(id);\r\n }\r\n\r\n /**当前BOSS*/\r\n private _nowBoss: BossView;\r\n public get nowBoss(): BossView {\r\n return this._nowBoss;\r\n }\r\n public set nowBoss(value: BossView) {\r\n this._nowBoss = value;\r\n }\r\n /**当前副本BOSS*/\r\n private _nowFubenBoss: BossView; \r\n public get nowFubenBoss(): BossView {\r\n return this._nowFubenBoss;\r\n }\r\n public set nowFubenBoss(value: BossView) {\r\n this._nowFubenBoss = value;\r\n }\r\n /**小偷*/\r\n private _thief: ThiefRoleViewComp;\r\n public get thief(): ThiefRoleViewComp {\r\n return this._thief;\r\n }\r\n public set thief(value: ThiefRoleViewComp) {\r\n this._thief = value;\r\n }\r\n /**当前场景*/\r\n private _nowScene: MapViewScene = null!;\r\n public get nowScene(): MapViewScene {\r\n return this._nowScene;\r\n }\r\n public set nowScene(value: MapViewScene) {\r\n this._nowScene = value;\r\n }\r\n /**pveBoss场景*/\r\n private pveBossSceen:MapViewScene = null;\r\n /**pveCopy场景*/\r\n private pveCopySceen:MapViewScene = null;\r\n /**副本转场加载*/\r\n private transView:LoadingUiComp;\r\n start() {\r\n this.addEvent();\r\n }\r\n private addEvent(){\r\n EventManager.Inst.on(EventType.LOGIN_OVER_LOAD_MAP , this , this.onLoginEnd);\r\n EventManager.Inst.on(EventType.CHANGE_NEW_PASS , this , this.onChangeNewPass);\r\n EventManager.Inst.on(EventType.BOSS_IN_MAP , this , this.onBossIn);\r\n EventManager.Inst.on(EventType.NEW_BUILD_OPEN , this , this.onNewBuildOpen);\r\n EventManager.Inst.on(EventType.VILLAGE_LEVEL_UP , this , this.onVillUp);\r\n EventManager.Inst.on(EventType.HERO_LIST_CHANG , this , this.onHeroChange);\r\n EventManager.Inst.on(EventType.FUHUO_WUJIANG_CHANGE , this , this.onHeroFuhuo);\r\n EventManager.Inst.on(EventType.KILL_BOSS_FAIL , this , this.onKillFail);\r\n EventManager.Inst.on(EventType.OPEN_PVE_FIGHT_MAP , this , this.onOpenPve);\r\n EventManager.Inst.on(EventType.THIEF_ACTIVE_TYPE_CHANGE , this , this.onThiefChange);\r\n EventManager.Inst.on(EventType.CHANGE_TO_PVE_FIGHT_MAP , this , this.onChanegToCopy);\r\n EventManager.Inst.on(EventType.PVE_FIGHT_MAP_FIGHT_END , this , this.onCopyFightEnd);\r\n EventManager.Inst.on(EventType.COPY_END_SHOW_REWARD , this , this.onCopyReward);\r\n EventManager.Inst.on(EventType.CLOSE_OTHER_UI , this , this.onClearOther);\r\n\r\n EventManager.Inst.on(EventType.SHOW_SKILL_ACTION , this , this.showSkillAction);\r\n EventManager.Inst.on(EventType.GEBOLIN_ATT_CHANGE,this,this.onGebolinAttChange);\r\n EventManager.Inst.on(EventType.HERO_ATT_CHANGE,this,this.onHeroAttChange);\r\n }\r\n private onGebolinAttChange(){\r\n this.gebolinMap.forEach(p => {\r\n if(p && !p.isDie ){\r\n p.modle.addAttributes(\"\" , true);\r\n }\r\n });\r\n }\r\n private onHeroAttChange(){\r\n this.gebolinMap.forEach(p => {\r\n if(p && !p.isDie ){\r\n p.modle.addAttributes(\"\" , true);\r\n }\r\n });\r\n }\r\n\r\n private showSkillAction(){\r\n // let shake:ShakeCamera = this.nowScene.node.getComponent(ShakeCamera);\r\n // if (shake) {\r\n // shake.shake(GameModleComp.getInstance().shakeCameraTime, GameModleComp.getInstance().shakeCameraOff); // 震屏持续0.2秒,强度为5\r\n // }\r\n \r\n // let shake1:ShakeCamera = GameEntry.Inst.node.getComponent(ShakeCamera);\r\n // if (shake1) {\r\n // shake1.shake(GameModleComp.getInstance().shakeCameraTime, GameModleComp.getInstance().shakeCameraOff);\r\n // }\r\n }\r\n\r\n private onClearOther(){\r\n GlobalFunction.CloseALlLayer();\r\n }\r\n /**副本战绩返回*/\r\n private onCopyReward(event:s1622){\r\n if(event.result == 3){\r\n WindowManager.Instance().open(GameConst.winPath.LoadFbenWinUI, event, true);\r\n }else{\r\n WindowManager.Instance().open(GameConst.winPath.LoadFbenLoseUI, event, true);\r\n }\r\n }\r\n private onThiefChange(isOPen:boolean){\r\n if(this.pveBossSceen && this.pveBossSceen.heroLayer){\r\n this.showThief();\r\n }\r\n }\r\n private showThief(){\r\n if( FuBenProxy.Inst.thiefIsOpen){\r\n if(this.thief){\r\n setTimeout(() => {\r\n if(this.thief){\r\n this.thief.desTory();\r\n this.thief = null;\r\n }\r\n }, 2000);\r\n return ;\r\n }\r\n let starPoint:Vec3 = new Vec3(1,1,1);\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let map:Maps = MapPoxy.Inst.getMapById(pass.mapId);\r\n let posArr:Array = map.pos_xiaotou[0];\r\n starPoint = new Vec3(Number(posArr[0]) , Number(posArr[1]) , 1);\r\n this.thief = instantiate(this.thiefPre).getComponent(ThiefRoleViewComp);\r\n this.thief.setPos(MapRoadUtils.AStarToPoint(starPoint));\r\n this.thief.init();\r\n this.pveBossSceen.heroLayer.addChild(this.thief.node);\r\n }else{\r\n if(this.thief){\r\n this.thief.speed = 400;\r\n this.thief.aiType = ThiefAiEnum.TaoPao;\r\n this.thief.clickPro.node.active = false;\r\n this.thief.Sprite_shouzhi.active = false;\r\n }\r\n }\r\n }\r\n /**开启副本*/\r\n private onOpenPve(event:FuBenOpenData){\r\n GameModleComp.getInstance().isInCopy = true;\r\n GameModleComp.getInstance().transPveData = event;\r\n this.transView = instantiate(GameEntry.Inst.mapView.nowScene.loadingUI).getComponent(LoadingUiComp);\r\n this.transView.init(event.fubenType);\r\n GameEntry.Inst.container.addChild(this.transView.node);\r\n }\r\n /**副本战斗结束*/\r\n private onCopyFightEnd(){\r\n this.removeFightUI();\r\n if(this.nowFubenBoss){\r\n this.nowFubenBoss.desTory();\r\n }\r\n this.nowFubenBoss = null;\r\n this.gebolinMap.forEach(p => {\r\n if(p && p.gebolinMapType == GebolinMapType.PveCopy){\r\n p.desTory();\r\n }\r\n });\r\n this.copyheroMap.forEach(p => {\r\n if(p && p.gebolinMapType == GebolinMapType.PveCopy){\r\n p.desTory();\r\n }\r\n });\r\n this.copyheroMap.clear();\r\n this.copyheroMap = new Map()\r\n this.pveCopySceen.desTory();\r\n this.nowScene.desTory();\r\n this.nowScene = this.pveBossSceen;\r\n this.pveBossSceen.node.active = true;\r\n }\r\n private removeFightUI(){\r\n if(this.fightUiView){\r\n this.fightUiView.desTroy();\r\n this.fightUiView = null;\r\n }\r\n }\r\n /**副本准备完成 等待开启地图*/\r\n private onChanegToCopy(){\r\n this.nowScene.node.active = false;\r\n this.pveCopySceen = instantiate(this.scenePre).getComponent(MapViewScene);\r\n this.node.addChild(this.pveCopySceen.node);\r\n this.nowScene = this.pveCopySceen;\r\n let pveType:PveTypeEnum = GameModleComp.getInstance().transPveData.fubenType;\r\n let cfgId:number = GameModleComp.getInstance().transPveData.fubenId;\r\n this.transferPve(pveType , cfgId);\r\n }\r\n /**副本UI*/\r\n private showFightUi(){\r\n this.removeFightUI();\r\n this.fightUiView = instantiate(this.fightUiPre).getComponent(LoadFightUIViewComp);\r\n let layer = WindowManager.Instance().getLayer(UILayer.弹窗);\r\n this.fightUiView.init();\r\n layer.addChild(this.fightUiView.node);\r\n }\r\n /** 转场进入副本 */\r\n private transferPve(pveType:PveTypeEnum , cfgId:number) {\r\n GameEntry.Inst.mapView.mapType = MapModelComp.getInstance().getMapTypeByPve(pveType);\r\n let fuben:FuBen = FuBenProxy.Inst.GetFubenById(cfgId);\r\n let maps:Maps = MapPoxy.Inst.getMapById(Number(fuben.map));\r\n var mm:MapModelComp = MapModelComp.getInstance();\r\n this.nowScene.hpPrompt = this.nowScene.Hitlayer.addComponent(RoleViewHitHpPrompt);\r\n this.nowScene.hpPrompt.init();\r\n ResHelper.load(mm.resConfigMap + maps.mapSource + \"/\" + maps.mapSource, JsonAsset , (err,ass:JsonAsset)=>{\r\n this.map_data = ass.json;\r\n this.loadMap(mm.id, () => {\r\n if(!GuideManager.getInstance().isAllClose(6 , 6001)){\r\n GuideManager.getInstance().showGuide();\r\n }\r\n GuideManager.getInstance().isInGuide = false;\r\n this.loadBoss();\r\n this.loadCopyHero();\r\n this.loadCopyGebolin();\r\n this.showFightUi();\r\n });\r\n },false , \"mapRes\");\r\n }\r\n\r\n private onKillFail(){\r\n MapModelComp.getInstance().mapMonsterIndex-=1;\r\n if(MapModelComp.getInstance().mapMonsterIndex < 0){\r\n MapModelComp.getInstance().mapMonsterIndex = 0;\r\n }\r\n this.nowBoss.isDie = true;\r\n this.nowBoss.desTory();\r\n setTimeout(() => {\r\n this.loadBoss();\r\n EventManager.Inst.event(EventType.KILL_BOSS_FAIL_UI);\r\n }, 800);\r\n }\r\n onToKillClick(){\r\n MapModelComp.getInstance().mapMonsterIndex = 4;\r\n GameModleComp.getInstance().isKillBossFail = false;\r\n this.nowBoss.isDie = true;\r\n this.nowBoss.desTory();\r\n setTimeout(() => {\r\n EventManager.Inst.event(EventType.BOSS_IN_MAP);\r\n setTimeout(() => {\r\n GameEntry.Inst.mapView.loadBoss();\r\n EventManager.Inst.event(EventType.TO_KILL_BOSS_UI);\r\n }, GameModleComp.getInstance().bossInTime);\r\n }, 800);\r\n }\r\n private onHeroFuhuo(heroId:number){\r\n let mapId:number = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_heroInitPoint;\r\n let floor:FuhuoFloorViewComp = instantiate(GameEntry.Inst.mapView.nowScene.fuhuoFloor).getComponent(FuhuoFloorViewComp);\r\n floor.node.position = MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0));\r\n this.nowScene.footEffNode.addChild(floor.node);\r\n floor.playAni();\r\n let top:FuhuoTopViewComp = instantiate(GameEntry.Inst.mapView.nowScene.fuhuoTop).getComponent(FuhuoTopViewComp);\r\n top.node.position = MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0));\r\n top.initHero(arr , heroId)\r\n this.nowScene.topEffNode.addChild(top.node);\r\n top.playAni();\r\n }\r\n private onHeroChange(szArr:Array){\r\n for(let i = 0 ; i < szArr.length ; i++){\r\n let id:string = szArr[i].heroId;\r\n if(id != \"0\"){\r\n let szHero:p_hero = HeroProxy.Inst.GetSeverHeroByUId(id);\r\n let localId:number = szHero.localId;\r\n let hero:HeroView = this.heroMap.get(localId);\r\n let fuhuohero:number = GameModleComp.getInstance().fuhuoMap.get(localId);\r\n if(!hero && !fuhuohero){\r\n let gebulin:HeroView = instantiate(this.nowScene.hero).getComponent(HeroView);\r\n let mapId:number = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_heroInitPoint;\r\n gebulin.setPos(MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0)));\r\n gebulin.init();\r\n gebulin.pId = id;\r\n gebulin.setHeroId(localId);\r\n this.nowScene.heroLayer.addChild(gebulin.node);\r\n this.heroMap.set((gebulin.modle as HeroModle).hero.id , gebulin);\r\n }\r\n }\r\n }\r\n this.heroMap.forEach(h=>{\r\n let isHave:boolean = false;\r\n for(let i = 0 ; i < szArr.length ; i++){\r\n let id:string = szArr[i].heroId;\r\n if(id !=\"0\" && id == h.pId){\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n this.heroMap.delete((h.modle as HeroModle).hero.id)\r\n h.isDie=true;\r\n h.huishouPoint();\r\n h.desTory();\r\n }\r\n })\r\n }\r\n private onNewBuildOpen(event:Event){\r\n let buildId:number = Number(event);\r\n let build:BuildView = this.lockBuildMap.get(buildId);\r\n if(build){\r\n let buildPoint:Vec3 = build.node.position;\r\n build.desTroy();\r\n this.buildMap.delete(buildId);\r\n let temp:BuildView = instantiate(this.nowScene.build).getComponent(BuildView);\r\n temp.node.position = buildPoint;\r\n temp.setPos(buildPoint);\r\n temp.init(buildId , true);\r\n this.nowScene.floorLayer.addChild(temp.node);\r\n this.buildMap.set(buildId , temp);\r\n }\r\n }\r\n private onVillUp(event:Event){\r\n let buildId:number = Number(event);\r\n let build:BuildView = this.buildMap.get(buildId) as BuildView;\r\n if(build.buildPart == Number(BuildPart.CunZhuang)){\r\n build.changeCunzhuang();\r\n }\r\n }\r\n private onBossIn(){\r\n this.bossIn.active = true;\r\n setTimeout(() => {\r\n this.bossIn.active = false;\r\n }, GameModleComp.getInstance().bossInTime);\r\n }\r\n private onChangeNewPass(){\r\n this.clearGuanQia();\r\n }\r\n onLoginEnd(){\r\n if(!this.pveBossSceen){\r\n Logger.logView(\"收到加载完成\");\r\n this.pveBossSceen = instantiate(this.scenePre).getComponent(MapViewScene);\r\n this.node.addChild(this.pveBossSceen.node);\r\n this.nowScene = this.pveBossSceen;\r\n this.loadRes();\r\n }\r\n }\r\n private showNewScence(){\r\n GuideManager.getInstance().closeAllGuide();\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n if(Number(pass.jumpmap) == 1){\r\n if(this.pveBossSceen){\r\n this.pveBossSceen.desTory();\r\n this.pveBossSceen = null;\r\n }\r\n this.pveBossSceen = instantiate(this.scenePre).getComponent(MapViewScene);\r\n this.node.addChild(this.pveBossSceen.node);\r\n this.nowScene = this.pveBossSceen;\r\n\r\n this.playMusic();\r\n }\r\n this.transfer();\r\n }\r\n public playMusic(){\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let map:Maps = MapPoxy.Inst.getMapById(pass.mapId);\r\n let sound:SoundEffectsConfig = SoundEffectsConfigPoxy.Inst.getSoundEffectsConfigById(map.soundid);\r\n SoundManager.getInstance().playBackgroundMusic(sound.name);\r\n }\r\n /** 转场 */\r\n transfer() {\r\n this.mapType = FightMapEnum.GuanQiaMap\r\n MapModelComp.getInstance().getMapList();\r\n var mm:MapModelComp = MapModelComp.getInstance();\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId)\r\n let mapId:number = pass.mapId;\r\n GameModleComp.getInstance().gameMapId = mapId;\r\n let maps:Maps = MapPoxy.Inst.getMapById(mapId);\r\n console.log(\"maps==\"+maps.toString())\r\n this.nowScene.hpPrompt = this.nowScene.Hitlayer.addComponent(RoleViewHitHpPrompt);\r\n this.nowScene.hpPrompt.init();\r\n if(Number(pass.jumpmap) == 1){\r\n ResHelper.load(mm.resConfigMap + maps.mapSource + \"/\" + maps.mapSource, JsonAsset , (err,ass:JsonAsset)=>{\r\n this.map_data = ass.json;\r\n GameModleComp.getInstance().initAtt();\r\n this.loadMap(mm.id, () => {\r\n this.loadFuhuo();\r\n this.loadBoss();\r\n this.loadBuild();\r\n this.loadLockBuild();\r\n setTimeout(() => {\r\n this.loadHero();\r\n this.showThief();\r\n }, 500);\r\n });\r\n },false , \"mapRes\");\r\n }else{\r\n this.loadBoss();\r\n this.loadBuild();\r\n // this.loadLockBuild();\r\n this.changeNewBuild();\r\n setTimeout(() => {\r\n this.loadHero();\r\n this.showThief();\r\n }, 500);\r\n }\r\n }\r\n private async loadRes() {\r\n this.mapType = FightMapEnum.GuanQiaMap\r\n // 加载地图配置与转场点配置\r\n MapModelComp.getInstance().getMapList();\r\n var mm:MapModelComp = MapModelComp.getInstance();\r\n let mapId:number = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n GameModleComp.getInstance().gameMapId = mapId;\r\n let maps:Maps = MapPoxy.Inst.getMapById(mapId);\r\n this.nowScene.hpPrompt = this.nowScene.Hitlayer.addComponent(RoleViewHitHpPrompt);\r\n this.nowScene.hpPrompt.init();\r\n ResHelper.load(mm.resConfigMap + maps.mapSource + \"/\" + maps.mapSource, JsonAsset , (err,ass:JsonAsset)=>{\r\n this.map_data = ass.json;\r\n Logger.logView(\"前往加载地图\")\r\n GameModleComp.getInstance().initAtt();\r\n this.loadMap(mm.id, () => {\r\n Logger.logView(\"地图加载完成\");\r\n this.playMusic();\r\n this.loadFuhuo();\r\n this.loadBoss();\r\n this.loadBuild();\r\n this.loadLockBuild();\r\n setTimeout(() => {\r\n this.loadHero();\r\n this.showThief();\r\n // GuideManager.getInstance().initGuideData();\r\n }, 500);\r\n });\r\n },false , \"mapRes\");\r\n }\r\n private loadFuhuo(){\r\n let node:Node = instantiate(this.nowScene.fuhuodian);\r\n let mapId:number = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_heroInitPoint;\r\n node.position = MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0))\r\n this.nowScene.mapEffNode.addChild(node);\r\n }\r\n loadLockBuild(isInit:boolean=true){\r\n if(this.lockBuildMap){\r\n this.lockBuildMap.forEach(p => {\r\n if(p){\r\n p.desTroy();\r\n }\r\n });\r\n this.lockBuildMap.clear();\r\n }\r\n this.lockBuildMap = new Map();\r\n let maps:Maps = MapPoxy.Inst.getMapById(GameModleComp.getInstance().gameMapId);\r\n let buildId:number; \r\n let buildPoint:Vec3;\r\n let pointArr:Array = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_lockPoint);\r\n \r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let idArr:Array = [];\r\n if(!isInit){\r\n if(pass.ay_build && pass.ay_build.length){\r\n for(let i = 0 ; i < pass.ay_build.length ; i++){\r\n idArr.push(Number(pass.ay_build[i]))\r\n }\r\n }\r\n }\r\n for(let i = 0 ; i < maps.ay_lock.length ; i++){\r\n buildId = Number(maps.ay_lock[i]);\r\n if(CampPoxy.Inst.buildMaps.get(Number(buildId))){\r\n buildPoint = pointArr[i];\r\n let build:BuildView = instantiate(this.nowScene.build).getComponent(BuildView);\r\n build.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n build.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n build.init(buildId , true);\r\n this.nowScene.floorLayer.addChild(build.node);\r\n this.buildMap.set(buildId , build);\r\n let buildTop:BuildTopView = instantiate(this.nowScene.buildTop).getComponent(BuildTopView);\r\n buildTop.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n buildTop.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n buildTop.init(buildId);\r\n this.nowScene.mapLayerTop.addChild(buildTop.node);\r\n this.buildMap.set(buildId+10000 , buildTop);\r\n }else{\r\n buildPoint = pointArr[i];\r\n let build:BuildView = instantiate(this.nowScene.build).getComponent(BuildView);\r\n build.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n build.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n build.init(buildId , false);\r\n this.nowScene.floorLayer.addChild(build.node);\r\n this.lockBuildMap.set(buildId , build);\r\n }\r\n }\r\n }\r\n changeNewBuild(){\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let maps:Maps = MapPoxy.Inst.getMapById(GameModleComp.getInstance().gameMapId);\r\n if(pass.ay_build && pass.ay_build.length){\r\n for(let i = 0 ; i < pass.ay_build.length ; i++){\r\n let newBuildId:number = Number(pass.ay_build[i]);\r\n let buildId:number; \r\n let buildPoint:Vec3;\r\n let idArr:Array = GlobalFunction.getAyToNumber(maps.ay_lock);\r\n let idIndex:number = idArr.indexOf(newBuildId);\r\n if(idIndex >= 0){\r\n if(this.buildMap.get(newBuildId)){\r\n }else{\r\n let point:Vec3 = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_lockPoint)[idIndex];\r\n buildId = newBuildId;\r\n buildPoint = point;\r\n let build:BuildView = instantiate(this.nowScene.build).getComponent(BuildView);\r\n build.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n build.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n build.init(buildId , true);\r\n this.nowScene.floorLayer.addChild(build.node);\r\n this.buildMap.set(buildId , build);\r\n let bc:Build = BuildPoxy.Inst.GetBuildById(buildId);\r\n if(Number(bc.addParts) == BuildPart.WuQi || Number(bc.addParts) == BuildPart.KaiJia || Number(bc.addParts) == BuildPart.MaoZi){\r\n let buildTop:BuildTopView = instantiate(this.nowScene.buildTop).getComponent(BuildTopView);\r\n buildTop.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n buildTop.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n buildTop.init(buildId);\r\n this.nowScene.mapLayerTop.addChild(buildTop.node);\r\n this.buildMap.set(buildId+10000 , buildTop);\r\n }\r\n let lb:BuildView = this.lockBuildMap.get(buildId);\r\n if(lb){\r\n this.lockBuildMap.delete(buildId);\r\n lb.desTroy();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n private loadBuild(){\r\n this.clearBuildMap();\r\n this.buildMap = new Map();\r\n Logger.logView(\"载入建筑\");\r\n let maps:Maps = MapPoxy.Inst.getMapById(GameModleComp.getInstance().gameMapId);\r\n let buildId:number; \r\n let buildPoint:Vec3;\r\n let pointArr:Array = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_buildPoint);\r\n for(let i = maps.ay_mapBuild.length-1 ; i >= 0 ; i--){\r\n buildId = Number(maps.ay_mapBuild[i]);\r\n buildPoint = pointArr[i];\r\n let build:BuildView = instantiate(this.nowScene.build).getComponent(BuildView);\r\n build.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n build.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n build.init(buildId , true);\r\n this.nowScene.floorLayer.addChild(build.node);\r\n this.buildMap.set(buildId , build);\r\n }\r\n for(let i = maps.ay_mapBuild.length-1 ; i >= 0 ; i--){\r\n buildId = Number(maps.ay_mapBuild[i]);\r\n let bc:Build = BuildPoxy.Inst.GetBuildById(buildId);\r\n if(Number(bc.addParts) == BuildPart.WuQi || Number(bc.addParts) == BuildPart.KaiJia || Number(bc.addParts) == BuildPart.MaoZi){\r\n buildPoint = pointArr[i];\r\n let build:BuildTopView = instantiate(this.nowScene.buildTop).getComponent(BuildTopView);\r\n build.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n build.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n build.init(buildId);\r\n this.nowScene.mapLayerTop.addChild(build.node);\r\n this.buildMap.set(buildId+10000 , build);\r\n }\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(Number(1002))){\r\n this.addNewCunzhuang(1002);\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(Number(1003))){\r\n this.addNewCunzhuang(1003);\r\n }\r\n }\r\n addNewCunzhuang(id:number){\r\n let buildPoint:Vec3;\r\n let maps:Maps = MapPoxy.Inst.getMapById(GameModleComp.getInstance().gameMapId);\r\n let buildId:number = id;\r\n let pointArr:Array = ConfigManager.GetInstance().changeObjToPointArray(maps.pos_lockPoint);\r\n let index:number = -1;\r\n for(let i = 0 ; i < maps.ay_lock.length ; i++ ){\r\n if(Number(maps.ay_lock[i]) == buildId){\r\n index = i;\r\n }\r\n }\r\n if(index >= 0){\r\n buildPoint = pointArr[index];\r\n let build:BuildView = instantiate(this.nowScene.build).getComponent(BuildView);\r\n build.node.position = MapRoadUtils.AStarToPoint(buildPoint);\r\n build.setPos(MapRoadUtils.AStarToPoint(buildPoint));\r\n build.init(buildId , true);\r\n this.nowScene.floorLayer.addChild(build.node);\r\n this.buildMap.set(buildId , build);\r\n }\r\n }\r\n private loadRole(){\r\n let gebulin:GebolinView = instantiate(this.nowScene.gebulin).getComponent(GebolinView);\r\n gebulin.setPos(new Vec3(780 , 570 , 0));\r\n gebulin.init();\r\n this.nowScene.heroLayer.addChild(gebulin.node);\r\n this.gebolinMap.set(gebulin.roleId , gebulin);\r\n }\r\n loadBoss(){\r\n let gebulin:BossView = instantiate(this.nowScene.boss).getComponent(BossView);\r\n let mapId:number;\r\n if(GameModleComp.getInstance().isInCopy){\r\n mapId = Number(FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId).map);\r\n // console.log(\"当前在副本,抓取副本map\" + mapId)\r\n }else{\r\n mapId = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n // console.log(\"当前在场景,抓取场景map\" + mapId)\r\n }\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_bossPoint;\r\n gebulin.setPos(MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0)));\r\n switch(this.mapType){\r\n case FightMapEnum.GuanQiaMap:\r\n if(MapModelComp.getInstance().mapMonsterIndex >= 4){\r\n gebulin.isBoss = true;\r\n }else{\r\n if(MapModelComp.getInstance().mapMonsterArr.length){\r\n }else{\r\n gebulin.isBoss = true;\r\n }\r\n }\r\n if(gebulin.isBoss){\r\n let monster:Monster = MonsterPoxy.Inst.getMonsterById(PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).boss);\r\n if(Number(monster.time) > 0){\r\n GameModleComp.getInstance().bossDieTime = Number(monster.time)\r\n }\r\n }\r\n gebulin.init();\r\n if(MapModelComp.getInstance().mapMonsterIndex >= 4){\r\n gebulin.setMonsterId(PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).boss);\r\n }else{\r\n if(MapModelComp.getInstance().mapMonsterArr.length){\r\n gebulin.setMonsterId(MapModelComp.getInstance().mapMonsterArr[MapModelComp.getInstance().mapMonsterIndex]);\r\n }else{\r\n gebulin.setMonsterId(PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).boss);\r\n }\r\n }\r\n this.nowScene.bossLayer.addChild(gebulin.node);\r\n this.nowBoss = gebulin;\r\n break;\r\n case FightMapEnum.DaDaoMap:\r\n case FightMapEnum.BaoKuMap:\r\n case FightMapEnum.JunHuoMap:\r\n case FightMapEnum.JiYinMap:\r\n gebulin.init(GebolinMapType.PveCopy);\r\n let fubenExp:FuBenExp = FuBenExpPoxy.Inst.GetFuBenExpByID(GameModleComp.getInstance().transPveData.fubenExpId);\r\n gebulin.setMonsterId(fubenExp.monster);\r\n this.nowScene.heroLayer.addChild(gebulin.node);\r\n let monster:Monster = MonsterPoxy.Inst.getMonsterById(fubenExp.monster);\r\n if(Number(monster.time) > 0){\r\n GameModleComp.getInstance().bossDieTime = Number(monster.time)\r\n }\r\n this.nowFubenBoss = gebulin;\r\n break;\r\n }\r\n }\r\n private createIndex:number = 0;\r\n loadHero(){\r\n let heroMap:Array = HeroProxy.Inst.szHeros;\r\n if(!heroMap){\r\n return;\r\n }\r\n let interval = 0.3;\r\n let repeat = heroMap.length-1; \r\n let delay = 0; \r\n this.createIndex = 0;\r\n this.schedule(this.onScheduleEvent, interval, repeat, delay);\r\n }\r\n private onScheduleEvent (){\r\n let heroMap:Array = HeroProxy.Inst.szHeros;\r\n if(heroMap[this.createIndex].heroId != \"0\"){\r\n let gebulin:HeroView = instantiate(this.nowScene.hero).getComponent(HeroView);\r\n let mapId:number = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_heroInitPoint;\r\n gebulin.setPos(MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0)));\r\n gebulin.init();\r\n gebulin.pId = heroMap[this.createIndex].heroId;\r\n let szHero:p_hero = HeroProxy.Inst.GetSeverHeroByUId(heroMap[this.createIndex].heroId);\r\n let localId:number = szHero.localId;\r\n gebulin.setHeroId(localId);\r\n this.nowScene.heroLayer.addChild(gebulin.node);\r\n this.heroMap.set((gebulin.modle as HeroModle).hero.id , gebulin);\r\n }\r\n this.createIndex++;\r\n }\r\n private loadCopyGebolin(){\r\n /**拥有兵营数量*/\r\n let haveNum:number=0;\r\n for(let i = 1001 ; i <= 1003 ; i++){\r\n let build:p_build = CampPoxy.Inst.buildMaps.get(i)\r\n if(build){\r\n haveNum += build.lv1;\r\n }\r\n }\r\n /**兵种类型*/\r\n let gebolinTypeArr:Array = [];\r\n if(CampPoxy.Inst.buildMaps.get(1004)){\r\n gebolinTypeArr.push(GebolInTypeEnum.ZhanShi);\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(1007)){\r\n gebolinTypeArr.push(GebolInTypeEnum.FaShi);\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(1010)){\r\n gebolinTypeArr.push(GebolInTypeEnum.ChiKe);\r\n }\r\n if(CampPoxy.Inst.buildMaps.get(1013)){\r\n gebolinTypeArr.push(GebolInTypeEnum.PaoShou);\r\n }\r\n /**拥有副本用兵数量*/\r\n let gebolinNum:number = 0;\r\n gebolinNum = FuBenSoldiersPoxy.Inst.getMapById(haveNum).soldiers;\r\n let numArr:Array = [-1,-1,-1,-1,-1];\r\n for(let i = 0 ; i < gebolinTypeArr.length ; i++){\r\n numArr[i] = 0;\r\n }\r\n let index:number = 0;\r\n for(let i = 0 ; i < gebolinNum ; i++){\r\n numArr[index]++;\r\n index++;\r\n if(index >= gebolinTypeArr.length){\r\n index = 0;\r\n }\r\n }\r\n for(let i = 0 ; i < gebolinTypeArr.length ; i++){\r\n let type:number = gebolinTypeArr[i];\r\n for(let l = 0 ; l < numArr[i] ; l++){\r\n let gebulin:GebolinView = instantiate(GameEntry.Inst.mapView.nowScene.gebulin).getComponent(GebolinView);\r\n let arr:Array = [];\r\n arr[0] = Math.floor(Math.random()*13+2);\r\n arr[1] = Math.floor(Math.random()*4+2);\r\n gebulin.setPos(MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0)));\r\n gebulin.init(GebolinMapType.PveCopy);\r\n gebulin.gebolinType = type;\r\n gebulin.gebolinAttType = this.getRoleAttTypeByBuild(gebulin.gebolinType);\r\n gebulin.soldiersID = type*100+1;\r\n this.nowScene.heroLayer.addChild(gebulin.node);\r\n this.gebolinMap.set(gebulin.roleId , gebulin);\r\n }\r\n }\r\n }\r\n getRoleAttTypeByBuild(gebolinType:GebolInTypeEnum):GebolInAttTypeEnum{\r\n switch(gebolinType){\r\n case GebolInTypeEnum.ZhanShi:\r\n case GebolInTypeEnum.ChiKe:\r\n return GebolInAttTypeEnum.JinZhan;\r\n case GebolInTypeEnum.FaShi:\r\n case GebolInTypeEnum.PaoShou:\r\n return GebolInAttTypeEnum.YuanCheng;\r\n }\r\n }\r\n loadCopyHero(){\r\n let heroMap:Array = HeroProxy.Inst.szHeros;\r\n if(!heroMap){\r\n return;\r\n }\r\n for(let i = 0 ; i < heroMap.length ; i++){\r\n if(heroMap[i].heroId != \"0\"){\r\n let gebulin:HeroView = instantiate(this.nowScene.hero).getComponent(HeroView);\r\n let arr:Array = [];\r\n arr[0] = Math.floor(Math.random()*13+2);\r\n arr[1] = Math.floor(Math.random()*4+2);\r\n gebulin.setPos(MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0)));\r\n gebulin.init(GebolinMapType.PveCopy);\r\n gebulin.pId = heroMap[i].heroId;\r\n let szHero:p_hero = HeroProxy.Inst.GetSeverHeroByUId(heroMap[i].heroId);\r\n let localId:number = szHero.localId;\r\n gebulin.setHeroId(localId);\r\n this.nowScene.heroLayer.addChild(gebulin.node);\r\n this.copyheroMap.set((gebulin.modle as HeroModle).hero.id , gebulin);\r\n }\r\n }\r\n }\r\n /** 加载地图 */\r\n private loadMap(id: number, callback?: Function) {\r\n this.isTransfer = true;\r\n // 设置当前所在地图\r\n this.current_map = this.map_data;\r\n // 加载地图\r\n this.loadSlicesMap(this.current_map.name, callback);\r\n }\r\n /**\r\n * 加载分切片地图\r\n */\r\n protected loadSlicesMap(mapName: string, callback?: Function) {\r\n // Logger.logView(\"载入地图配置\");\r\n var mm = MapModelComp.getInstance();\r\n ResHelper.load(mm.getResContentData(mapName), JsonAsset,(err,jsonAss:JsonAsset)=>{\r\n var mapData: MapData = jsonAss.json as MapData;\r\n // let tex: Texture2D = oops.res.get(mm.getResContentMiniMap(mapName), Texture2D);\r\n // 显示地图\r\n this.nowScene!.node.active = true;\r\n this.nowScene!.init(mapData, null, MapLoadModel.slices);\r\n // 地图加载完成\r\n this.mapLoaded();\r\n this.nowScene.loadSlices();\r\n callback && callback();\r\n this.isTransfer = false;\r\n },true , \"mapRes\");\r\n }\r\n private mapLoaded() {\r\n this.addDelivery();\r\n }\r\n /** 通过数据设置节点位置 */\r\n private setNodePos(data: any, prefab: Prefab, parent: Node, outTilePos?: Vec3): Node {\r\n let array = StringUtil.stringToArray1(data);\r\n let x = parseInt(array[0]);\r\n let y = parseInt(array[1]);\r\n if (outTilePos) outTilePos.set(x, y);\r\n let node = instantiate(prefab)!;\r\n node.setParent(parent);\r\n let pos = MapRoadUtils.instance.getPixelByDerect(x, y);\r\n node.setPosition(v3(pos.x, pos.y));\r\n LayerUtil.setNodeLayer(LayerUtil.MAP, node);\r\n return node;\r\n }\r\n /** 添加转场点 */\r\n private addDelivery() {\r\n }\r\n /** 生成碰撞点 */\r\n private createCollisionPoint(map: any, tilePos: Vec3, data: any) {\r\n let center: string = `${tilePos.x},${tilePos.y}`;\r\n let top: string = `${tilePos.x},${tilePos.y + 1}`;\r\n let bottom: string = `${tilePos.x},${tilePos.y - 1}`;\r\n let left: string = `${tilePos.x - 1},${tilePos.y}`;\r\n let left_top: string = `${tilePos.x - 1},${tilePos.y + 1}`;\r\n let left_bottom: string = `${tilePos.x - 1},${tilePos.y - 1}`;\r\n let right: string = `${tilePos.x + 1},${tilePos.y}`;\r\n let right_top: string = `${tilePos.x + 1},${tilePos.y + 1}`;\r\n let right_bottom: string = `${tilePos.x + 1},${tilePos.y - 1}`;\r\n map.set(center, data);\r\n map.set(top, data);\r\n map.set(bottom, data);\r\n map.set(left, data);\r\n map.set(left_top, data);\r\n map.set(left_bottom, data);\r\n map.set(right, data);\r\n map.set(right_top, data);\r\n map.set(right_bottom, data);\r\n }\r\n private clearBuildMap(){\r\n if(!this.buildMap){\r\n return;\r\n }\r\n for(let key in this.buildMap){\r\n this.buildMap[key].desTroy();\r\n }\r\n this.buildMap.clear();\r\n }\r\n /**清理关卡数据*/\r\n private clearGuanQia(){\r\n this.clearOther();\r\n\r\n this.showNewScence();\r\n }\r\n desTory(){\r\n this.clearOther();\r\n this.node.removeAllChildren();\r\n }\r\n clearOther(){\r\n if(this.nowBoss){\r\n this.nowBoss.desTory();\r\n }\r\n this.nowBoss = null;\r\n if(this.nowFubenBoss){\r\n this.nowFubenBoss.desTory();\r\n }\r\n this.nowFubenBoss = null;\r\n this.gebolinMap.forEach(p => {\r\n if(p){\r\n p.desTory();\r\n }\r\n });\r\n this.gebolinMap.clear();\r\n this.gebolinMap = new Map();\r\n \r\n this.heroMap.forEach(p => {\r\n if(p){\r\n p.desTory();\r\n }\r\n });\r\n this.heroMap.clear();\r\n this.heroMap = new Map()\r\n\r\n this.copyheroMap.forEach(p => {\r\n if(p){\r\n p.desTory();\r\n }\r\n });\r\n this.copyheroMap.clear();\r\n this.copyheroMap = new Map()\r\n\r\n this.buildMap.forEach(p => {\r\n if(p){\r\n p.desTroy();\r\n }\r\n });\r\n this.clearBuildMap();\r\n this.buildMap = new Map();\r\n\r\n this.lockBuildMap.forEach(p => {\r\n if(p){\r\n p.desTroy();\r\n }\r\n });\r\n this.lockBuildMap.clear();\r\n this.buildMap = new Map();\r\n GameModleComp.getInstance().jinzhanPointIndex = 0;\r\n GameModleComp.getInstance().jinzhanPointArr = [];\r\n GameModleComp.getInstance().yuanchengPointIndex = 0;\r\n GameModleComp.getInstance().yuanchengPointArr = [];\r\n GameModleComp.getInstance().heroJinzhanPointIndex = 0;\r\n GameModleComp.getInstance().heroJinzhanPointArr = [];\r\n GameModleComp.getInstance().heroYuanchengPointIndex = 0;\r\n GameModleComp.getInstance().heroYuanchengPointArr = [];\r\n GameModleComp.getInstance().fuhuoMap.clear();\r\n for(let i = 0 ; i < GameModleComp.getInstance().fuhuoPreArr.length ; i++){\r\n GameModleComp.getInstance().fuhuoPreArr[i].desTory();\r\n }\r\n GameModleComp.getInstance().fuhuoPreArr = [];\r\n this.nowScene.desTory();\r\n let id:number = GameModleComp.getInstance().selectGuankaId;\r\n }\r\n}\r\n","import { Camera, CCBoolean, Component, EventTouch, Node, screen, Size, Texture2D, UITransform, Vec2, Vec3, view, _decorator, Prefab, instantiate, tween, Sprite } from \"cc\";\r\nimport MapData from \"./base/MapData\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { RoadType } from \"./road/RoadType\";\r\nimport RoadNode from \"./road/RoadNode\";\r\nimport IRoadSeeker from \"./road/IRoadSeeker\";\r\nimport MapRoadUtils from \"./road/MapRoadUtils\";\r\nimport AstarHoneycombRoadSeeker from \"./road/AstarHoneycombRoadSeeker\";\r\nimport AStarRoadSeeker from \"./road/AStarRoadSeeker\";\r\nimport MapLayer from \"./layer/MapLayer\";\r\nimport MapParams from \"./base/MapParams\";\r\nimport { MapLoadModel } from \"./base/MapLoadModel\";\r\nimport { MapType } from \"./base/MapType\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { Point } from \"electron/main\";\r\nimport { RoleViewHitHpPrompt } from \"./RoleViewHitHpPrompt\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { FightMapEnum, RoleTypeEnum } from \"../enum/Enum\";\r\nimport { Pass, PassPoxy } from \"../modules/game/proxy/PassPoxy\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { ThiefRoleViewComp } from \"../role/ThiefRoleViewComp\";\r\nimport { FuBen, FuBenProxy } from \"../modules/game/proxy/FuBenProxy\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n\r\n/**\r\n * 地图场景逻辑\r\n * 1、地图摄像机跟随角色位置移动\r\n */\r\n@ccclass('MapViewScene')\r\nexport class MapViewScene extends Component {\r\n @property(Camera)\r\n public mapCamera :Camera = null;\r\n\r\n @property(Node)\r\n public layer: Node | null = null;\r\n\r\n @property(MapLayer)\r\n public mapLayer: MapLayer | null = null;\r\n\r\n @property(Node)\r\n public mapEffNode: Node | null = null;\r\n\r\n\r\n @property(Node)\r\n public footEffNode: Node | null = null;\r\n @property(Node)\r\n public sharLayer: Node | null = null;\r\n\r\n @property(Node)\r\n public heroLayer: Node | null = null;\r\n @property(Node)\r\n public bossLayer: Node | null = null;\r\n @property(Node)\r\n public gebolinLayer: Node | null = null;\r\n @property(Node)\r\n public hpLayer: Node | null = null;\r\n @property(Node)\r\n public cdLayer: Node | null = null;\r\n\r\n @property(Node)\r\n public topEffNode: Node | null = null;\r\n @property(Node)\r\n public mapLayerTop : Node = null;\r\n\r\n @property(Node)\r\n public floorLayer: Node | null = null;\r\n\r\n @property(Node)\r\n public EffectLayer: Node | null = null;\r\n @property(Node)\r\n public restLayer: Node | null = null;\r\n\r\n @property(Node)\r\n public Hitlayer: Node | null = null;\r\n \r\n @property(Node)\r\n public testLayer: Node | null = null;\r\n\r\n @property(Prefab)\r\n public gebulin : Prefab = null;\r\n @property(Prefab)\r\n public boss : Prefab = null;\r\n @property(Prefab)\r\n public hero : Prefab = null;\r\n @property(Prefab)\r\n public build : Prefab = null;\r\n @property(Prefab)\r\n public buildTop : Prefab = null;\r\n @property(Prefab)\r\n public mapTest : Prefab = null;\r\n @property(Prefab)\r\n public loadingUI : Prefab = null;\r\n @property(Prefab)\r\n public mubei:Prefab = null;\r\n @property(Prefab)\r\n public fuhuodian:Prefab = null;\r\n \r\n @property(Prefab)\r\n public fuhuoTop:Prefab = null;\r\n @property(Prefab)\r\n public fuhuoFloor:Prefab = null;\r\n\r\n @property(Prefab)\r\n hpPromptPre : Prefab = null;\r\n /** 受击生命提示 */\r\n hpPrompt: RoleViewHitHpPrompt = null!;\r\n\r\n /** 2D转3D位置比例值 */\r\n ratio: Vec2 = new Vec2();\r\n\r\n private _roadDic: { [key: string]: RoadNode } = {};\r\n private _roadSeeker!: IRoadSeeker;\r\n private _mapParams: MapParams | null = null;\r\n\r\n private targetPos: Vec3 = new Vec3(0,0,0); // 摄像机位置\r\n private winSize!: Size; // 屏幕尺寸\r\n private screenCenter: Vec3 = new Vec3(); // 屏幕中心位置\r\n private boundary: Vec2 = new Vec2(); // 边界位置\r\n\r\n \r\n onLoad() {\r\n this.enabled = false;\r\n }\r\n\r\n start() {\r\n }\r\n private addEvent(){\r\n Logger.logView(\"scene add event\");\r\n this.mapLayer.node.on(Node.EventType.TOUCH_START, this.onMapMouseDown, this );\r\n this.mapLayer.node.on(Node.EventType.TOUCH_MOVE, this.onMapMouseMove, this);\r\n this.mapLayer.node.on(Node.EventType.TOUCH_END, this.onMapMouseEnd, this);\r\n this.node.on(Node.EventType.TOUCH_START, this.onMapMouseDown, this,true);\r\n this.node.on(Node.EventType.TOUCH_MOVE, this.onMapMouseMove, this,true);\r\n this.node.on(Node.EventType.TOUCH_END, this.onMapMouseEnd, this,true);\r\n }\r\n loadSlices(){\r\n this.winSize = new Size(720,1422)//view.getVisibleSize();\r\n this.mapLayer!.loadSliceImage(this._mapParams.mapWidth , this._mapParams.mapHeight);\r\n this.mapLayer.addMoveEvent();\r\n this.winSize = new Size(720,1422)//view.getVisibleSize();\r\n this.addEvent();\r\n setTimeout(() => {\r\n let mapId:number = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId).mapId;\r\n let arr:Array = MapPoxy.Inst.getMapById(mapId).ay_camera;\r\n let v3:Vec3 = MapRoadUtils.AStarToPoint(new Vec3(Number(arr[0]) , Number(arr[1]) , 0))\r\n this.setViewToPoint(v3.x,v3.y)\r\n }, 500);\r\n }\r\n /***摄像机给到小偷*/\r\n public changeToThief(){\r\n if(GameEntry.Inst.mapView.thief && GameEntry.Inst.mapView.thief.node){\r\n /**小偷当前位置*/\r\n let point:Vec3 = GameEntry.Inst.mapView.thief.node.position;\r\n this.setViewToPoint(point.x - 300 ,point.y-500);\r\n }\r\n }\r\n /** 计算摄像机位置 */\r\n private calculateCameraPos(isLerp: boolean, dt: number = 0) {\r\n if (this.targetPos.x > this.boundary.x) {\r\n this.targetPos.x = this.boundary.x;\r\n }\r\n else if (this.targetPos.x < 0) {\r\n this.targetPos.x = 0;\r\n }\r\n\r\n if (this.targetPos.y > this.boundary.y) {\r\n this.targetPos.y = this.boundary.y;\r\n }\r\n else if (this.targetPos.y < 0){\r\n this.targetPos.y = 0;\r\n }\r\n this.targetPos.z = this.mapCamera!.node.position.z;\r\n if (isLerp) {\r\n this.targetPos = this.mapCamera!.node.position.lerp(this.targetPos, dt * 15.0); // 不线性差值位置就是正确的\r\n }\r\n this.mapCamera!.node.position = this.targetPos;\r\n\r\n }\r\n\r\n public init(mapData: MapData, bgTex?: Texture2D, mapLoadModel: MapLoadModel = 1) {\r\n this.winSize = new Size(720,1422)//view.getVisibleSize();\r\n MapRoadUtils.instance.updateMapInfo(mapData.mapWidth, mapData.mapHeight, mapData.nodeWidth, mapData.nodeHeight, mapData.type);\r\n\r\n // 初始化底图参数\r\n if (this._mapParams == null) this._mapParams = new MapParams();\r\n\r\n this._mapParams.name = mapData.name;\r\n this._mapParams.bgName = mapData.bgName;\r\n this._mapParams.mapType = mapData.type;\r\n this._mapParams.mapWidth = mapData.mapWidth;\r\n this._mapParams.mapHeight = mapData.mapHeight;\r\n this._mapParams.ceilWidth = mapData.nodeWidth;\r\n this._mapParams.ceilHeight = mapData.nodeHeight;\r\n\r\n this._mapParams.viewWidth = mapData.mapWidth > this.winSize.width ? this.winSize.width : mapData.mapWidth;\r\n this._mapParams.viewHeight = mapData.mapHeight > this.winSize.height ? this.winSize.height : mapData.mapHeight;\r\n this._mapParams.sliceWidth = 256;\r\n this._mapParams.sliceHeight = 256;\r\n this._mapParams.bgTex = bgTex;\r\n this._mapParams.mapLoadModel = mapLoadModel;\r\n this.boundary.x = this._mapParams!.mapWidth - 720//this.winSize.width;\r\n this.boundary.y = this._mapParams.mapHeight-1422//this.winSize.height;//this._mapParams!.mapHeight - this.winSize.height;\r\n this.mapLayer!.init(this._mapParams);\r\n\r\n var len: number = mapData.roadDataArr.length;\r\n var len2: number = mapData.roadDataArr[0].length;\r\n\r\n var value: number = 0;\r\n var dx: number = 0;\r\n var dy: number = 0;\r\n\r\n for (var i: number = 0; i < len; i++) {\r\n for (var j: number = 0; j < len2; j++) {\r\n value = mapData.roadDataArr[i][j];\r\n dx = j;\r\n dy = i;\r\n\r\n var node: RoadNode = MapRoadUtils.instance.getNodeByDerect(dx, dy);\r\n node.value = value;\r\n this._roadDic[node.cx + \"_\" + node.cy] = node;\r\n }\r\n }\r\n\r\n // 换新地图必须重置地形数据\r\n if (mapData.type == MapType.honeycomb) {\r\n this._roadSeeker = new AstarHoneycombRoadSeeker(this._roadDic);\r\n }\r\n else {\r\n this._roadSeeker = new AStarRoadSeeker(this._roadDic);\r\n }\r\n\r\n var uiTransform = this.node.getComponent(UITransform);\r\n\r\n if (uiTransform) {\r\n uiTransform.width = this.mapLayer!.width;\r\n uiTransform.height = this.mapLayer!.height;\r\n }\r\n }\r\n\r\n public setNodeType(cx: number, cy: number, type: RoadType) {\r\n this._roadDic[cx + \"_\" + cy].value = type;\r\n }\r\n\r\n public getMapNodeByPixel(px: number, py: number): RoadNode {\r\n var point: Point = MapRoadUtils.instance.getWorldPointByPixel(px, py);\r\n var node: RoadNode = this._roadDic[point.x + \"_\" + point.y];\r\n return node;\r\n }\r\n\r\n public checkPointCanMove(nodePos: Vec3) {\r\n var point: Point = MapRoadUtils.instance.getWorldPointByPixel(nodePos.x, nodePos.y);\r\n var v = this._roadDic[point.x + \"_\" + point.y].value;\r\n let rb = true;\r\n if (v == 1) {\r\n rb = false;\r\n }\r\n return rb;\r\n }\r\n private isTouchDown:boolean = false;\r\n private beginPoint:Vec2 = new Vec2(0,0);\r\n private originPoint:Vec2 = new Vec2(0,0);\r\n private endPoint:Vec2 = new Vec2(0,0);\r\n private distPoint:Vec2 = new Vec2(0,0);\r\n private movePoint:Vec2 = new Vec2(0,0)\r\n\r\n public onMapMouseDown(event: EventTouch): void {\r\n\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n this.isTouchDown = true;\r\n this.beginPoint.x = event.touch.getLocationX();\r\n this.beginPoint.y = event.touch.getLocationY();\r\n\t\tthis.originPoint.x = this.mapCamera.node.position.x;\r\n this.originPoint.y = this.mapCamera.node.position.y;\r\n }\r\n public onMapMouseMove(event: EventTouch): void {\r\n\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n if(!this.isTouchDown){\r\n return;\r\n }\r\n this.endPoint.x = event.touch.getLocationX();\r\n this.endPoint.y = event.touch.getLocationY();\r\n this.distPoint.x = this.beginPoint.x - this.endPoint.x;\r\n this.distPoint.y = this.beginPoint.y - this.endPoint.y;\r\n this.movePoint.x = this.originPoint.x + this.distPoint.x;\r\n this.movePoint.y = this.originPoint.y + this.distPoint.y;\r\n this.setViewToPoint(this.movePoint.x , this.movePoint.y);\r\n }\r\n public onMapMouseEnd(event: EventTouch): void {\r\n\r\n if(GameModleComp.getInstance().isInCopy){\r\n return;\r\n }\r\n this.isTouchDown = false;\r\n }\r\n\r\n update(dt: number) {\r\n if(!this.node.active){\r\n return;\r\n }\r\n if(GameEntry.Inst.flowObj){\r\n this.followPlayer(dt);\r\n }else{\r\n\r\n }\r\n }\r\n\r\n /**\r\n * 视图跟随某个对象\r\n * @param dt \r\n */\r\n public followPlayer(dt: number) {\r\n if(GameEntry.Inst.flowObj){\r\n if (GameEntry.Inst.flowObj!.pos) {\r\n this.targetPos = GameEntry.Inst.flowObj!.pos.clone().subtract(this.screenCenter); // 摄像机位置为屏幕剧中\r\n this.calculateCameraPos(true, dt);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 把视野定位到给定位置 \r\n * @param px\r\n * @param py\r\n */\r\n public setViewToPoint(px: number, py: number): void {\r\n this.targetPos = new Vec3(px, py).subtract(this.screenCenter); // 摄像机位置为屏幕剧中\r\n this.calculateCameraPos(false);\r\n }\r\n \r\n public readyMovePlayer(role: BaseRole, touPos: Vec3, offset: number, callback?: Function) {\r\n var newPos: Vec3 = new Vec3();\r\n this.movePlayer(role, touPos.x, touPos.y, offset, callback);\r\n }\r\n \r\n\r\n public readyShiftMoveRole(role: BaseRole, touPos: Vec3, offset: number, callback?: Function) {\r\n var newPos: Vec3 = new Vec3();\r\n this.movePlayer(role, touPos.x, touPos.y, offset, callback, true);\r\n }\r\n\r\n /**\r\n * 移动玩家 \r\n * @param targetX 移动到的目标点x\r\n * @param targetY 移到到的目标点y\r\n */\r\n public movePlayer(role: BaseRole, targetX: number, targetY: number, offset: number, callback?: Function, isShift: boolean = false) {\r\n if(role.RoleType == RoleTypeEnum.GeBuLin){\r\n (role as GebolinView).fangxiangNode.scale = role.node.position.x > targetX ? new Vec3(-1 , 1, 1) :new Vec3(1 , 1, 1) ;\r\n (role as GebolinView).fangxiang = role.node.position.x > targetX ? 1 : 0;\r\n }\r\n if(role.RoleType == RoleTypeEnum.Hero){\r\n (role as GebolinView).fangxiangNode.scale = role.node.position.x > targetX ? new Vec3(-1 , 1, 1) :new Vec3(1 , 1, 1) ;\r\n }\r\n let pos = MapRoadUtils.toAStarPoint(new Vec3(targetX, targetY, 1));\r\n var startPoint: Point = MapRoadUtils.instance.getWorldPointByPixel(role.node.position.x, role.node.position.y);\r\n var targetPoint: Point = new Vec2(pos.x, pos.y)\r\n\r\n var startNode: RoadNode = this._roadDic[startPoint.x + \"_\" + startPoint.y];\r\n var targetNode: RoadNode = this._roadDic[targetPoint.x + \"_\" + targetPoint.y];\r\n\r\n let speed: number = role.modle ? role.modle.speed : 300;\r\n if (startNode != targetNode) {\r\n var roadNodeArr: RoadNode[] = this._roadSeeker.seekPath2(startNode, targetNode); // 点击到障碍点会行走到离障碍点最近的可走路点\r\n\r\n if (roadNodeArr.length > 0) {\r\n role.charactor!.walkByRoad(roadNodeArr, speed, offset, callback);\r\n }\r\n }\r\n else {\r\n role.charactor!.walkByRoad([startNode], speed, offset, callback);\r\n }\r\n }\r\n /**移动小偷*/\r\n public moveThief(role: ThiefRoleViewComp, targetX: number, targetY: number, offset: number, callback?: Function, isShift: boolean = false) {\r\n role.fangxiangNode.scale = role.node.position.x > targetX ? new Vec3(1 , 1, 1) :new Vec3(-1 , 1, 1) ;\r\n let pos = MapRoadUtils.toAStarPoint(new Vec3(targetX, targetY, 1));\r\n var startPoint: Point = MapRoadUtils.instance.getWorldPointByPixel(role.node.position.x, role.node.position.y);\r\n var targetPoint: Point = new Vec2(pos.x, pos.y)\r\n\r\n var startNode: RoadNode = this._roadDic[startPoint.x + \"_\" + startPoint.y];\r\n var targetNode: RoadNode = this._roadDic[targetPoint.x + \"_\" + targetPoint.y];\r\n\r\n let speed: number = role.speed;\r\n if (startNode != targetNode) {\r\n var roadNodeArr: RoadNode[] = this._roadSeeker.seekPath2(startNode, targetNode); // 点击到障碍点会行走到离障碍点最近的可走路点\r\n if (roadNodeArr.length > 0) {\r\n role.charactor!.walkByRoad(roadNodeArr, speed, offset, callback);\r\n }\r\n }\r\n else {\r\n role.charactor!.walkByRoad([startNode], speed, offset, callback);\r\n }\r\n }\r\n\r\n zoomToLocation(scale) {\r\n this.node.scale = new Vec3(scale,scale,0);\r\n\r\n }\r\n\r\n desTory(){\r\n if(this.floorLayer){\r\n this.floorLayer.removeAllChildren()\r\n this.heroLayer.removeAllChildren()\r\n this.mapLayerTop.removeAllChildren()\r\n this.EffectLayer.removeAllChildren()\r\n this.Hitlayer.removeAllChildren()\r\n this.testLayer.removeAllChildren()\r\n this.mapEffNode.removeAllChildren()\r\n this.footEffNode.removeAllChildren()\r\n this.topEffNode.removeAllChildren()\r\n this.sharLayer.removeAllChildren()\r\n this.gebolinLayer.removeAllChildren()\r\n this.bossLayer.removeAllChildren()\r\n this.hpLayer.removeAllChildren()\r\n this.cdLayer.removeAllChildren()\r\n this.restLayer.removeAllChildren()\r\n }\r\n\r\n if(GameEntry.Inst.mapView.mapType == FightMapEnum.GuanQiaMap){\r\n let id:number = GameModleComp.getInstance().selectGuankaId;\r\n let pass:Pass = PassPoxy.Inst.getPassById(id);\r\n if(Number(pass.jumpmap) == 1){\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let map:Maps = MapPoxy.Inst.getMapById(pass.mapId);\r\n ResHelper.releaseDir(`map/`+map.mapSource); \r\n this._roadDic = {};\r\n this.mapLayer.node.removeAllChildren() // 清除地面显示对象\r\n this.mapLayer!.clear(); \r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n super.destroy()\r\n }\r\n }else{\r\n let fuben:FuBen = FuBenProxy.Inst.GetFubenById(GameModleComp.getInstance().transPveData.fubenId);\r\n let map:Maps = MapPoxy.Inst.getMapById(Number(fuben.map));\r\n ResHelper.releaseDir(`map/`+map.mapSource); \r\n this._roadDic = {};\r\n this.mapLayer.node.removeAllChildren() // 清除地面显示对象\r\n this.mapLayer!.clear(); \r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n super.destroy()\r\n }\r\n }\r\n\r\n}\r\n","/** 数学工具 */\r\nexport class MathUtil {\r\n /**\r\n * 角度转弧度\r\n */\r\n static deg2Rad: number = Math.PI / 180;\r\n\r\n /**\r\n * 弧度转角度\r\n */\r\n static rad2Deg: number = 180 / Math.PI;\r\n\r\n /**\r\n * 获得随机方向\r\n * @param x -1为左,1为右\r\n * @returns \r\n */\r\n static sign(x: number) {\r\n if (x > 0) {\r\n return 1;\r\n }\r\n if (x < 0) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * 随时间变化进度值\r\n * @param start 初始值\r\n * @param end 结束值\r\n * @param t 时间\r\n */\r\n static progress(start: number, end: number, t: number) {\r\n return start + (end - start) * t;\r\n }\r\n\r\n /**\r\n * 插值\r\n * @param numStart 开始数值\r\n * @param numEnd 结束数值\r\n * @param t 时间\r\n */\r\n static lerp(numStart: number, numEnd: number, t: number): number {\r\n if (t > 1) {\r\n t = 1;\r\n }\r\n else if (t < 0) {\r\n t = 0\r\n }\r\n\r\n return numStart * (1 - t) + (numEnd * t);\r\n }\r\n\r\n /**\r\n * 角度插值\r\n * @param angle1 角度1\r\n * @param angle2 角度2\r\n * @param t 时间\r\n */\r\n static lerpAngle(current: number, target: number, t: number): number {\r\n current %= 360;\r\n target %= 360;\r\n\r\n var dAngle: number = target - current;\r\n\r\n if (dAngle > 180) {\r\n target = current - (360 - dAngle);\r\n }\r\n else if (dAngle < -180) {\r\n target = current + (360 + dAngle);\r\n }\r\n\r\n return (MathUtil.lerp(current, target, t) % 360 + 360) % 360;\r\n }\r\n\r\n /**\r\n * 按一定的速度从一个角度转向令一个角度\r\n * @param current 当前角度\r\n * @param target 目标角度\r\n * @param speed 速度\r\n */\r\n static angleTowards(current: number, target: number, speed: number): number {\r\n current %= 360;\r\n target %= 360;\r\n\r\n var dAngle: number = target - current;\r\n\r\n if (dAngle > 180) {\r\n target = current - (360 - dAngle);\r\n }\r\n else if (dAngle < -180) {\r\n target = current + (360 + dAngle);\r\n }\r\n\r\n var dir = target - current;\r\n\r\n if (speed > Math.abs(dir)) {\r\n return target;\r\n }\r\n\r\n return ((current + speed * Math.sign(dir)) % 360 + 360) % 360;\r\n }\r\n\r\n /**\r\n * 获取方位内值,超过时获取对应边界值\r\n * @param value 值\r\n * @param minLimit 最小值\r\n * @param maxLimit 最大值\r\n */\r\n static clamp(value: number, minLimit: number, maxLimit: number) {\r\n if (value < minLimit) {\r\n return minLimit;\r\n }\r\n\r\n if (value > maxLimit) {\r\n return maxLimit;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * 获得一个值的概率\r\n * @param value 值\r\n */\r\n static probability(value: number) {\r\n return Math.random() < value;\r\n }\r\n}\r\n","import { _decorator, Node, Label, Button } from 'cc';\nconst { ccclass, property } = _decorator;\n\nimport BasePanel from \"../core/component/BasePanel\";\nimport Utils from \"../core/utils/Utils\";\nimport { GameManager } from \"./GameManager\";\n\n@ccclass('MessageBox')\nexport default class MessageBox extends BasePanel {\n onBtnClicked(e: any, name: string) {\n let callback: Function = this.data.callback;\n if (name == \"btn_close\") {\n this.close(true);\n }\n else {\n this.close(true)\n if (callback) {\n callback(true)\n }\n }\n }\n node_time: Node | null = null;\n lbl_content: Label | null = null;\n lbl_time: Label | null = null;\n onShow(data: any): void {\n this.lbl_content.string = data.content + \"\";\n\n this.node_time.active = false;\n if (data.disable_login_endtime > GameManager.Instance().NowSecond()) {\n this.node_time.active = true;\n this.lbl_time.string = Utils.getTimeStrByS(data.disable_login_endtime - GameManager.Instance().NowSecond(), true)\n }\n\n if (data.showcancle == false)\n this.btn_close.node.active = false;\n\n if (data.notclose) {\n this.btn_sure.interactable = false;\n }\n }\n btn_close: Button | null = null;\n btn_sure: Button | null = null;\n}","import { _decorator } from 'cc';\nexport function save(target: any, keyName: string) {\n let arr = ModeBase.classMap.get(target.constructor);\n if (arr === undefined) {\n arr = [];\n ModeBase.classMap.set(target.constructor, arr);\n }\n arr.push(keyName);\n}\n\nexport default class ModeBase {\n protected save_key = \"base_key\"\n public static classMap: Map = new Map();\n public getData(): object {\n let data = {}\n let savepars = ModeBase.classMap.get(this.constructor)\n for (let i = 0; i < savepars.length; ++i) {\n data[savepars[i]] = this[savepars[i]];\n }\n return data;\n }\n public setData(data: any) {\n //初始化下数据 \n if (!data) return;\n let savepars = ModeBase.classMap.get(this.constructor)\n for (let i = 0; i < savepars.length; ++i) {\n const element = data[savepars[i]];\n if (element != null || element != undefined) {\n if (Object.prototype.toString.call(element) == \"[object Object]\") {\n for (const key in element) {\n this[savepars[i]][key] = element[key];\n }\n }\n else\n this[savepars[i]] = element;\n }\n }\n }\n}","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport Point from '../../../map/road/Point';\nimport { Vec2 } from 'cc';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class ModelPoxy {\n private static _inst: ModelPoxy;\n public static get Inst(): ModelPoxy {\n if (ModelPoxy._inst == null) {\n ModelPoxy._inst = new ModelPoxy();\n }\n return ModelPoxy._inst;\n }\n @res_assign(\"Model\")\n public datas: Model[]; \n public get datasAchieve(){\n if(!this.datas){\n this.datas =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"Model\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"Model\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.datas.push(achieveitem);\n }\n\n }\n return this.datas;\n }\n public getModelById(id:number):Model{\n if(this.datas){\n return this.datas.find(element=>element.id==id); \n }else{\n \n this.datas = this.datasAchieve;\n return this.datas.find(element=>element.id==id); \n }\n }\n}\n\nexport class Model {\n /** 建筑id */\n ay_Soldiers: Array;\n ay_battle: Array;\n ay_clear: Array;\n ay_equip: Array;\n ay_fight: Array;\n ay_map:Array;\n id: number;\n}","import { _decorator } from 'cc';\r\n\r\nexport class ModelUser {\r\n blacklist: number = 0;\r\n query: any = {};\r\n scene: number = 0;\r\n systemInfo: any = {};\r\n // nickName: string = \"\";\r\n avatarUrl: string = \"\";\r\n new_player: boolean = false;//登录服务器返回\r\n // js_code: string = \"\";\r\n Server: number = 0; //服务器id\r\n Userid: number = 0;\r\n openid: string = \"\"; //登录服务器返回\r\n is_register: boolean = false;\r\n ChapterID = 1; //最高章节\r\n\r\n //玩家等级\r\n Level: number = 0;\r\n Exp: number = 0;\r\n Regdate = 0;//注册时间\r\n /** 钻石 */\r\n _Diamond = 0;\r\n public get Diamond() {\r\n return Math.max(this._Diamond, 0)\r\n }\r\n public set Diamond(value: number) {\r\n this._Diamond = value\r\n }\r\n /** 金币 */\r\n _Gold = 0;\r\n public get Gold() {\r\n return Math.max(this._Gold, 0)\r\n }\r\n public set Gold(value: number) {\r\n this._Gold = value\r\n }\r\n _Power = 0;\r\n public get Power(): number {\r\n return Math.max(this._Power, 0);\r\n }\r\n public set Power(value: number) {\r\n this._Power = value\r\n }\r\n\r\n nickname = \"\";\r\n modify_nickname_time = 0;\r\n head_id = 0;\r\n head_frame_id = 0;\r\n TotalChargeMoney: number = 0;//累计充值rmb\r\n}","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager, { ConfigFileType } from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport ResHelper from '../../../core/manager/ResHelper';\nimport { JsonAsset } from 'cc';\nimport { error } from 'cc';\n@res_auto_bind()\nexport class MonsterPoxy {\n private static _inst: MonsterPoxy;\n public static get Inst(): MonsterPoxy {\n if (MonsterPoxy._inst == null) {\n MonsterPoxy._inst = new MonsterPoxy();\n }\n return MonsterPoxy._inst;\n }\n @res_assign(\"Monster\")\n public datas: Monster[]; \n public get datasAchieve(){\n if(!this.datas){\n this.datas =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"Monster\"))\n {\n let achieveitem = ConfigManager.GetInstance().getValue(\"Monster\")[key];\n if(achieveitem){\n for(var keys in achieveitem){\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys,achieveitem[keys]);\n }\n this.datas.push(achieveitem);\n }\n\n }\n return this.datas;\n }\n\n cfgData;\n getData(){\n this.cfgData = ConfigManager.GetInstance().getValue(\"Monster\")\n }\n public getMonsterById(id:number){\n let cfg = ConfigManager.GetInstance().getValue(\"Monster\")[id];\n for(var keys in cfg){\n cfg[keys] = GlobalFunction.Inst.ParamDef(keys,cfg[keys]);\n }\n return cfg;\n }\n\n\n // public getMonsterById(id:number){\n // if(this.datas){\n // return this.datas.find(element=>element.id==id); \n // }else{\n \n // this.datas = this.datasAchieve;\n // return this.datas.find(element=>element.id==id); \n // }\n // }\n}\n\n\n\nexport class Monster {\n /** 序号 */\n id: number;\n /** 攻击 */\n atk: number;\n /** 防御*/\n def: number;\n /** 血量 */\n hp: number;\n cs:number;\n vi:number;\n /** 攻击距离 */\n attackRange: number;\n /** buffID */\n ay_buff: Array;\n /** 普攻动作 */\n bulletmodel: string;\n /** 击中动作 */\n hitEffect: string;\n /** 模型 */\n modle: string;\n /** 模型缩放 */\n v3_scale: string;\n scale: number;\n attackSpeed:number;\n attackDistance:number;\n gold:number;\n time:number;\n}","import { _decorator } from 'cc';\nimport { c1220, s1220, c1217, s1217, c1218, s1218, p_reward } from '../../../proto/proto';\nimport { res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class MonthCardProxy {\n private static _inst: MonthCardProxy;\n public static get Inst(): MonthCardProxy {\n if (MonthCardProxy._inst == null) {\n MonthCardProxy._inst = new MonthCardProxy();\n }\n return MonthCardProxy._inst;\n }\n // @res_assign(\"PayInfo\")\n // public PayInfoDataList: PayInfo[];\n // public InitPayInfoConfig() {\n // if (this.PayInfoDataList == null) {\n // this.PayInfoDataList = [];\n // }\n // let PayInfoDataConfig = ConfigManager.GetInstance().getValue(\"PayInfo\")\n // for (var key in PayInfoDataConfig) {\n // let item = ConfigManager.GetInstance().getValue(\"PayInfo\")[key];\n // if (item) {\n // for (var keys in item) {\n // item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n // }\n // this.PayInfoDataList.push(item);\n // }\n\n // }\n // }\n\n // /** 根据id获取payinfo */\n // public GetPayInfoDataByID(id: number) {\n // if (id == undefined) return undefined;\n // if (this.PayInfoDataList == null) {\n // this.InitPayInfoConfig();\n // }\n // let data: PayInfo = this.PayInfoDataList.find(item => item.id == id);\n // if (data) {\n // return data;\n // }\n // return null;\n // } \n\n\n /***==========================服务器数据存储============================== */\n public CardEndTime: number;//普通月卡到期时间\n public monthDayState: number;//普通月卡領取狀態0未领取,1已领取\n public CardRewardList: p_reward[];//普通月卡奖励\n public CardDayRewardList: p_reward[];//普通月卡每日奖励\n\n\n public SuperCardEndTime: number;//超级月卡到期时间\n public sMonthDayState: number;//超級月卡領取狀態0未领取,1已领取\n public SuperCardRewardList: p_reward[];//超级月卡每日奖励\n public SuperDayCardRewardList: p_reward[];//超级月卡奖励\n\n public SendC1217(type: number) {\n //月卡每日奖励领取\n var c1217: c1217 = { type };\n send2client(\"c1217\", c1217);\n }\n\n\n public SendC1218() {\n //月卡界面信息\n Logger.logNet(\"==============发送====c1218=============\");\n var c1218: c1218 = {};\n send2client(\"c1218\", c1218);\n }\n}\n\n/**月卡每日奖励领取 */\nexport function do_s1217(s1217: s1217) {\n Logger.logNet(\"===================接收是1217================\" + s1217.result);\n if (s1217.result == undefined) {\n // int32 type=2; // 1-普通月卡,1-超级月卡\n // int32 pay=3; // 是否包含首充奖励,0-不包含,1-包含\n //repeated p_reward rewards=4; // 获得的奖励\n\n var data = new BoxData\n {\n data.rewards = s1217.rewards\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n}\n\n/**月卡界面信息 */\nexport function do_s1218(s1218: s1218) {\n\n Logger.logNet(\"===================接收是1218====================\");\n MonthCardProxy.Inst.CardEndTime = GlobalFunction.ConvertUndefinedToNumber(s1218.monthTime);\n MonthCardProxy.Inst.SuperCardEndTime =GlobalFunction.ConvertUndefinedToNumber( s1218.sMonthTime);\n MonthCardProxy.Inst.monthDayState =GlobalFunction.ConvertUndefinedToNumber(s1218.monthDayState);\n MonthCardProxy.Inst.sMonthDayState = GlobalFunction.ConvertUndefinedToNumber(s1218.sMonthDayState);\n\n //普通月卡奖励\n if (MonthCardProxy.Inst.CardRewardList != undefined) {\n MonthCardProxy.Inst.CardRewardList.length = 0;\n }\n MonthCardProxy.Inst.CardRewardList = s1218.monthPayRewards;\n //普通月卡每日\n if (MonthCardProxy.Inst.CardDayRewardList != undefined) {\n MonthCardProxy.Inst.CardDayRewardList.length = 0;\n }\n MonthCardProxy.Inst.CardDayRewardList = s1218.monthDayRewards;\n\n\n //超级月卡奖励\n if (MonthCardProxy.Inst.SuperCardRewardList != undefined) {\n MonthCardProxy.Inst.SuperCardRewardList.length = 0;\n }\n\n MonthCardProxy.Inst.SuperCardRewardList = s1218.sMonthPayRewards;\n\n //超级月卡每日\n if (MonthCardProxy.Inst.SuperDayCardRewardList != undefined) {\n MonthCardProxy.Inst.SuperDayCardRewardList.length = 0;\n }\n MonthCardProxy.Inst.SuperDayCardRewardList = s1218.sMonthDayRewards;\n\n // for(let i=0;i0;\n if(!this.Label_timemoon.active)return;\n let startTime = GameModleComp.getInstance().serverTime;\n let secondTime = MonthCardProxy.Inst.CardEndTime;\n let different = secondTime - startTime;\n let timelabel = this.Label_timemoon.getComponent(Label);\n if (different > 0) {\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(different);\n this.timeCardCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(different);\n } else {\n this.unschedule(this.timeDayCallback);\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(different);\n }\n }\n this.schedule(this.timeCardCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(0);\n }\n }\n ShowSuperCardTime() {\n\n if (this.timeSuperCardCallback) {\n this.unschedule(this.timeSuperCardCallback);\n }\n this.Label_timesupermoon.active = MonthCardProxy.Inst.SuperCardEndTime-GameModleComp.getInstance().serverTime>0;\n if(!this.Label_timesupermoon.active)return;\n let startTime = GameModleComp.getInstance().serverTime;\n let secondTime = MonthCardProxy.Inst.SuperCardEndTime;\n let different = secondTime - startTime;\n let timelabel = this.Label_timesupermoon.getComponent(Label);\n if (different > 0) {\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(different);\n this.timeSuperCardCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(different);\n } else {\n this.unschedule(this.timeSuperCardCallback);\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(different);\n }\n }\n this.schedule(this.timeSuperCardCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowMonthCardTime(0);\n }\n }\n /**刷新界面 */\n UpdateMonthCardUI() {\n\n\n this.ShowCardTime();\n this.ShowSuperCardTime();\n\n let cardPayInfo = PayInfoProxy.Inst.GetPayInfoDataByID(this.cardPayId);\n let superCardPayInfo = PayInfoProxy.Inst.GetPayInfoDataByID(this.superCardPayId);\n if(cardPayInfo){\n this.Label_buymoon.getComponent(Label).string = GlobalFunction.ShowMonyDec(this.cardPayId);\n }\n if(superCardPayInfo){\n this.Label_buysupermoon.getComponent(Label).string = GlobalFunction.ShowMonyDec(this.superCardPayId);\n }\n\n //普通月卡\n let Label_moondec1 = this.Label_moondec1.getComponent(Label);\n let Label_moondec2 = this.Label_moondec2.getComponent(Label);\n if(MonthCardProxy.Inst.CardRewardList!=undefined &&MonthCardProxy.Inst.CardRewardList.length>0){\n let p_reward = MonthCardProxy.Inst.CardRewardList[0];\n let monthitem= ItemProxy.Inst.GetItemDataByID(p_reward.id)\n Label_moondec2.string = StringUtil.stringFormat( GlobalFunction.GetMsg(20202),monthitem.lan_name,p_reward.num)\n }\n if(MonthCardProxy.Inst.CardRewardList!=undefined &&MonthCardProxy.Inst.CardRewardList.length>1){\n let p_reward1 = MonthCardProxy.Inst.CardRewardList[1];\n let monthitem1= ItemProxy.Inst.GetItemDataByID(p_reward1.id)\n Label_moondec1.string = StringUtil.stringFormat( GlobalFunction.GetMsg(20202),monthitem1.lan_name,p_reward1.num)\n }\n\n this.prefabitemmoon = this.itemmoon;\n this.Layout_itemmoon.removeAllChildren();\n for (let i = 0; i < MonthCardProxy.Inst.CardDayRewardList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabitemmoon);\n if (itemNode) {\n itemNode.parent = this.Layout_itemmoon;\n let reward = MonthCardProxy.Inst.CardDayRewardList[i];\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n if (itemdata) {\n\n let Button_item = itemNode.getChildByName(\"Button_itemmoon\")\n let Sprite_herositemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_herositem = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositem, itemdata.icon);\n let Label_herositem = Button_item.getChildByName(\"Labe_item\").getComponent(Label);\n Label_herositem.string = GlobalFunction.ConvertNumberWithUnit(reward.num);\n\n this.bindClickDayChildEvent(Button_item, itemdata.itemID);\n }\n }\n }\n\n\n //超级月卡\n let Label_supermoondec1 = this.Label_supermoondec1.getComponent(Label);\n let Label_supermoondec2 = this.Label_supermoondec2.getComponent(Label);\n\n\n if(MonthCardProxy.Inst.SuperCardRewardList!=undefined &&MonthCardProxy.Inst.SuperCardRewardList.length>0){\n let superp_reward = MonthCardProxy.Inst.SuperCardRewardList[0];\n let supermonthitem= ItemProxy.Inst.GetItemDataByID(superp_reward.id)\n Label_supermoondec2.string = StringUtil.stringFormat( GlobalFunction.GetMsg(20202),supermonthitem.lan_name,superp_reward.num)\n }\n if(MonthCardProxy.Inst.SuperCardRewardList!=undefined &&MonthCardProxy.Inst.SuperCardRewardList.length>1){\n let superp_reward1 = MonthCardProxy.Inst.SuperCardRewardList[1];\n let supermonthitem1= ItemProxy.Inst.GetItemDataByID(superp_reward1.id)\n Label_supermoondec1.string = StringUtil.stringFormat( GlobalFunction.GetMsg(20202),supermonthitem1.lan_name,superp_reward1.num)\n }\n \n\n this.prefabitemsupermoon = this.itemsupermoon;\n this.Layout_itemsupermoon.removeAllChildren();\n for (let i = 0; i < MonthCardProxy.Inst.SuperDayCardRewardList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabitemsupermoon);\n if (itemNode) {\n itemNode.parent = this.Layout_itemsupermoon;\n let reward = MonthCardProxy.Inst.SuperDayCardRewardList[i];\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n if (itemdata) {\n\n let Button_item = itemNode.getChildByName(\"Button_itemsupermoon\")\n let Sprite_herositemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_herositem = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositem, itemdata.icon);\n let Label_herositem = Button_item.getChildByName(\"Labe_item\").getComponent(Label);\n Label_herositem.string = GlobalFunction.ConvertNumberWithUnit(reward.num);\n\n this.bindClickDayChildEvent(Button_item, itemdata.itemID);\n }\n }\n }\n\n this.Button_buymoon.node.active=!this.Label_timemoon.active;\n this.Button_buysupermoon.node.active=!this.Label_timesupermoon.active;\n\n this.Button_getsupermoon.node.active=false;\n this.Button_getmoon.node.active =false;\n \n if(!this.Button_buymoon.node.active){\n this.Button_getmoon.node.active = MonthCardProxy.Inst.monthDayState==0\n }\n if(!this.Button_buysupermoon.node.active){\n this.Button_getsupermoon.node.active = MonthCardProxy.Inst.sMonthDayState==0\n }\n\n this.Button_getmoon.node.getComponent(Sprite).grayscale=MonthCardProxy.Inst.monthDayState!=0;\n this.Button_getsupermoon.getComponent(Sprite).grayscale=MonthCardProxy.Inst.sMonthDayState!=0;\n }\n\n\n //点击道具\n bindClickDayChildEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n if (this.timeCardCallback) {\n this.unschedule(this.timeCardCallback);\n }\n if (this.timeSuperCardCallback) {\n this.unschedule(this.timeSuperCardCallback);\n }\n this.CloseOfflineUI();\n }\n clearRes() {\n }\n}\n","import { _decorator, Component,CCInteger,CCString } from 'cc';\nconst { ccclass, property } = _decorator;\n\n@ccclass('MotionQueueData')\nexport default class MotionQueueData extends Component {\n @property(CCInteger)\n Index: number = 0\n @property(CCString)\n Group: string = \"default\";\n}","import { _decorator, Component, Label, v3, Prefab, instantiate, Node, tween, director } from 'cc';\nconst { ccclass, property } = _decorator;\n\nimport WindowManager, { UILayer } from \"../manager/WindowManager\";\nimport Utils from \"../utils/Utils\";\nimport { UITransform } from 'cc';\n\n@ccclass('MsgHints')\nexport default class MsgHints extends Component {\n setMsg(str: string) {\n this.node.getComponentInChildren(Label).string = str;\n this.node.setScale(v3(0, 0, 0));\n // this.node.y = winSize.height * 0.2;\n tween(this.node).to(0.1, { scale: v3(1.1, 1, 1) }).to(0.1, { scale: v3(0.9, 1, 1) }).to(0.1, { scale: v3(1, 1, 1) }).delay(0.5).by(0.5, { position: v3(100, 0, 0) }).removeSelf().start();\n }\n\n public static show(msg: string) {\n Utils.loadResUIOnly(\"common/MsgHints\", \"prefabs\", Prefab, (err: Error, res: Prefab) => {\n res.addRef();\n let win: Node = instantiate(res)\n win.setParent(WindowManager.Instance().getLayer(UILayer.最顶层));\n win.getComponent(MsgHints).setMsg(msg);\n });\n }\n}","import { _decorator } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { Vec3 } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { tween } from \"cc\";\r\nimport { SoundManager } from \"../core/utils/SoundManager\";\r\n\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('MuBeiItemComp')\r\nexport class MuBeiItemComp extends Component{\r\n @property ( ProgressBar)\r\n ProgressBar_time : ProgressBar = null;\r\n private _heroId: number = 0;\r\n public get heroId(): number {\r\n return this._heroId;\r\n }\r\n public set heroId(value: number) {\r\n this._heroId = value;\r\n }\r\n\r\n private _time: number = 0;\r\n public get time(): number {\r\n return this._time;\r\n }\r\n public set time(value: number) {\r\n this._time = value;\r\n if(this.time <= 0){\r\n if(!this.isHuishou){\r\n this.isHuishou = true;\r\n this.desTory();\r\n }\r\n }\r\n if(this.time==1){\r\n if(this.isJinzhan){\r\n GameModleComp.getInstance().heroJinzhanPointArr.push(this.pos);\r\n }else{\r\n GameModleComp.getInstance().heroYuanchengPointArr.push(this.pos);\r\n }\r\n }\r\n tween(this.ProgressBar_time).to(this.time , {progress : 1 }).call(()=>{\r\n if(this && this.ProgressBar_time){\r\n this.ProgressBar_time.progress = 0;\r\n }\r\n }).start();\r\n }\r\n \r\n private _isJinzhan: boolean = false;\r\n public get isJinzhan(): boolean {\r\n return this._isJinzhan;\r\n }\r\n public set isJinzhan(value: boolean) {\r\n this._isJinzhan = value;\r\n }\r\n\r\n private _pos: Vec3 = null;\r\n public get pos(): Vec3 {\r\n return this._pos;\r\n }\r\n public set pos(value: Vec3) {\r\n this._pos = value;\r\n }\r\n\r\n private isHuishou:boolean = false;\r\n\r\n init(time:number , id:number , isJinzhan:boolean , pos:Vec3){\r\n this.time = time;\r\n this.heroId = id;\r\n this.isJinzhan = isJinzhan;\r\n this.pos = pos;\r\n this.ProgressBar_time.progress = 0;\r\n }\r\n\r\n desTory(){\r\n if(GameModleComp.getInstance().fuhuoPreArr.length){\r\n let arr:Array = GameModleComp.getInstance().fuhuoPreArr;\r\n let index:number = -1;\r\n for(let i = 0 ; i < arr.length ; i++){\r\n if(arr[i].heroId == this.heroId){\r\n index = i;\r\n }\r\n }\r\n if(index >= 0){\r\n setTimeout(() => {\r\n if(this.node && this.node.parent){\r\n if(this.isJinzhan){\r\n GameModleComp.getInstance().heroJinzhanPointArr.push(this.pos);\r\n }else{\r\n GameModleComp.getInstance().heroYuanchengPointArr.push(this.pos);\r\n }\r\n if(GameModleComp.getInstance().fuhuoPreArr.length){\r\n let arr:Array = GameModleComp.getInstance().fuhuoPreArr;\r\n let index:number = -1;\r\n for(let i = 0 ; i < arr.length ; i++){\r\n if(arr[i].heroId == this.heroId){\r\n index = i;\r\n }\r\n }\r\n if(index >= 0){\r\n GameModleComp.getInstance().fuhuoPreArr.splice(index,1);\r\n }\r\n }\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n \r\n SoundManager.getInstance().playEffectMusic(\"Revive\");\r\n }\r\n }, index*3000);\r\n }\r\n }\r\n }\r\n}","/**\n * MusicProxy config配置文件\n */\nimport { _decorator } from 'cc';\nimport { c1012, s1012, c1013, s1013 } from '../../../proto/proto';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { dataUser } from '../../gameData/dataUser';\nimport { sys } from 'cc';\nimport { SoundManager } from '../../../core/utils/SoundManager';\nimport GameEntry from '../../GameEntry';\n@res_auto_bind()\nexport class MusicProxy {\n private static _inst: MusicProxy;\n public static get Inst(): MusicProxy {\n if (MusicProxy._inst == null) {\n MusicProxy._inst = new MusicProxy();\n }\n return MusicProxy._inst;\n }\n /**0开 1关 */\n musicKey :string = \"musics\"+dataUser.Instance().unitUID;\n soundKey :string= \"sounds\"+dataUser.Instance().unitUID;\n screenKey :string= \"screens\"+dataUser.Instance().unitUID;\n\n /**初始化音乐音效值 */\n public InItMusicSeting(){\n\n if(!sys.localStorage.getItem(this.musicKey)){\n sys.localStorage.setItem(this.musicKey,0)\n }\n\n if(!sys.localStorage.getItem(this.soundKey)){\n sys.localStorage.setItem(this.soundKey,0)\n }\n if(!sys.localStorage.getItem(this.screenKey)){\n sys.localStorage.setItem(this.screenKey,0)\n }\n }\n\n /**设置音乐音效值 */\n public SetMusic(show :number){\n sys.localStorage.setItem(this.musicKey,show);\n if(show == 1){\n GameEntry.Inst.mapView.playMusic();\n }else{\n SoundManager.getInstance().stopBackgroundMusic();\n }\n }\n public SetSound(show :number){\n sys.localStorage.setItem(this.soundKey,show);\n }\n public SetScreen(show :number){\n sys.localStorage.setItem(this.screenKey,show);\n }\n\n /**获取音乐音效值 */\n public GetMusicValue(){\n return sys.localStorage.getItem(this.musicKey)\n }\n public GetSoundValue(){\n return sys.localStorage.getItem(this.soundKey)\n }\n public GetScreenValue(){\n return sys.localStorage.getItem(this.screenKey)\n }\n}","// WebSocket的实现类\r\nimport Singleton from \"../manager/Singleton\";\r\nimport { login } from \"../../modules/game/login/login\"; \r\nimport { handle_data } from \"../../proto/protoHandler\";\r\nimport { Logger } from \"../../../core/common/log/Logger\";\r\nimport { BoxStyle, GlobalFunction } from \"../../modules/game/common/GlobalFunction\";\r\nimport { BoxData } from \"../../modules/game/common/Component\";\r\nimport GameEntry from \"../../modules/GameEntry\";\r\nimport WindowManager, { UILayer } from \"../manager/WindowManager\";\r\nimport GameConst from \"../common/GameConst\";\r\nimport SeverCloseUI from \"../../modules/game/boxui/SeverCloseUI\";\r\nimport { instantiate } from \"cc\";\r\n\r\n// Socket状态\r\nenum MySocketState{\r\n None = 0, // 没连接\r\n Connecting = 1, // 连接中\r\n Connected = 2 // 已连接\r\n}\r\n\r\n// 连接类型\r\nexport enum ConnectType{\r\n NONE = 0, // 没连接\r\n INIT = 1, // 第一次初始化连接\r\n RECONNNECT = 2 // 断线后重连\r\n}\r\n\r\nexport default class MyWebSocekt extends Singleton {\r\n\r\n private socket : WebSocket = null;\r\n private socketState:MySocketState = MySocketState.None;\r\n private connectType = ConnectType.NONE;\r\n\r\n private severCloseUi:SeverCloseUI;\r\n\r\n public connect(url:string, connectType:ConnectType){\r\n if(this.socketState != MySocketState.None)\r\n return;\r\n Logger.logNet(\"连接服务器===>\" + url , \"<----->\" + connectType);\r\n this.socketState = MySocketState.Connecting;\r\n this.connectType = connectType;\r\n this.socket = new WebSocket(url);\r\n this.socket.binaryType = \"arraybuffer\";\r\n this.bindEvent();\r\n }\r\n\r\n public close(){\r\n if(this.socketState != MySocketState.Connected)\r\n return;\r\n\r\n this.socketState = MySocketState.None;\r\n this.connectType = ConnectType.NONE;\r\n\r\n this.severCloseUi = instantiate(GameEntry.Inst.mapView.severOver).getComponent(SeverCloseUI);\r\n let layer = WindowManager.Instance().getLayer(UILayer.最顶顶层);\r\n layer.addChild(this.severCloseUi.node);\r\n }\r\n\r\n public send(data:string|Uint8Array):void{\r\n if(this.socketState != MySocketState.Connected){\r\n Logger.logNet(\"socket not connected, cannot send data\");\r\n return;\r\n }\r\n\r\n this.socket.send(data);\r\n }\r\n\r\n private bindEvent(){\r\n this.socket.onopen = () =>{\r\n this.onOpen();\r\n }\r\n\r\n this.socket.onclose = (ev:CloseEvent) =>{\r\n this.onClose(ev);\r\n }\r\n\r\n this.socket.onerror = (e:Event) =>{\r\n this.onError(e);\r\n }\r\n\r\n this.socket.onmessage = (e:MessageEvent) =>{\r\n var type = typeof e.data;\r\n var recvData:Uint8Array = new Uint8Array(e.data);\r\n this.onMesage(recvData);\r\n }\r\n }\r\n\r\n public onOpen(){\r\n this.socketState = MySocketState.Connected;\r\n if(this.connectType == ConnectType.INIT){\r\n Logger.logNet(\"服务器连接成功\"); \r\n login(); \r\n }\r\n else if(this.connectType == ConnectType.RECONNNECT){\r\n // TODO 断线重连后更新必须的数据\r\n Logger.logNet(\"断线重连\");\r\n if(this.severCloseUi){\r\n this.severCloseUi.desTory();\r\n }\r\n } \r\n }\r\n\r\n public onClose(ev:CloseEvent){\r\n Logger.logNet(\"服务器关闭\"); \r\n this.socketState = MySocketState.None;\r\n this.connectType = ConnectType.NONE;\r\n this.severCloseUi = instantiate(GameEntry.Inst.mapView.severOver).getComponent(SeverCloseUI);\r\n let layer = WindowManager.Instance().getLayer(UILayer.最顶顶层);\r\n layer.addChild(this.severCloseUi.node);\r\n }\r\n\r\n public onMesage(data:Uint8Array){\r\n handle_data(data);\r\n }\r\n\r\n public onError(ev:Event) {\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n","import { _decorator} from 'cc';\nimport Http from \"../core/http/HTTP\";\nexport type ResultData = {\n items: number[][],\n kv: any,\n token?: string,\n}\nexport type NetResult = {\n code: number,\n msg: string,\n api_json?: any,\n data?: ResultData | any\n}\nexport enum NetCode {\n FAIL = -1,\n OK = 0,\n LoginDisabled = 1001,//禁止登录\n OtherLogin = 1002,//其他地方登陆\n}\n\nexport class NetManager {\n //分享图\n public static getShareList() {\n // let url = \"https://ooooo.xxx.com/game/1/static/wx/api.json\"\n\n // if (window[\"wx\"]) {\n // url = \"https://ooooo.xxx.com/game/1/static/wx/api.json\";\n // }\n // if (window[\"tt\"]) {\n // url = \"https://ooooo.xxx.com/game/1/static/tt/api.json\";\n // }\n\n // Http.sendRequest(\"\", null, (res) => {\n // // GameManager.Instance().ServerVersion = res.Version\n // // GameManager.Instance().shareList = res.shareList\n // // GameManager.Instance().shareList2 = res.shareList2\n // // GameManager.Instance().payImgList = res.pay\n\n // // GameManager.Instance().WeCom = res.qrcode.WeCom;\n // // GameManager.Instance().Mp = res.qrcode.Mp;\n // // GameManager.Instance().Kefu = res.qrcode.Kefu;\n\n\n // // GameManager.Instance().DailyChallengeScale = Number(res.mrtz) || 0.8;\n\n // // GameManager.Instance().DailyGoldScale = Number(res.jbtz) || 0.8;\n\n // // let sab = Number(res.sab);\n // // if (!isNaN(sab)) {\n // // SharedByteUtils.UserSharedBuffType = sab || 0;\n // // }\n\n // }, url + \"?a=\" + Math.random())\n }\n}","/**\n * off config配置文件\n */\nimport { _decorator } from 'cc';\nimport {c1220, s1220, c1221, s1221,c1222, s1222, p_reward } from '../../../proto/proto';\nimport {res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class OffineProxy {\n private static _inst: OffineProxy;\n public static get Inst(): OffineProxy {\n if (OffineProxy._inst == null) {\n OffineProxy._inst = new OffineProxy();\n }\n return OffineProxy._inst;\n }\n // @res_assign(\"PayInfo\")\n // public PayInfoDataList: PayInfo[];\n // public InitPayInfoConfig() {\n // if (this.PayInfoDataList == null) {\n // this.PayInfoDataList = [];\n // }\n // let PayInfoDataConfig = ConfigManager.GetInstance().getValue(\"PayInfo\")\n // for (var key in PayInfoDataConfig) {\n // let item = ConfigManager.GetInstance().getValue(\"PayInfo\")[key];\n // if (item) {\n // for (var keys in item) {\n // item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n // }\n // this.PayInfoDataList.push(item);\n // }\n\n // }\n // }\n\n // /** 根据id获取payinfo */\n // public GetPayInfoDataByID(id: number) {\n // if (id == undefined) return undefined;\n // if (this.PayInfoDataList == null) {\n // this.InitPayInfoConfig();\n // }\n // let data: PayInfo = this.PayInfoDataList.find(item => item.id == id);\n // if (data) {\n // return data;\n // }\n // return null;\n // } \n\n\n /***==========================服务器数据存储============================== */\n public OffineServerData: s1220;//服务器返回-离线信息\n public ShowOffineUI :boolean;\n // public OffineADRewardList: p_reward[];////服务器返回-1222看廣告獎勵返回\n // public startTime :number;//存储开始时间\n public SendC1220(){\n //获取所有道具列表\n var c1220: c1220 = {};\n send2client(\"c1220\", c1220);\n }\n\n\n public SendC1221(){\n //置奖励领取奖励\n Logger.logNet(\"==============发送====c1221=============\");\n var c1221: c1221 = {};\n send2client(\"c1221\", c1221);\n }\n\n\n public SendC1222() {\n //看广告获取额外奖励\n var c1222: c1222 = {};\n send2client(\"c1222\", c1222);\n }\n\n private _rewardList: Array = [];\n public get rewardList(): Array {\n return this._rewardList;\n }\n public set rewardList(value: Array) {\n this._rewardList = value;\n }\n\n}\n\n/**獲取離綫獎勵信息 */\nexport function do_s1220(s1220: s1220){\n // console.log(\"===================接收是1220================獲取離綫獎勵信息===rewards=\");\n // int32 startTime=1; // 收集开始时间\n // int32 gold=2; // 每分钟的金币产量\n // int32 magic=3; // 每分钟的矩阵产量\n // int32 adNum=4; // 看广告剩余次数\n // int32 adMaxNum=5; // 看广告最大次数\n // repeated p_reward rewards=6; // 已经获得奖励\n OffineProxy.Inst.OffineServerData = s1220;\n EventManager.Inst.event(EventType.UPDATE_OFFINE_UI);\n if(!OffineProxy.Inst.ShowOffineUI){\n OffineProxy.Inst.ShowOffineUI=true;\n if(GlobalFunction.ConvertUndefinedToNumber(s1220.tan)==1){\n EventManager.Inst.event(EventType.SHOW_OFFINE_UI);\n } \n }\n\n if(s1220.rewards && s1220.rewards != undefined && s1220.rewards.length){\n EventManager.Inst.event(EventType.ON_CAN_GET_REWAR_BUILD , 1016);\n OffineProxy.Inst.rewardList = [1016];\n }\n}\n\n/**領取的獎勵 */\nexport function do_s1221(s1221: s1221){\n\n Logger.logNet(\"===================接收是1221============領取的獎勵========\");\n\n var data = new BoxData\n {\n data.rewards = s1221.rewards\n };\n EventManager.Inst.event(EventType.ON_GET_REWAR_BUILD_END,1016);\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n OffineProxy.Inst.rewardList = []\n // OffineProxy.Inst.SendC1220();\n}\n\n\n/**看廣告獲取的獎勵 */\nexport function do_s1222(s1222: s1222){\n if(s1222.result==undefined){\n // OffineProxy.Inst.OffineADRewardList =s1222.rewards; \n // EventManager.Inst.event(EventType.UPDATE_OFFINE_UI);\n // OffineProxy.Inst.SendC1220();\n }\n}\n\n\n// export class PayInfo{\n// /** 档位id ID */\n// id: number;\n// /** 商品类型 */\n// payType: number;\n// /**商城id */\n// goodsId: number;\n// /** 国内花费金额 */\n// costMoney: number;\n// /** 首次类型 1星钻 2钻石 3金币*/\n// firstType: number;\n// /** 首次数量 */\n// firstNum: number;\n// /** 海外花费金额 */\n// OScostMoney: number;\n// /** 国内商品id */\n// ay_skUid: string[];\n// /** 海外商品id */\n// ay_Osskuid: string[];\n// /** 商品充值描述 */\n// lan_productName: string[];\n// }\n// export enum payType {\n// yuanbao = 1,//充值购买元宝\n// zhufu = 2,//祝福\n// libao = 3,//礼包\n// yingxiong = 4,//英雄\n// cunzhaung = 5,//村庄\n// gongchang = 6,//工厂\n// xiangouday = 7,//每日限购\n// xiangouweek = 8//每周限购\n// }\n// export enum firstType {\n// xingzuan = 1,//星钻\n// zuanshi = 2,//钻石\n// jinbi = 3,//金币\n// }\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { s1220 } from \"../../../proto/proto\";\nimport { OffineProxy } from \"../proxy/OffineProxy\";\nimport { BoxStyle, GlobalFunction } from \"../common/GlobalFunction\";\nimport { Sprite } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { Button } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Component } from \"cc\";\nimport { TimePoxy } from \"../proxy/TimePoxy\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { MonthCardProxy } from \"../proxy/MonthCardProxy\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('OfflineUI')\nexport default class OfflineUI extends BasePanel {\n\n public OffineData: s1220;\n\n @property(Node) Label_time: Node | null = null;\n @property(Node) Label_money: Node | null = null;\n @property(Node) Label_item: Node | null = null;\n\n @property(Node) Label_advert: Node | null = null;\n\n @property(Node) ScrollView_item: Node | null = null; //ScrollView\n @property(Node) Layout_item: Node | null = null; //content\n @property(Node) item: Node | null = null;//item\n @property(Button) Button_join: Button | null = null;//item\n timeDayCallback: any;\n prefabitem: Node | null = null;//item\n @property(Button) Button_get: Button | null = null;//item\n @property(Button) Button_advert: Button | null = null;//item\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_back\") {\n // this.close(true)\n } else if (name == \"Button_dec\") {\n GlobalFunction.ShowBoxsDec(this.node.name, name);\n }\n else if (name == \"Button_advert\") {\n OffineProxy.Inst.SendC1222();\n } else if (name == \"Button_get\") {\n if (this.OffineData && this.OffineData.rewards != undefined && this.OffineData.rewards.length > 0) {\n OffineProxy.Inst.SendC1221();\n }\n } else if (name == \"Button_join\") {\n // this.close(true);\n WindowManager.Instance().open(GameConst.winPath.MoonCardUI, null, true);\n }\n }\n\n start() {\n\n this.addEvent();\n OffineProxy.Inst.SendC1220();\n MonthCardProxy.Inst.SendC1218();\n }\n\n private addEvent() {\n\n EventManager.Inst.on(EventType.UPDATE_OFFINE_UI, this, this.UpdateOffineUI);\n EventManager.Inst.on(EventType.UPDATE_OFFINE_JOIN, this, this.UpdateJoinUI);\n }\n onShow(data: any): void {\n\n \n \n }\n\n ShowDayDownTime() {\n\n if(this.timeDayCallback){\n this.unschedule(this.timeDayCallback);\n }\n let startTime = GameModleComp.getInstance().serverTime;\n let secondTime;\n if(this.OffineData.startTime==undefined){\n secondTime= startTime + 28800;\n }else{\n secondTime= this.OffineData.startTime + 28800;\n }\n let different1 = secondTime - startTime;\n let timelabel = this.Label_time.getComponent(Label);\n if (different1 > 0) {\n let different = 28800 -different1;\n if(different<0){\n different=0;\n }\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n this.timeDayCallback = function (dt) {\n if (different < 28800) {\n different++;\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n } else {\n this.unschedule(this.timeDayCallback);\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n }\n }\n this.schedule(this.timeDayCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(28800);\n }\n }\n UpdateJoinUI() {\n\n let different = MonthCardProxy.Inst.SuperCardEndTime-GameModleComp.getInstance().serverTime;\n this.Button_join.node.active=different<=0;\n }\n\n\n /**刷新界面 */\n UpdateOffineUI() {\n this.OffineData = OffineProxy.Inst.OffineServerData;\n if (!this.OffineData) return;\n this.ShowDayDownTime();\n let Label_money = this.Label_money.getComponent(Label);\n Label_money.string = GlobalFunction.ConvertUndefinedToNumber(this.OffineData.gold) + \"/m\";\n // let Label_item = this.Label_item.getComponent(Label);\n // Label_item.string = GlobalFunction.ConvertUndefinedToNumber(this.OffineData.magic) + \"/m\";\n let Label_advert = this.Label_advert.getComponent(Label);\n Label_advert.string = \"(\" +GlobalFunction.ConvertUndefinedToNumber(this.OffineData.adNum) + \"/\" + this.OffineData.adMaxNum + \")\";\n this.Layout_item.removeAllChildren();\n this.Button_advert.getComponent(Sprite).grayscale=GlobalFunction.ConvertUndefinedToNumber(this.OffineData.adNum)==0;\n this.Button_get.getComponent(Sprite).grayscale=this.OffineData.rewards == undefined || this.OffineData.rewards.length == 0;\n if (this.OffineData.rewards != undefined && this.OffineData.rewards.length > 0) {\n this.prefabitem = this.item;\n for (let i = 0; i < this.OffineData.rewards.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item;\n let reward = this.OffineData.rewards[i];\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward.id);\n if (itemdata) {\n\n let Button_item = itemNode.getChildByName(\"Button_item\")\n let Sprite_herositemkuang = Button_item.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_herositem = Button_item.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositem, itemdata.icon);\n let Label_herositem = Button_item.getChildByName(\"Label_itemnum\").getComponent(Label);\n Label_herositem.string = GlobalFunction.ConvertNumberWithUnit(reward.num);\n\n this.bindClickDayChildEvent(Button_item, itemdata.itemID);\n }\n }\n }\n }\n }\n\n\n //点击道具\n bindClickDayChildEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n if(this.timeDayCallback){\n this.unschedule(this.timeDayCallback);\n }\n }\n clearRes() {\n }\n}\n","import { Rect, Vec3 } from \"cc\";\r\nimport { Skill } from \"./Skill\";\r\nimport { EffectBallistic, ISkillReport, ISkillReportHit, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { GebolInAiEnum, GebolInAttTypeEnum, GebolinView } from \"../role/GebolinView\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { BattleReport } from \"./BattleReport\";\r\nimport { RoleAttack } from \"./RoleAttack\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { Vec2 } from \"cc\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { HeroAiType, SkillEType } from \"../enum/Enum\";\r\nimport { EffectDamage, SkillEtype } from \"./SkillInterface\";\r\nimport { SkillEffect, SkillEffectProxy } from \"../modules/game/proxy/SkillEffectProxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nexport class Operate {\r\n static ops(caster: BaseRole, target: BaseRole | Vec3, skill: Skill, type: number, sr: ISkillReport, hits: ISkillReportHit[], usetps: boolean = false, duration: number = -1, pos: Vec3 = null) {\r\n if(caster instanceof GebolinView){\r\n switch (caster.gebolinAttType) {\r\n case GebolInAttTypeEnum.JinZhan:\r\n this.attack(caster, target, skill, type, sr, hits, duration);\r\n break;\r\n \r\n case GebolInAttTypeEnum.YuanCheng:\r\n this.arrowattack(caster, target, skill, type, sr, hits, duration);\r\n break;\r\n }\r\n }else if(caster instanceof BossView){\r\n if(skill.SkillModel.table.isNomAttack){\r\n this.attack(caster, target, skill, type, sr, hits, duration);\r\n }else{\r\n if(skill.SkillModel.table.bulletmodel == \"\" || skill.SkillModel.table.bulletmodel == null){\r\n this.attack(caster, target, skill, type, sr, hits, duration,1);\r\n }else{\r\n this.bossSkill(caster, target, skill, type, sr, hits, duration);\r\n }\r\n }\r\n }else if(caster instanceof HeroView){\r\n if(skill.SkillModel.table.isNomAttack){\r\n if(skill.SkillModel.table.bulletmodel == \"\" || skill.SkillModel.table.bulletmodel == null){\r\n this.attack(caster, target, skill, type, sr, hits, duration,1);\r\n }else{\r\n this.arrowattack(caster, target, skill, type, sr, hits, duration);\r\n }\r\n }else{\r\n if(skill.SkillModel.table.bulletmodel == \"\" || skill.SkillModel.table.bulletmodel == null){\r\n this.attack(caster, target, skill, type, sr, hits, duration,1);\r\n }else{\r\n this.heroSkill(caster, target, skill, type, sr, hits, duration);\r\n }\r\n }\r\n }\r\n }\r\n /** hero技能 */\r\n static heroSkill(caster: BaseRole, target: BaseRole | Vec3, skill: Skill, type: number, sr: ISkillReport, hits: ISkillReportHit[], duration: number = -1) {\r\n if(!target || !(target as BaseRole).node){\r\n return;\r\n }\r\n let atknum = 0;\r\n var pos = caster.node.position;\r\n if (caster instanceof HeroView) {\r\n var tpos = target instanceof BaseRole ? target.node.position : target;\r\n let d = Vec3.distance(pos, tpos as Vec3);\r\n atknum++;\r\n var effect = this.newballistic(caster, target as Vec3, skill);\r\n // Logger.logView(\"远程建立弹道数据\");\r\n if (type == 1) {\r\n BattleReport.buff(hits, target, effect, caster);\r\n } else {\r\n BattleReport.skill(sr, target, effect, caster);\r\n }\r\n }\r\n }\r\n /** boss技能 */\r\n static bossSkill(caster: BaseRole, target: BaseRole | Vec3, skill: Skill, type: number, sr: ISkillReport, hits: ISkillReportHit[], duration: number = -1) {\r\n if(!target || !(target as BaseRole).node){\r\n return;\r\n }\r\n let atknum = 0;\r\n var pos = caster.node.position;\r\n if (caster instanceof BossView) {\r\n var tpos = target instanceof BaseRole ? target.node.position : target;\r\n let d = Vec3.distance(pos, tpos as Vec3);\r\n atknum++;\r\n var effect = this.newballistic(caster, target as Vec3, skill);\r\n // Logger.logView(\"远程建立弹道数据\");\r\n if (type == 1) {\r\n BattleReport.buff(hits, target, effect, caster);\r\n } else {\r\n BattleReport.skill(sr, target, effect, caster);\r\n }\r\n }\r\n }\r\n /** 攻击 */\r\n static attack(caster: BaseRole, target: BaseRole | Vec3, skill: Skill, type: number, sr: ISkillReport, hits: ISkillReportHit[], duration: number = -1 , skillNone:number=0) {\r\n if(!target || !(target as BaseRole).node){\r\n return;\r\n }\r\n var recordarr = [];\r\n if (target instanceof GebolinView || target instanceof BossView || target instanceof HeroView) {\r\n var skilllier = 1;\r\n let param: SkillCfgRecord = {\r\n /**伤害倍率*/\r\n skilllier: skilllier,\r\n /**技能固伤*/\r\n fixedge: 0,\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n // 攻击数值计算\r\n let damage = RoleAttack.normal(caster, target, skill, param,skillNone);\r\n // 技能受击战报\r\n if (type == 1) {\r\n BattleReport.buff(hits, target, damage, caster);\r\n } else {\r\n if(skillNone == 1){\r\n if(skill.SkillModel.table.skillType==SkillEtype.BossDan){\r\n BattleReport.skill(sr, target, damage, caster);\r\n }else{\r\n if(skill.SkillModel.table.isNomAttack){\r\n BattleReport.skill(sr, target, damage, caster);\r\n }else{\r\n this.showAllHit(caster, target, skill,sr,damage,param)\r\n }\r\n }\r\n }else{\r\n BattleReport.skill(sr, target, damage, caster);\r\n }\r\n }\r\n }\r\n }\r\n static showAllHit(caster: BaseRole, target: BaseRole, skill: Skill,sr: ISkillReport,effect,param){\r\n var rectPos = new Vec2(target.node.position.x, target.node.position.y);\r\n let fanwei:Vec2 = skill.SkillModel.table.fanwei;\r\n var rectSize = new Vec2(fanwei.x*40, fanwei.y*40);\r\n let shengxiaoArr:Array = skill.SkillModel.table.shengxiao;\r\n let map:Map = null;\r\n for(let i = 0 ; i < shengxiaoArr.length ; i++){\r\n map = null;\r\n if(shengxiaoArr[i] == 1){\r\n map = GameEntry.Inst.mapView.gebolinMap;\r\n }\r\n if(shengxiaoArr[i] == 2){\r\n if(GameModleComp.getInstance().isInCopy){\r\n map = GameEntry.Inst.mapView.copyheroMap;\r\n }else{\r\n map = GameEntry.Inst.mapView.heroMap;\r\n }\r\n }\r\n if(shengxiaoArr[i] == 3){\r\n if(GameModleComp.getInstance().isInCopy){\r\n if(GameEntry.Inst.mapView.nowFubenBoss && GameEntry.Inst.mapView.nowFubenBoss.node){\r\n let nodePos = GameEntry.Inst.mapView.nowFubenBoss.node.position;\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n if(target instanceof BossView){\r\n }else{\r\n sr.hits.push({ target: GameEntry.Inst.mapView.nowFubenBoss, effect , caster });\r\n }\r\n }\r\n }\r\n }else{\r\n let nodePos = GameEntry.Inst.mapView.nowBoss.node.position;\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n if(target instanceof BossView){\r\n }else{\r\n sr.hits.push({ target: GameEntry.Inst.mapView.nowBoss, effect , caster });\r\n }\r\n }\r\n }\r\n }\r\n if(map){\r\n map.forEach((role: BaseRole, key: string|number) => {\r\n let nodePos = role.node.position;\r\n if(role instanceof GebolinView && caster.gebolinMapType == role.gebolinMapType){\r\n if(role.AiType == GebolInAiEnum.Fight){\r\n if(target instanceof GebolinView){\r\n if(this.inFriendType(caster , role , skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n var attack = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n var attack:EffectDamage = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }\r\n }\r\n }else{\r\n if(this.inFriendType(caster , role , skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n var attack = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n var attack:EffectDamage = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if(role instanceof HeroView && caster.gebolinMapType == role.gebolinMapType){\r\n if(role.heroAiType == HeroAiType.Fight){\r\n if(target instanceof HeroView){\r\n // if(role.roleId == target.roleId){\r\n\r\n // }else{\r\n if(this.inFriendType(caster , role , skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n var attack:EffectDamage = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n var attack:EffectDamage = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }\r\n }\r\n // }\r\n }else{\r\n if(this.inFriendType(caster , role , skill)){\r\n if (nodePos.x >= rectPos.x && nodePos.x <= rectPos.x + rectSize.x &&\r\n nodePos.y >= rectPos.y && nodePos.y <= rectPos.y + rectSize.y) {\r\n var attack:EffectDamage = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }else if (nodePos.x <= rectPos.x && nodePos.x >= rectPos.x - rectSize.x &&\r\n nodePos.y <= rectPos.y && nodePos.y >= rectPos.y - rectSize.y) {\r\n var attack:EffectDamage = this.calcDamage(role , caster , skill);\r\n // skill.SkillModel.animator.onRoleHit({ target: role, effect: attack, caster: caster }, caster);\r\n sr.hits.push({ target: role, effect: attack , caster:caster});\r\n role.showHit(skill);\r\n }\r\n }\r\n }\r\n \r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n static calcDamage(target: BaseRole , caster:BaseRole , skill:Skill): EffectDamage {\r\n let fixedge = 0;\r\n // 计算基准目标\r\n fixedge = 1;\r\n let param: SkillCfgRecord = {\r\n skilllier: 1,\r\n /**技能固伤*/\r\n fixedge: fixedge,\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: 1,\r\n /**伤害基准*/\r\n injuline: 1,\r\n }\r\n\r\n var effect = RoleAttack.normal(caster, target, skill, param,1);\r\n return effect;\r\n }\r\n static setJitui(skill , target){\r\n let arr:Array = skill.SkillModel.table.ay_effects;\r\n for(let i = 0 ; i < arr.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(arr[i]));\r\n if(temp.eType == SkillEType.JiTui){\r\n target.showJiTui(temp);\r\n }\r\n }\r\n }\r\n static inFriendType(caster: BaseRole , role: BaseRole , skill:Skill):boolean{\r\n let num:number = Number(skill.SkillModel.table.shengxiaoFanwei[0]);\r\n if(num == 1){\r\n if(caster instanceof BossView){\r\n if(role instanceof BossView){\r\n return true;\r\n }\r\n return false;\r\n }else{\r\n if(role instanceof BossView){\r\n return false;\r\n }\r\n return true\r\n }\r\n }else if(num==2){\r\n if(caster instanceof BossView){\r\n if(role instanceof BossView){\r\n return false;\r\n }\r\n return true;\r\n }else{\r\n if(role instanceof BossView){\r\n return true;\r\n }\r\n return false\r\n }\r\n }else{\r\n return true;\r\n }\r\n // return skill.SkillModel.table.shengxiaoFanwei.indexOf(role.friendType) >= 0;\r\n \r\n }\r\n /** 弹道 moduleid:4 */\r\n static ballistic(caster: BaseRole, target: BaseRole | Vec3, skill: Skill , type: number, sr: ISkillReport, hits: ISkillReportHit[], duration: number = -1) {\r\n // var effect = BuffAdd.ballistic(caster, target as Vec3, skill);\r\n // if (type == 1) {\r\n // BattleReport.buff(hits, target, effect, caster);\r\n // } else {\r\n // BattleReport.skill(sr, target, effect, caster);\r\n // }\r\n }\r\n /** 弓箭手攻击 */\r\n static arrowattack(caster: BaseRole, target: BaseRole | Vec3, skill: Skill, type: number, sr: ISkillReport, hits: ISkillReportHit[], duration: number = -1) {\r\n if(!target || !(target as BaseRole).node){\r\n return;\r\n }\r\n let atknum = 0;\r\n var pos = caster.node.position;\r\n if (caster instanceof GebolinView) {\r\n var tpos = target instanceof BossView ? target.node.position : target;\r\n let d = Vec3.distance(pos, tpos as Vec3);\r\n if (d <= Number(skill.SkillModel.table.attackDistance)*40 ) {\r\n atknum++;\r\n var effect = this.newballistic(caster, target as Vec3, skill);\r\n // Logger.logView(\"远程建立弹道数据\");\r\n if (type == 1) {\r\n BattleReport.buff(hits, target, effect, caster);\r\n } else {\r\n BattleReport.skill(sr, target, effect, caster);\r\n }\r\n }\r\n }\r\n if (caster instanceof HeroView) {\r\n var tpos = target instanceof BossView ? target.node.position : target;\r\n let d = Vec3.distance(pos, tpos as Vec3);\r\n if (d <= Number(skill.SkillModel.table.attackDistance)*40 ) {\r\n atknum++;\r\n var effect = this.newballistic(caster, target as Vec3, skill);\r\n // Logger.logView(\"远程建立弹道数据\");\r\n if (type == 1) {\r\n BattleReport.buff(hits, target, effect, caster);\r\n } else {\r\n BattleReport.skill(sr, target, effect, caster);\r\n }\r\n }\r\n }\r\n }\r\n static newballistic(caster: BaseRole, target: Vec3, skill: Skill): EffectBallistic {\r\n var effect = new EffectBallistic();\r\n effect.caster = caster;\r\n effect.target = target;\r\n effect.skill = skill;\r\n effect.speed = skill.SkillModel.table.flySpeed;\r\n effect.distance = skill.SkillModel.table.attackDistance;\r\n return effect;\r\n }\r\n /**\r\n * 判断点是否在旋转后的矩形中\r\n * @param point 触摸点的坐标\r\n * @param node 碰撞节点,锚点必须为(0.5,0.5)\r\n * @param angel 旋转角度\r\n * @param cpos 释放者点\r\n * @returns \r\n */\r\n static isPosInRotationRect(point: Vec3, node: Rect, angel: number, cpos: Vec3) {\r\n let hw = node.width / 2;\r\n let hh = node.height / 2;\r\n let O = angel;\r\n let X = point.x;\r\n let Y = point.y;\r\n let r = -O * (Math.PI / 180);\r\n let nTempX = cpos.x + (X - cpos.x) * Math.cos(r) - (Y - cpos.y) * Math.sin(r);\r\n let nTempY = cpos.y + (X - cpos.x) * Math.sin(r) + (Y - cpos.y) * Math.cos(r);\r\n if (nTempX > node.center.x - hw && nTempX < node.center.x + hw && nTempY > node.center.y - hh && nTempY < node.center.y + hh) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}","// TEST专用\n/**\n * achieve config配置文件\n * ! 自动导出,不要修改和直接引用\n */\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { SoldiersBuildType } from './SoldierEquipProxy';\nimport { WordMapPoxy } from './WordMapPoxy';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { BuildHeroType } from '../../../map/layer/BuildView';\n@res_auto_bind()\nexport class PassPoxy {\n private static _inst: PassPoxy;\n public static get Inst(): PassPoxy {\n if (PassPoxy._inst == null) {\n PassPoxy._inst = new PassPoxy();\n }\n return PassPoxy._inst;\n }\n @res_assign(\"Pass\")\n public passDatas: Pass[];\n public InItPassConfig() {\n\n if (!this.passDatas) {\n this.passDatas = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Pass\")) {\n let achieveitem = ConfigManager.GetInstance().getValue(\"Pass\")[key];\n if (achieveitem) {\n for (var keys in achieveitem) {\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys, achieveitem[keys]);\n }\n this.passDatas.push(achieveitem);\n }\n\n }\n }\n public getPassById(id: number): Pass {\n\n if (!this.passDatas) {\n this.InItPassConfig();\n }\n return this.passDatas.find(element => element.passId == id);\n }\n\n\n /**通过当前关卡 获取解锁建筑id*/\n public getPassBuildById(level: number) {\n if (!this.passDatas) {\n this.InItPassConfig();\n }\n let UnlockBuild: number[] = [];\n for (let i = this.passDatas.length - 1; i >= 0; i--) {\n let passdata = this.passDatas[i];\n if (passdata.passId <= level) {\n if (passdata.ay_build != null) {\n for (let t = 0; t < passdata.ay_build.length; t++) {\n UnlockBuild.push(Number(passdata.ay_build[t]));\n }\n }\n }\n }\n // this.passlist.sort((a, b) => {\n // return b.passId - a.passId\n // });\n return UnlockBuild;\n }\n\n public GetPassUnLockLevel(buildid: number) {\n if (!this.passDatas) {\n this.InItPassConfig();\n }\n for (let i = 0; i < this.passDatas.length; i++) {\n let data = this.passDatas[i];\n if (data != undefined && data.ay_build.length != 0) {\n if (data.ay_build.includes(buildid + \"\")) {\n return data;\n }\n }\n }\n return undefined;;\n }\n public GetBuildIsUnLock(buildIdList: number[], type: SoldiersBuildType) {\n if (buildIdList != undefined) {\n for (let i = 0; i < buildIdList.length; i++)\n if (buildIdList[i] == type) {\n return true;\n }\n }\n return false;\n }\n\n //通过建筑id获取当前未解锁建筑的dec\n public GetUnLockLevelDec(buildType: number) {\n let psdata = PassPoxy.Inst.GetPassUnLockLevel(buildType);\n if (psdata) {\n let wordMapdata = WordMapPoxy.Inst.getWordMapById(psdata.wordMapID);\n if (wordMapdata) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20065), wordMapdata.lan_classify, wordMapdata.typeId, psdata.typeId);\n\n }\n }\n return \"\";\n }\n\n\n //通过关卡id获取当前关卡dec\n public GetCurrentLevelDec(PassById: number) {\n let psdata = PassPoxy.Inst.getPassById(PassById);\n if (psdata) {\n let wordMapdata = WordMapPoxy.Inst.getWordMapById(psdata.wordMapID);\n if (wordMapdata) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20065), wordMapdata.lan_classify, wordMapdata.typeId, psdata.typeId);\n\n }\n }\n return \"\";\n }\n}\n\nexport class Pass {\n /** 关卡ID */\n passId: number;\n /** 地图ID */\n wordMapID: number;\n /** 子类 */\n typeId: number;\n /** 游戏地图ID */\n mapId: number;\n /** 怪物序列 */\n ay_monster: Array;\n /** 怪物序列 */\n boss: number;\n /** 解锁功能 */\n ay_functionld: Array;\n /** 解锁建筑 */\n ay_build: string[];\n /**解锁地图*/\n jumpmap: number;\n gold: number;\n kv_pass:Map;\n\n}","/**\n * PayInfo config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class PayInfoProxy {\n private static _inst: PayInfoProxy;\n public static get Inst(): PayInfoProxy {\n if (PayInfoProxy._inst == null) {\n PayInfoProxy._inst = new PayInfoProxy();\n }\n return PayInfoProxy._inst;\n }\n @res_assign(\"PayInfo\")\n public PayInfoDataList: PayInfo[];\n public InitPayInfoConfig() {\n if (this.PayInfoDataList == null) {\n this.PayInfoDataList = [];\n }\n let PayInfoDataConfig = ConfigManager.GetInstance().getValue(\"PayInfo\")\n for (var key in PayInfoDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"PayInfo\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.PayInfoDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取payinfo */\n public GetPayInfoDataByID(id: number) {\n if (id == undefined) return undefined;\n if (this.PayInfoDataList == null) {\n this.InitPayInfoConfig();\n }\n let data: PayInfo = this.PayInfoDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n } \n}\nexport class PayInfo{\n /** 档位id ID */\n id: number;\n /** 商品类型 */\n payType: number;\n /**商城id */\n goodsId: number;\n /** 国内花费金额 */\n costMoney: number;\n /** 首次类型 1星钻 2钻石 3金币*/\n firstType: number;\n /** 首次数量 */\n firstNum: number;\n /**多次類型 */\n otherType:number;\n /**多次數量 */\n otherNum :number;\n \n /** 海外花费金额 */\n OScostMoney: number;\n /** 国内商品id */\n ay_skUid: string[];\n /** 海外商品id */\n ay_Osskuid: string[];\n /** 商品充值描述 */\n lan_productName: string[];\n}\nexport enum payType {\n yuanbao = 1,//充值购买元宝\n zhufu = 2,//祝福\n libao = 3,//礼包\n yingxiong = 4,//英雄\n cunzhaung = 5,//村庄\n gongchang = 6,//工厂\n xiangouday = 7,//每日限购\n xiangouweek = 8//每周限购\n}\nexport enum firstType {\n xingzuan = 1,//星钻\n zuanshi = 2,//钻石\n jinbi = 3,//金币\n}\n","\r\nimport { BusyNetBegin, BusyNetDone } from \"../../core/manager/BusyLoadingManager\";\r\nimport Singleton from \"../../core/manager/Singleton\";\r\nimport { PlatType, ToolSDK } from \"./ToolSDK\";\r\nimport { BaseSdk } from \"./BaseSDK\";\r\nimport Web from './Web';\r\nimport { RegisterData } from '../../AutoStorages/PersistentData/RegisterData';\r\n\r\n\r\n\r\nexport class PlatMgr extends Singleton {\r\n _sdk: BaseSdk = null;\r\n constructor() {\r\n super()\r\n switch (ToolSDK.GET_PLT()) {\r\n case PlatType.WECHAT:\r\n // TODO \r\n break;\r\n case PlatType.WEB:\r\n this._sdk = new Web()\r\n break;\r\n default:\r\n this._sdk = new Web()\r\n break;\r\n }\r\n }\r\n\r\n login(callback: Function, fail_callback: Function) {\r\n if (RegisterData.get_user_id() == null) {\r\n this._sdk.autoRegister(\r\n () => {this._sdk.login(callback, fail_callback); },\r\n () => { console.log(\"register failed\"); }\r\n );\r\n }\r\n else{\r\n this._sdk.login(callback, fail_callback)\r\n }\r\n }\r\n}\r\n","export default class Point {\r\n public x: number = 0;\r\n public y: number = 0;\r\n\r\n public constructor(x: number = 0, y: number = 0) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n}\r\n","import { _decorator, Component, Node, NodePool, instantiate, Prefab } from 'cc';\nconst { ccclass, property } = _decorator;\n\nimport Utils from \"../utils/Utils\";\n\n@ccclass('PoolManager')\nexport default class PoolManager extends Component {\n private static _int: PoolManager = null;\n static Instance() {\n return this._int;\n }\n protected onLoad(): void {\n PoolManager._int = this;\n }\n pools: any = {};\n resKey: any = {}\n init() {\n // TODO 加载资源留了个例子\n // Utils.loadResUIOnly('common/CoinPre', 'prefabs', Prefab, (e, res: Prefab) => {\n // res.addRef();\n // this.resKey['CoinPre'] = res;\n // })\n }\n\n get(key: string) {\n if (this.pools[key] == null) {\n this.pools[key] = new NodePool()\n }\n if (this.pools[key].size() > 0) {\n return this.pools[key].get()\n }\n return instantiate(this.resKey[key])\n\n }\n\n recover(key: string, node: Node) {\n if (this.pools[key] == null) {\n this.pools[key] = new NodePool()\n }\n this.pools[key].put(node)\n }\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator,Node} from \"cc\";\nimport { Label } from \"cc\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { BuffPoxy } from \"../proxy/BuffPoxy\";\nimport { Vec3 } from \"cc\";\nimport { ClientRequest } from \"electron\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nconst { ccclass, property } = _decorator;\n\n@ccclass(\"PowerUI\")\nexport default class powerUI extends BasePanel {\n\n powerData : Power;\n @property(Node)Sprite_power: Node | null = null;\n @property(Node)Label_fuhao: Node | null = null;\n @property(Node)Label_power: Node | null = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\"){\n this.close(true);\n }\n }\n onLoad(){\n }\n onShow(data: any): void {\n this.powerData = data; \n let Sprite_power = this.Sprite_power.getComponent(Sprite);\n let Label_fuhao = this.Label_fuhao.getComponent(Label);\n let Label_power = this.Label_power.getComponent(Label);\n if(this.powerData.olderPowerthis.powerData.newerPower){\n GlobalFunction.SetSpriteFrame(Sprite_power,\"ui_yingxiong_zlxj\");\n Label_fuhao.string =\"-\";\n Label_power.string =(this.powerData.olderPower - this.powerData.newerPower) +\"\";\n }\n this.scheduleOnce(function() {\n // 这里的 this 指向 component\n this.close(true);\n }, 0.7);\n }\n}\nexport class Power {\n /** 老战斗力 */\n olderPower: number;\n /** 新战斗力 */\n newerPower: number;\n /** name */\n type: number;//1 英雄上下阵 2义肢穿戴替换 3 英雄升级 4建筑解锁升级\n}","export interface c1001 {\n token?: string;\n platformID?: number;\n channelID?: string;\n deviceIMEI?: string;\n client?: string;\n sid?: number;\n local_language?: number;\n}\n\nexport function encodec1001(message: c1001): Uint8Array {\n let bb = popByteBuffer();\n _encodec1001(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1001(message: c1001, bb: ByteBuffer): void {\n // optional string token = 1;\n let $token = message.token;\n if ($token !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $token);\n }\n\n // optional int32 platformID = 2;\n let $platformID = message.platformID;\n if ($platformID !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($platformID));\n }\n\n // optional string channelID = 3;\n let $channelID = message.channelID;\n if ($channelID !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $channelID);\n }\n\n // optional string deviceIMEI = 4;\n let $deviceIMEI = message.deviceIMEI;\n if ($deviceIMEI !== undefined) {\n writeVarint32(bb, 34);\n writeString(bb, $deviceIMEI);\n }\n\n // optional string client = 5;\n let $client = message.client;\n if ($client !== undefined) {\n writeVarint32(bb, 42);\n writeString(bb, $client);\n }\n\n // optional int32 sid = 6;\n let $sid = message.sid;\n if ($sid !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($sid));\n }\n\n // optional int32 local_language = 7;\n let $local_language = message.local_language;\n if ($local_language !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($local_language));\n }\n}\n\nexport function decodec1001(binary: Uint8Array): c1001 {\n return _decodec1001(wrapByteBuffer(binary));\n}\n\nfunction _decodec1001(bb: ByteBuffer): c1001 {\n let message: c1001 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string token = 1;\n case 1: {\n message.token = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 platformID = 2;\n case 2: {\n message.platformID = readVarint32(bb);\n break;\n }\n\n // optional string channelID = 3;\n case 3: {\n message.channelID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string deviceIMEI = 4;\n case 4: {\n message.deviceIMEI = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string client = 5;\n case 5: {\n message.client = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 sid = 6;\n case 6: {\n message.sid = readVarint32(bb);\n break;\n }\n\n // optional int32 local_language = 7;\n case 7: {\n message.local_language = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1001 {\n result?: number;\n uid?: string;\n nth?: number;\n}\n\nexport function encodes1001(message: s1001): Uint8Array {\n let bb = popByteBuffer();\n _encodes1001(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1001(message: s1001, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional string uid = 2;\n let $uid = message.uid;\n if ($uid !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $uid);\n }\n\n // optional int32 nth = 3;\n let $nth = message.nth;\n if ($nth !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($nth));\n }\n}\n\nexport function decodes1001(binary: Uint8Array): s1001 {\n return _decodes1001(wrapByteBuffer(binary));\n}\n\nfunction _decodes1001(bb: ByteBuffer): s1001 {\n let message: s1001 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional string uid = 2;\n case 2: {\n message.uid = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 nth = 3;\n case 3: {\n message.nth = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_player_info {\n uid?: string;\n res_id?: number;\n nickName?: string;\n gold?: number;\n coin?: number;\n diamond?: number;\n magic?: number;\n call?: number;\n challenge?: number;\n change_times?: number;\n isgm?: number;\n passId?: number;\n star?: number;\n power?: number;\n userId?: string;\n}\n\nexport function encodep_player_info(message: p_player_info): Uint8Array {\n let bb = popByteBuffer();\n _encodep_player_info(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_player_info(message: p_player_info, bb: ByteBuffer): void {\n // optional string uid = 1;\n let $uid = message.uid;\n if ($uid !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $uid);\n }\n\n // optional int32 res_id = 2;\n let $res_id = message.res_id;\n if ($res_id !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($res_id));\n }\n\n // optional string nickName = 3;\n let $nickName = message.nickName;\n if ($nickName !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $nickName);\n }\n\n // optional int32 gold = 4;\n let $gold = message.gold;\n if ($gold !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($gold));\n }\n\n // optional int32 coin = 5;\n let $coin = message.coin;\n if ($coin !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($coin));\n }\n\n // optional int32 diamond = 6;\n let $diamond = message.diamond;\n if ($diamond !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($diamond));\n }\n\n // optional int32 magic = 7;\n let $magic = message.magic;\n if ($magic !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($magic));\n }\n\n // optional int32 call = 8;\n let $call = message.call;\n if ($call !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($call));\n }\n\n // optional int32 challenge = 9;\n let $challenge = message.challenge;\n if ($challenge !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($challenge));\n }\n\n // optional int32 change_times = 10;\n let $change_times = message.change_times;\n if ($change_times !== undefined) {\n writeVarint32(bb, 80);\n writeVarint64(bb, intToLong($change_times));\n }\n\n // optional int32 isgm = 11;\n let $isgm = message.isgm;\n if ($isgm !== undefined) {\n writeVarint32(bb, 88);\n writeVarint64(bb, intToLong($isgm));\n }\n\n // optional int32 passId = 12;\n let $passId = message.passId;\n if ($passId !== undefined) {\n writeVarint32(bb, 96);\n writeVarint64(bb, intToLong($passId));\n }\n\n // optional int32 star = 13;\n let $star = message.star;\n if ($star !== undefined) {\n writeVarint32(bb, 104);\n writeVarint64(bb, intToLong($star));\n }\n\n // optional int32 power = 14;\n let $power = message.power;\n if ($power !== undefined) {\n writeVarint32(bb, 112);\n writeVarint64(bb, intToLong($power));\n }\n\n // optional string userId = 15;\n let $userId = message.userId;\n if ($userId !== undefined) {\n writeVarint32(bb, 122);\n writeString(bb, $userId);\n }\n}\n\nexport function decodep_player_info(binary: Uint8Array): p_player_info {\n return _decodep_player_info(wrapByteBuffer(binary));\n}\n\nfunction _decodep_player_info(bb: ByteBuffer): p_player_info {\n let message: p_player_info = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string uid = 1;\n case 1: {\n message.uid = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 res_id = 2;\n case 2: {\n message.res_id = readVarint32(bb);\n break;\n }\n\n // optional string nickName = 3;\n case 3: {\n message.nickName = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 gold = 4;\n case 4: {\n message.gold = readVarint32(bb);\n break;\n }\n\n // optional int32 coin = 5;\n case 5: {\n message.coin = readVarint32(bb);\n break;\n }\n\n // optional int32 diamond = 6;\n case 6: {\n message.diamond = readVarint32(bb);\n break;\n }\n\n // optional int32 magic = 7;\n case 7: {\n message.magic = readVarint32(bb);\n break;\n }\n\n // optional int32 call = 8;\n case 8: {\n message.call = readVarint32(bb);\n break;\n }\n\n // optional int32 challenge = 9;\n case 9: {\n message.challenge = readVarint32(bb);\n break;\n }\n\n // optional int32 change_times = 10;\n case 10: {\n message.change_times = readVarint32(bb);\n break;\n }\n\n // optional int32 isgm = 11;\n case 11: {\n message.isgm = readVarint32(bb);\n break;\n }\n\n // optional int32 passId = 12;\n case 12: {\n message.passId = readVarint32(bb);\n break;\n }\n\n // optional int32 star = 13;\n case 13: {\n message.star = readVarint32(bb);\n break;\n }\n\n // optional int32 power = 14;\n case 14: {\n message.power = readVarint32(bb);\n break;\n }\n\n // optional string userId = 15;\n case 15: {\n message.userId = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1004 {\n uid?: string;\n}\n\nexport function encodec1004(message: c1004): Uint8Array {\n let bb = popByteBuffer();\n _encodec1004(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1004(message: c1004, bb: ByteBuffer): void {\n // optional string uid = 1;\n let $uid = message.uid;\n if ($uid !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $uid);\n }\n}\n\nexport function decodec1004(binary: Uint8Array): c1004 {\n return _decodec1004(wrapByteBuffer(binary));\n}\n\nfunction _decodec1004(bb: ByteBuffer): c1004 {\n let message: c1004 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string uid = 1;\n case 1: {\n message.uid = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1004 {\n uid?: string;\n result?: number;\n is_first_login?: number;\n playerinfo?: p_player_info;\n}\n\nexport function encodes1004(message: s1004): Uint8Array {\n let bb = popByteBuffer();\n _encodes1004(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1004(message: s1004, bb: ByteBuffer): void {\n // optional string uid = 1;\n let $uid = message.uid;\n if ($uid !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $uid);\n }\n\n // optional int32 result = 2;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 is_first_login = 3;\n let $is_first_login = message.is_first_login;\n if ($is_first_login !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($is_first_login));\n }\n\n // optional p_player_info playerinfo = 4;\n let $playerinfo = message.playerinfo;\n if ($playerinfo !== undefined) {\n writeVarint32(bb, 34);\n let nested = popByteBuffer();\n _encodep_player_info($playerinfo, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n}\n\nexport function decodes1004(binary: Uint8Array): s1004 {\n return _decodes1004(wrapByteBuffer(binary));\n}\n\nfunction _decodes1004(bb: ByteBuffer): s1004 {\n let message: s1004 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string uid = 1;\n case 1: {\n message.uid = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 result = 2;\n case 2: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 is_first_login = 3;\n case 3: {\n message.is_first_login = readVarint32(bb);\n break;\n }\n\n // optional p_player_info playerinfo = 4;\n case 4: {\n let limit = pushTemporaryLength(bb);\n message.playerinfo = _decodep_player_info(bb);\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_frist_pay {\n payId?: number;\n goodsId?: number;\n payed?: number;\n}\n\nexport function encodep_frist_pay(message: p_frist_pay): Uint8Array {\n let bb = popByteBuffer();\n _encodep_frist_pay(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_frist_pay(message: p_frist_pay, bb: ByteBuffer): void {\n // optional int32 payId = 1;\n let $payId = message.payId;\n if ($payId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($payId));\n }\n\n // optional int32 goodsId = 2;\n let $goodsId = message.goodsId;\n if ($goodsId !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($goodsId));\n }\n\n // optional int32 payed = 3;\n let $payed = message.payed;\n if ($payed !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($payed));\n }\n}\n\nexport function decodep_frist_pay(binary: Uint8Array): p_frist_pay {\n return _decodep_frist_pay(wrapByteBuffer(binary));\n}\n\nfunction _decodep_frist_pay(bb: ByteBuffer): p_frist_pay {\n let message: p_frist_pay = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 payId = 1;\n case 1: {\n message.payId = readVarint32(bb);\n break;\n }\n\n // optional int32 goodsId = 2;\n case 2: {\n message.goodsId = readVarint32(bb);\n break;\n }\n\n // optional int32 payed = 3;\n case 3: {\n message.payed = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1005 {\n}\n\nexport function encodec1005(message: c1005): Uint8Array {\n let bb = popByteBuffer();\n _encodec1005(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1005(message: c1005, bb: ByteBuffer): void {\n}\n\nexport function decodec1005(binary: Uint8Array): c1005 {\n return _decodec1005(wrapByteBuffer(binary));\n}\n\nfunction _decodec1005(bb: ByteBuffer): c1005 {\n let message: c1005 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1005 {\n starPayInfo?: p_frist_pay[];\n dimondPayInfo?: p_frist_pay[];\n}\n\nexport function encodes1005(message: s1005): Uint8Array {\n let bb = popByteBuffer();\n _encodes1005(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1005(message: s1005, bb: ByteBuffer): void {\n // repeated p_frist_pay starPayInfo = 1;\n let array$starPayInfo = message.starPayInfo;\n if (array$starPayInfo !== undefined) {\n for (let value of array$starPayInfo) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_frist_pay(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_frist_pay dimondPayInfo = 2;\n let array$dimondPayInfo = message.dimondPayInfo;\n if (array$dimondPayInfo !== undefined) {\n for (let value of array$dimondPayInfo) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_frist_pay(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1005(binary: Uint8Array): s1005 {\n return _decodes1005(wrapByteBuffer(binary));\n}\n\nfunction _decodes1005(bb: ByteBuffer): s1005 {\n let message: s1005 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_frist_pay starPayInfo = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.starPayInfo || (message.starPayInfo = []);\n values.push(_decodep_frist_pay(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_frist_pay dimondPayInfo = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.dimondPayInfo || (message.dimondPayInfo = []);\n values.push(_decodep_frist_pay(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1006 {\n}\n\nexport function encodec1006(message: c1006): Uint8Array {\n let bb = popByteBuffer();\n _encodec1006(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1006(message: c1006, bb: ByteBuffer): void {\n}\n\nexport function decodec1006(binary: Uint8Array): c1006 {\n return _decodec1006(wrapByteBuffer(binary));\n}\n\nfunction _decodec1006(bb: ByteBuffer): c1006 {\n let message: c1006 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1006 {\n unixTime?: number;\n}\n\nexport function encodes1006(message: s1006): Uint8Array {\n let bb = popByteBuffer();\n _encodes1006(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1006(message: s1006, bb: ByteBuffer): void {\n // optional int32 unixTime = 1;\n let $unixTime = message.unixTime;\n if ($unixTime !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($unixTime));\n }\n}\n\nexport function decodes1006(binary: Uint8Array): s1006 {\n return _decodes1006(wrapByteBuffer(binary));\n}\n\nfunction _decodes1006(bb: ByteBuffer): s1006 {\n let message: s1006 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 unixTime = 1;\n case 1: {\n message.unixTime = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1007 {\n reason?: number;\n}\n\nexport function encodes1007(message: s1007): Uint8Array {\n let bb = popByteBuffer();\n _encodes1007(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1007(message: s1007, bb: ByteBuffer): void {\n // optional int32 reason = 1;\n let $reason = message.reason;\n if ($reason !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($reason));\n }\n}\n\nexport function decodes1007(binary: Uint8Array): s1007 {\n return _decodes1007(wrapByteBuffer(binary));\n}\n\nfunction _decodes1007(bb: ByteBuffer): s1007 {\n let message: s1007 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 reason = 1;\n case 1: {\n message.reason = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1008 {\n sex?: number;\n}\n\nexport function encodec1008(message: c1008): Uint8Array {\n let bb = popByteBuffer();\n _encodec1008(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1008(message: c1008, bb: ByteBuffer): void {\n // optional int32 sex = 1;\n let $sex = message.sex;\n if ($sex !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($sex));\n }\n}\n\nexport function decodec1008(binary: Uint8Array): c1008 {\n return _decodec1008(wrapByteBuffer(binary));\n}\n\nfunction _decodec1008(bb: ByteBuffer): c1008 {\n let message: c1008 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 sex = 1;\n case 1: {\n message.sex = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1008 {\n nickname?: string;\n}\n\nexport function encodes1008(message: s1008): Uint8Array {\n let bb = popByteBuffer();\n _encodes1008(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1008(message: s1008, bb: ByteBuffer): void {\n // optional string nickname = 1;\n let $nickname = message.nickname;\n if ($nickname !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $nickname);\n }\n}\n\nexport function decodes1008(binary: Uint8Array): s1008 {\n return _decodes1008(wrapByteBuffer(binary));\n}\n\nfunction _decodes1008(bb: ByteBuffer): s1008 {\n let message: s1008 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string nickname = 1;\n case 1: {\n message.nickname = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1009 {\n nickname?: string;\n}\n\nexport function encodec1009(message: c1009): Uint8Array {\n let bb = popByteBuffer();\n _encodec1009(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1009(message: c1009, bb: ByteBuffer): void {\n // optional string nickname = 1;\n let $nickname = message.nickname;\n if ($nickname !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $nickname);\n }\n}\n\nexport function decodec1009(binary: Uint8Array): c1009 {\n return _decodec1009(wrapByteBuffer(binary));\n}\n\nfunction _decodec1009(bb: ByteBuffer): c1009 {\n let message: c1009 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string nickname = 1;\n case 1: {\n message.nickname = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1009 {\n result?: number;\n}\n\nexport function encodes1009(message: s1009): Uint8Array {\n let bb = popByteBuffer();\n _encodes1009(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1009(message: s1009, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1009(binary: Uint8Array): s1009 {\n return _decodes1009(wrapByteBuffer(binary));\n}\n\nfunction _decodes1009(bb: ByteBuffer): s1009 {\n let message: s1009 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1010 {\n flag?: number;\n}\n\nexport function encodec1010(message: c1010): Uint8Array {\n let bb = popByteBuffer();\n _encodec1010(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1010(message: c1010, bb: ByteBuffer): void {\n // optional int32 flag = 1;\n let $flag = message.flag;\n if ($flag !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($flag));\n }\n}\n\nexport function decodec1010(binary: Uint8Array): c1010 {\n return _decodec1010(wrapByteBuffer(binary));\n}\n\nfunction _decodec1010(bb: ByteBuffer): c1010 {\n let message: c1010 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 flag = 1;\n case 1: {\n message.flag = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1012 {\n pic_id?: number;\n}\n\nexport function encodec1012(message: c1012): Uint8Array {\n let bb = popByteBuffer();\n _encodec1012(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1012(message: c1012, bb: ByteBuffer): void {\n // optional int32 pic_id = 1;\n let $pic_id = message.pic_id;\n if ($pic_id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($pic_id));\n }\n}\n\nexport function decodec1012(binary: Uint8Array): c1012 {\n return _decodec1012(wrapByteBuffer(binary));\n}\n\nfunction _decodec1012(bb: ByteBuffer): c1012 {\n let message: c1012 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 pic_id = 1;\n case 1: {\n message.pic_id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1012 {\n result?: number;\n pic_id?: number;\n}\n\nexport function encodes1012(message: s1012): Uint8Array {\n let bb = popByteBuffer();\n _encodes1012(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1012(message: s1012, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 pic_id = 2;\n let $pic_id = message.pic_id;\n if ($pic_id !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($pic_id));\n }\n}\n\nexport function decodes1012(binary: Uint8Array): s1012 {\n return _decodes1012(wrapByteBuffer(binary));\n}\n\nfunction _decodes1012(bb: ByteBuffer): s1012 {\n let message: s1012 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 pic_id = 2;\n case 2: {\n message.pic_id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1013 {\n}\n\nexport function encodec1013(message: c1013): Uint8Array {\n let bb = popByteBuffer();\n _encodec1013(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1013(message: c1013, bb: ByteBuffer): void {\n}\n\nexport function decodec1013(binary: Uint8Array): c1013 {\n return _decodec1013(wrapByteBuffer(binary));\n}\n\nfunction _decodec1013(bb: ByteBuffer): c1013 {\n let message: c1013 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1013 {\n pic_list?: number[];\n}\n\nexport function encodes1013(message: s1013): Uint8Array {\n let bb = popByteBuffer();\n _encodes1013(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1013(message: s1013, bb: ByteBuffer): void {\n // repeated int32 pic_list = 1;\n let array$pic_list = message.pic_list;\n if (array$pic_list !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$pic_list) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 10);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodes1013(binary: Uint8Array): s1013 {\n return _decodes1013(wrapByteBuffer(binary));\n}\n\nfunction _decodes1013(bb: ByteBuffer): s1013 {\n let message: s1013 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated int32 pic_list = 1;\n case 1: {\n let values = message.pic_list || (message.pic_list = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1014 {\n}\n\nexport function encodec1014(message: c1014): Uint8Array {\n let bb = popByteBuffer();\n _encodec1014(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1014(message: c1014, bb: ByteBuffer): void {\n}\n\nexport function decodec1014(binary: Uint8Array): c1014 {\n return _decodec1014(wrapByteBuffer(binary));\n}\n\nfunction _decodec1014(bb: ByteBuffer): c1014 {\n let message: c1014 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1014 {\n isChange?: number;\n}\n\nexport function encodes1014(message: s1014): Uint8Array {\n let bb = popByteBuffer();\n _encodes1014(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1014(message: s1014, bb: ByteBuffer): void {\n // optional int32 isChange = 1;\n let $isChange = message.isChange;\n if ($isChange !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($isChange));\n }\n}\n\nexport function decodes1014(binary: Uint8Array): s1014 {\n return _decodes1014(wrapByteBuffer(binary));\n}\n\nfunction _decodes1014(bb: ByteBuffer): s1014 {\n let message: s1014 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 isChange = 1;\n case 1: {\n message.isChange = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1016 {\n attr_type?: number;\n attr_value?: number;\n}\n\nexport function encodes1016(message: s1016): Uint8Array {\n let bb = popByteBuffer();\n _encodes1016(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1016(message: s1016, bb: ByteBuffer): void {\n // optional int32 attr_type = 1;\n let $attr_type = message.attr_type;\n if ($attr_type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($attr_type));\n }\n\n // optional int32 attr_value = 2;\n let $attr_value = message.attr_value;\n if ($attr_value !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($attr_value));\n }\n}\n\nexport function decodes1016(binary: Uint8Array): s1016 {\n return _decodes1016(wrapByteBuffer(binary));\n}\n\nfunction _decodes1016(bb: ByteBuffer): s1016 {\n let message: s1016 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 attr_type = 1;\n case 1: {\n message.attr_type = readVarint32(bb);\n break;\n }\n\n // optional int32 attr_value = 2;\n case 2: {\n message.attr_value = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1017 {\n powerOld?: number;\n powerNew?: number;\n src?: number;\n}\n\nexport function encodes1017(message: s1017): Uint8Array {\n let bb = popByteBuffer();\n _encodes1017(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1017(message: s1017, bb: ByteBuffer): void {\n // optional int32 powerOld = 1;\n let $powerOld = message.powerOld;\n if ($powerOld !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($powerOld));\n }\n\n // optional int32 powerNew = 2;\n let $powerNew = message.powerNew;\n if ($powerNew !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($powerNew));\n }\n\n // optional int32 src = 3;\n let $src = message.src;\n if ($src !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($src));\n }\n}\n\nexport function decodes1017(binary: Uint8Array): s1017 {\n return _decodes1017(wrapByteBuffer(binary));\n}\n\nfunction _decodes1017(bb: ByteBuffer): s1017 {\n let message: s1017 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 powerOld = 1;\n case 1: {\n message.powerOld = readVarint32(bb);\n break;\n }\n\n // optional int32 powerNew = 2;\n case 2: {\n message.powerNew = readVarint32(bb);\n break;\n }\n\n // optional int32 src = 3;\n case 3: {\n message.src = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1020 {\n id?: number;\n}\n\nexport function encodec1020(message: c1020): Uint8Array {\n let bb = popByteBuffer();\n _encodec1020(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1020(message: c1020, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n}\n\nexport function decodec1020(binary: Uint8Array): c1020 {\n return _decodec1020(wrapByteBuffer(binary));\n}\n\nfunction _decodec1020(bb: ByteBuffer): c1020 {\n let message: c1020 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1020 {\n type?: number;\n ids?: number[];\n}\n\nexport function encodes1020(message: s1020): Uint8Array {\n let bb = popByteBuffer();\n _encodes1020(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1020(message: s1020, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n\n // repeated int32 ids = 2;\n let array$ids = message.ids;\n if (array$ids !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$ids) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 18);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodes1020(binary: Uint8Array): s1020 {\n return _decodes1020(wrapByteBuffer(binary));\n}\n\nfunction _decodes1020(bb: ByteBuffer): s1020 {\n let message: s1020 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n // repeated int32 ids = 2;\n case 2: {\n let values = message.ids || (message.ids = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_buff {\n atkValue?: number;\n atkRate?: number;\n defValue?: number;\n defRate?: number;\n hpValue?: number;\n hpRate?: number;\n hurtRate?: number;\n skillHurtRate?: number;\n baoJiRate?: number;\n baoJiHurtRate?: number;\n mingRate?: number;\n zhiRate?: number;\n deHurtRate?: number;\n deBaoJiRate?: number;\n deShanRate?: number;\n deZhiRate?: number;\n}\n\nexport function encodep_buff(message: p_buff): Uint8Array {\n let bb = popByteBuffer();\n _encodep_buff(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_buff(message: p_buff, bb: ByteBuffer): void {\n // optional int32 atkValue = 1;\n let $atkValue = message.atkValue;\n if ($atkValue !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($atkValue));\n }\n\n // optional int32 atkRate = 2;\n let $atkRate = message.atkRate;\n if ($atkRate !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($atkRate));\n }\n\n // optional int32 defValue = 3;\n let $defValue = message.defValue;\n if ($defValue !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($defValue));\n }\n\n // optional int32 defRate = 4;\n let $defRate = message.defRate;\n if ($defRate !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($defRate));\n }\n\n // optional int32 hpValue = 5;\n let $hpValue = message.hpValue;\n if ($hpValue !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($hpValue));\n }\n\n // optional int32 hpRate = 6;\n let $hpRate = message.hpRate;\n if ($hpRate !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($hpRate));\n }\n\n // optional int32 hurtRate = 7;\n let $hurtRate = message.hurtRate;\n if ($hurtRate !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($hurtRate));\n }\n\n // optional int32 skillHurtRate = 8;\n let $skillHurtRate = message.skillHurtRate;\n if ($skillHurtRate !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($skillHurtRate));\n }\n\n // optional int32 baoJiRate = 9;\n let $baoJiRate = message.baoJiRate;\n if ($baoJiRate !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($baoJiRate));\n }\n\n // optional int32 baoJiHurtRate = 10;\n let $baoJiHurtRate = message.baoJiHurtRate;\n if ($baoJiHurtRate !== undefined) {\n writeVarint32(bb, 80);\n writeVarint64(bb, intToLong($baoJiHurtRate));\n }\n\n // optional int32 mingRate = 11;\n let $mingRate = message.mingRate;\n if ($mingRate !== undefined) {\n writeVarint32(bb, 88);\n writeVarint64(bb, intToLong($mingRate));\n }\n\n // optional int32 zhiRate = 12;\n let $zhiRate = message.zhiRate;\n if ($zhiRate !== undefined) {\n writeVarint32(bb, 96);\n writeVarint64(bb, intToLong($zhiRate));\n }\n\n // optional int32 deHurtRate = 13;\n let $deHurtRate = message.deHurtRate;\n if ($deHurtRate !== undefined) {\n writeVarint32(bb, 104);\n writeVarint64(bb, intToLong($deHurtRate));\n }\n\n // optional int32 deBaoJiRate = 14;\n let $deBaoJiRate = message.deBaoJiRate;\n if ($deBaoJiRate !== undefined) {\n writeVarint32(bb, 112);\n writeVarint64(bb, intToLong($deBaoJiRate));\n }\n\n // optional int32 deShanRate = 15;\n let $deShanRate = message.deShanRate;\n if ($deShanRate !== undefined) {\n writeVarint32(bb, 120);\n writeVarint64(bb, intToLong($deShanRate));\n }\n\n // optional int32 deZhiRate = 16;\n let $deZhiRate = message.deZhiRate;\n if ($deZhiRate !== undefined) {\n writeVarint32(bb, 128);\n writeVarint64(bb, intToLong($deZhiRate));\n }\n}\n\nexport function decodep_buff(binary: Uint8Array): p_buff {\n return _decodep_buff(wrapByteBuffer(binary));\n}\n\nfunction _decodep_buff(bb: ByteBuffer): p_buff {\n let message: p_buff = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 atkValue = 1;\n case 1: {\n message.atkValue = readVarint32(bb);\n break;\n }\n\n // optional int32 atkRate = 2;\n case 2: {\n message.atkRate = readVarint32(bb);\n break;\n }\n\n // optional int32 defValue = 3;\n case 3: {\n message.defValue = readVarint32(bb);\n break;\n }\n\n // optional int32 defRate = 4;\n case 4: {\n message.defRate = readVarint32(bb);\n break;\n }\n\n // optional int32 hpValue = 5;\n case 5: {\n message.hpValue = readVarint32(bb);\n break;\n }\n\n // optional int32 hpRate = 6;\n case 6: {\n message.hpRate = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtRate = 7;\n case 7: {\n message.hurtRate = readVarint32(bb);\n break;\n }\n\n // optional int32 skillHurtRate = 8;\n case 8: {\n message.skillHurtRate = readVarint32(bb);\n break;\n }\n\n // optional int32 baoJiRate = 9;\n case 9: {\n message.baoJiRate = readVarint32(bb);\n break;\n }\n\n // optional int32 baoJiHurtRate = 10;\n case 10: {\n message.baoJiHurtRate = readVarint32(bb);\n break;\n }\n\n // optional int32 mingRate = 11;\n case 11: {\n message.mingRate = readVarint32(bb);\n break;\n }\n\n // optional int32 zhiRate = 12;\n case 12: {\n message.zhiRate = readVarint32(bb);\n break;\n }\n\n // optional int32 deHurtRate = 13;\n case 13: {\n message.deHurtRate = readVarint32(bb);\n break;\n }\n\n // optional int32 deBaoJiRate = 14;\n case 14: {\n message.deBaoJiRate = readVarint32(bb);\n break;\n }\n\n // optional int32 deShanRate = 15;\n case 15: {\n message.deShanRate = readVarint32(bb);\n break;\n }\n\n // optional int32 deZhiRate = 16;\n case 16: {\n message.deZhiRate = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1021 {\n allBuff?: p_buff;\n heroBuff?: p_buff;\n allArmyBuff?: p_buff;\n zhanShiBuff?: p_buff;\n faShiBuff?: p_buff;\n ciKeBuff?: p_buff;\n paoShouBuff?: p_buff;\n heroSkillCd?: number;\n}\n\nexport function encodes1021(message: s1021): Uint8Array {\n let bb = popByteBuffer();\n _encodes1021(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1021(message: s1021, bb: ByteBuffer): void {\n // optional p_buff allBuff = 1;\n let $allBuff = message.allBuff;\n if ($allBuff !== undefined) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_buff($allBuff, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n\n // optional p_buff heroBuff = 2;\n let $heroBuff = message.heroBuff;\n if ($heroBuff !== undefined) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_buff($heroBuff, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n\n // optional p_buff allArmyBuff = 3;\n let $allArmyBuff = message.allArmyBuff;\n if ($allArmyBuff !== undefined) {\n writeVarint32(bb, 26);\n let nested = popByteBuffer();\n _encodep_buff($allArmyBuff, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n\n // optional p_buff zhanShiBuff = 4;\n let $zhanShiBuff = message.zhanShiBuff;\n if ($zhanShiBuff !== undefined) {\n writeVarint32(bb, 34);\n let nested = popByteBuffer();\n _encodep_buff($zhanShiBuff, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n\n // optional p_buff faShiBuff = 5;\n let $faShiBuff = message.faShiBuff;\n if ($faShiBuff !== undefined) {\n writeVarint32(bb, 42);\n let nested = popByteBuffer();\n _encodep_buff($faShiBuff, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n\n // optional p_buff ciKeBuff = 6;\n let $ciKeBuff = message.ciKeBuff;\n if ($ciKeBuff !== undefined) {\n writeVarint32(bb, 50);\n let nested = popByteBuffer();\n _encodep_buff($ciKeBuff, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n\n // optional p_buff paoShouBuff = 7;\n let $paoShouBuff = message.paoShouBuff;\n if ($paoShouBuff !== undefined) {\n writeVarint32(bb, 58);\n let nested = popByteBuffer();\n _encodep_buff($paoShouBuff, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n\n // optional int32 heroSkillCd = 8;\n let $heroSkillCd = message.heroSkillCd;\n if ($heroSkillCd !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($heroSkillCd));\n }\n}\n\nexport function decodes1021(binary: Uint8Array): s1021 {\n return _decodes1021(wrapByteBuffer(binary));\n}\n\nfunction _decodes1021(bb: ByteBuffer): s1021 {\n let message: s1021 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional p_buff allBuff = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n message.allBuff = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n // optional p_buff heroBuff = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n message.heroBuff = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n // optional p_buff allArmyBuff = 3;\n case 3: {\n let limit = pushTemporaryLength(bb);\n message.allArmyBuff = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n // optional p_buff zhanShiBuff = 4;\n case 4: {\n let limit = pushTemporaryLength(bb);\n message.zhanShiBuff = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n // optional p_buff faShiBuff = 5;\n case 5: {\n let limit = pushTemporaryLength(bb);\n message.faShiBuff = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n // optional p_buff ciKeBuff = 6;\n case 6: {\n let limit = pushTemporaryLength(bb);\n message.ciKeBuff = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n // optional p_buff paoShouBuff = 7;\n case 7: {\n let limit = pushTemporaryLength(bb);\n message.paoShouBuff = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n // optional int32 heroSkillCd = 8;\n case 8: {\n message.heroSkillCd = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1022 {\n}\n\nexport function encodec1022(message: c1022): Uint8Array {\n let bb = popByteBuffer();\n _encodec1022(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1022(message: c1022, bb: ByteBuffer): void {\n}\n\nexport function decodec1022(binary: Uint8Array): c1022 {\n return _decodec1022(wrapByteBuffer(binary));\n}\n\nfunction _decodec1022(bb: ByteBuffer): c1022 {\n let message: c1022 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1022 {\n day1?: number;\n todaySign?: number;\n day2?: number;\n rewardDay2?: number;\n}\n\nexport function encodes1022(message: s1022): Uint8Array {\n let bb = popByteBuffer();\n _encodes1022(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1022(message: s1022, bb: ByteBuffer): void {\n // optional int32 day1 = 1;\n let $day1 = message.day1;\n if ($day1 !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($day1));\n }\n\n // optional int32 todaySign = 2;\n let $todaySign = message.todaySign;\n if ($todaySign !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($todaySign));\n }\n\n // optional int32 day2 = 3;\n let $day2 = message.day2;\n if ($day2 !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($day2));\n }\n\n // optional int32 rewardDay2 = 4;\n let $rewardDay2 = message.rewardDay2;\n if ($rewardDay2 !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($rewardDay2));\n }\n}\n\nexport function decodes1022(binary: Uint8Array): s1022 {\n return _decodes1022(wrapByteBuffer(binary));\n}\n\nfunction _decodes1022(bb: ByteBuffer): s1022 {\n let message: s1022 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 day1 = 1;\n case 1: {\n message.day1 = readVarint32(bb);\n break;\n }\n\n // optional int32 todaySign = 2;\n case 2: {\n message.todaySign = readVarint32(bb);\n break;\n }\n\n // optional int32 day2 = 3;\n case 3: {\n message.day2 = readVarint32(bb);\n break;\n }\n\n // optional int32 rewardDay2 = 4;\n case 4: {\n message.rewardDay2 = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1023 {\n}\n\nexport function encodec1023(message: c1023): Uint8Array {\n let bb = popByteBuffer();\n _encodec1023(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1023(message: c1023, bb: ByteBuffer): void {\n}\n\nexport function decodec1023(binary: Uint8Array): c1023 {\n return _decodec1023(wrapByteBuffer(binary));\n}\n\nfunction _decodec1023(bb: ByteBuffer): c1023 {\n let message: c1023 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1023 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1023(message: s1023): Uint8Array {\n let bb = popByteBuffer();\n _encodes1023(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1023(message: s1023, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1023(binary: Uint8Array): s1023 {\n return _decodes1023(wrapByteBuffer(binary));\n}\n\nfunction _decodes1023(bb: ByteBuffer): s1023 {\n let message: s1023 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1024 {\n}\n\nexport function encodec1024(message: c1024): Uint8Array {\n let bb = popByteBuffer();\n _encodec1024(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1024(message: c1024, bb: ByteBuffer): void {\n}\n\nexport function decodec1024(binary: Uint8Array): c1024 {\n return _decodec1024(wrapByteBuffer(binary));\n}\n\nfunction _decodec1024(bb: ByteBuffer): c1024 {\n let message: c1024 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1024 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1024(message: s1024): Uint8Array {\n let bb = popByteBuffer();\n _encodes1024(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1024(message: s1024, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1024(binary: Uint8Array): s1024 {\n return _decodes1024(wrapByteBuffer(binary));\n}\n\nfunction _decodes1024(bb: ByteBuffer): s1024 {\n let message: s1024 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1025 {\n}\n\nexport function encodec1025(message: c1025): Uint8Array {\n let bb = popByteBuffer();\n _encodec1025(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1025(message: c1025, bb: ByteBuffer): void {\n}\n\nexport function decodec1025(binary: Uint8Array): c1025 {\n return _decodec1025(wrapByteBuffer(binary));\n}\n\nfunction _decodec1025(bb: ByteBuffer): c1025 {\n let message: c1025 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1025 {\n id1?: number;\n lv1?: number;\n exp1?: number;\n endTime1?: number;\n id2?: number;\n lv2?: number;\n exp2?: number;\n endTime2?: number;\n id3?: number;\n lv3?: number;\n exp3?: number;\n endTime3?: number;\n id?: number;\n lv?: number;\n exp?: number;\n}\n\nexport function encodes1025(message: s1025): Uint8Array {\n let bb = popByteBuffer();\n _encodes1025(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1025(message: s1025, bb: ByteBuffer): void {\n // optional int32 id1 = 1;\n let $id1 = message.id1;\n if ($id1 !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id1));\n }\n\n // optional int32 lv1 = 2;\n let $lv1 = message.lv1;\n if ($lv1 !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv1));\n }\n\n // optional int32 exp1 = 3;\n let $exp1 = message.exp1;\n if ($exp1 !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($exp1));\n }\n\n // optional int32 endTime1 = 4;\n let $endTime1 = message.endTime1;\n if ($endTime1 !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($endTime1));\n }\n\n // optional int32 id2 = 5;\n let $id2 = message.id2;\n if ($id2 !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($id2));\n }\n\n // optional int32 lv2 = 6;\n let $lv2 = message.lv2;\n if ($lv2 !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($lv2));\n }\n\n // optional int32 exp2 = 7;\n let $exp2 = message.exp2;\n if ($exp2 !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($exp2));\n }\n\n // optional int32 endTime2 = 8;\n let $endTime2 = message.endTime2;\n if ($endTime2 !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($endTime2));\n }\n\n // optional int32 id3 = 9;\n let $id3 = message.id3;\n if ($id3 !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($id3));\n }\n\n // optional int32 lv3 = 10;\n let $lv3 = message.lv3;\n if ($lv3 !== undefined) {\n writeVarint32(bb, 80);\n writeVarint64(bb, intToLong($lv3));\n }\n\n // optional int32 exp3 = 11;\n let $exp3 = message.exp3;\n if ($exp3 !== undefined) {\n writeVarint32(bb, 88);\n writeVarint64(bb, intToLong($exp3));\n }\n\n // optional int32 endTime3 = 12;\n let $endTime3 = message.endTime3;\n if ($endTime3 !== undefined) {\n writeVarint32(bb, 96);\n writeVarint64(bb, intToLong($endTime3));\n }\n\n // optional int32 id = 13;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 104);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 lv = 14;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 112);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 exp = 15;\n let $exp = message.exp;\n if ($exp !== undefined) {\n writeVarint32(bb, 120);\n writeVarint64(bb, intToLong($exp));\n }\n}\n\nexport function decodes1025(binary: Uint8Array): s1025 {\n return _decodes1025(wrapByteBuffer(binary));\n}\n\nfunction _decodes1025(bb: ByteBuffer): s1025 {\n let message: s1025 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id1 = 1;\n case 1: {\n message.id1 = readVarint32(bb);\n break;\n }\n\n // optional int32 lv1 = 2;\n case 2: {\n message.lv1 = readVarint32(bb);\n break;\n }\n\n // optional int32 exp1 = 3;\n case 3: {\n message.exp1 = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime1 = 4;\n case 4: {\n message.endTime1 = readVarint32(bb);\n break;\n }\n\n // optional int32 id2 = 5;\n case 5: {\n message.id2 = readVarint32(bb);\n break;\n }\n\n // optional int32 lv2 = 6;\n case 6: {\n message.lv2 = readVarint32(bb);\n break;\n }\n\n // optional int32 exp2 = 7;\n case 7: {\n message.exp2 = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime2 = 8;\n case 8: {\n message.endTime2 = readVarint32(bb);\n break;\n }\n\n // optional int32 id3 = 9;\n case 9: {\n message.id3 = readVarint32(bb);\n break;\n }\n\n // optional int32 lv3 = 10;\n case 10: {\n message.lv3 = readVarint32(bb);\n break;\n }\n\n // optional int32 exp3 = 11;\n case 11: {\n message.exp3 = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime3 = 12;\n case 12: {\n message.endTime3 = readVarint32(bb);\n break;\n }\n\n // optional int32 id = 13;\n case 13: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 14;\n case 14: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 exp = 15;\n case 15: {\n message.exp = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1026 {\n id?: number;\n}\n\nexport function encodec1026(message: c1026): Uint8Array {\n let bb = popByteBuffer();\n _encodec1026(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1026(message: c1026, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n}\n\nexport function decodec1026(binary: Uint8Array): c1026 {\n return _decodec1026(wrapByteBuffer(binary));\n}\n\nfunction _decodec1026(bb: ByteBuffer): c1026 {\n let message: c1026 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1026 {\n result?: number;\n}\n\nexport function encodes1026(message: s1026): Uint8Array {\n let bb = popByteBuffer();\n _encodes1026(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1026(message: s1026, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1026(binary: Uint8Array): s1026 {\n return _decodes1026(wrapByteBuffer(binary));\n}\n\nfunction _decodes1026(bb: ByteBuffer): s1026 {\n let message: s1026 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1027 {\n}\n\nexport function encodec1027(message: c1027): Uint8Array {\n let bb = popByteBuffer();\n _encodec1027(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1027(message: c1027, bb: ByteBuffer): void {\n}\n\nexport function decodec1027(binary: Uint8Array): c1027 {\n return _decodec1027(wrapByteBuffer(binary));\n}\n\nfunction _decodec1027(bb: ByteBuffer): c1027 {\n let message: c1027 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1027 {\n id?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1027(message: s1027): Uint8Array {\n let bb = popByteBuffer();\n _encodes1027(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1027(message: s1027, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1027(binary: Uint8Array): s1027 {\n return _decodes1027(wrapByteBuffer(binary));\n}\n\nfunction _decodes1027(bb: ByteBuffer): s1027 {\n let message: s1027 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1028 {\n}\n\nexport function encodec1028(message: c1028): Uint8Array {\n let bb = popByteBuffer();\n _encodec1028(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1028(message: c1028, bb: ByteBuffer): void {\n}\n\nexport function decodec1028(binary: Uint8Array): c1028 {\n return _decodec1028(wrapByteBuffer(binary));\n}\n\nfunction _decodec1028(bb: ByteBuffer): c1028 {\n let message: c1028 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1028 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1028(message: s1028): Uint8Array {\n let bb = popByteBuffer();\n _encodes1028(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1028(message: s1028, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1028(binary: Uint8Array): s1028 {\n return _decodes1028(wrapByteBuffer(binary));\n}\n\nfunction _decodes1028(bb: ByteBuffer): s1028 {\n let message: s1028 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_cf_gift {\n type?: number;\n id?: number;\n endTime?: number;\n cost?: number;\n rewards?: p_reward[];\n}\n\nexport function encodep_cf_gift(message: p_cf_gift): Uint8Array {\n let bb = popByteBuffer();\n _encodep_cf_gift(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_cf_gift(message: p_cf_gift, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n\n // optional int32 id = 2;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 endTime = 3;\n let $endTime = message.endTime;\n if ($endTime !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($endTime));\n }\n\n // optional int32 cost = 4;\n let $cost = message.cost;\n if ($cost !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($cost));\n }\n\n // repeated p_reward rewards = 5;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 42);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodep_cf_gift(binary: Uint8Array): p_cf_gift {\n return _decodep_cf_gift(wrapByteBuffer(binary));\n}\n\nfunction _decodep_cf_gift(bb: ByteBuffer): p_cf_gift {\n let message: p_cf_gift = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n // optional int32 id = 2;\n case 2: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime = 3;\n case 3: {\n message.endTime = readVarint32(bb);\n break;\n }\n\n // optional int32 cost = 4;\n case 4: {\n message.cost = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 5;\n case 5: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1029 {\n}\n\nexport function encodec1029(message: c1029): Uint8Array {\n let bb = popByteBuffer();\n _encodec1029(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1029(message: c1029, bb: ByteBuffer): void {\n}\n\nexport function decodec1029(binary: Uint8Array): c1029 {\n return _decodec1029(wrapByteBuffer(binary));\n}\n\nfunction _decodec1029(bb: ByteBuffer): c1029 {\n let message: c1029 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1029 {\n giftList?: p_cf_gift[];\n}\n\nexport function encodes1029(message: s1029): Uint8Array {\n let bb = popByteBuffer();\n _encodes1029(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1029(message: s1029, bb: ByteBuffer): void {\n // repeated p_cf_gift giftList = 1;\n let array$giftList = message.giftList;\n if (array$giftList !== undefined) {\n for (let value of array$giftList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_cf_gift(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1029(binary: Uint8Array): s1029 {\n return _decodes1029(wrapByteBuffer(binary));\n}\n\nfunction _decodes1029(bb: ByteBuffer): s1029 {\n let message: s1029 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_cf_gift giftList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.giftList || (message.giftList = []);\n values.push(_decodep_cf_gift(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1030 {\n type?: number;\n}\n\nexport function encodec1030(message: c1030): Uint8Array {\n let bb = popByteBuffer();\n _encodec1030(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1030(message: c1030, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1030(binary: Uint8Array): c1030 {\n return _decodec1030(wrapByteBuffer(binary));\n}\n\nfunction _decodec1030(bb: ByteBuffer): c1030 {\n let message: c1030 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1030 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1030(message: s1030): Uint8Array {\n let bb = popByteBuffer();\n _encodes1030(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1030(message: s1030, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1030(binary: Uint8Array): s1030 {\n return _decodes1030(wrapByteBuffer(binary));\n}\n\nfunction _decodes1030(bb: ByteBuffer): s1030 {\n let message: s1030 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1031 {\n type?: number;\n}\n\nexport function encodec1031(message: c1031): Uint8Array {\n let bb = popByteBuffer();\n _encodec1031(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1031(message: c1031, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1031(binary: Uint8Array): c1031 {\n return _decodec1031(wrapByteBuffer(binary));\n}\n\nfunction _decodec1031(bb: ByteBuffer): c1031 {\n let message: c1031 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1033 {\n}\n\nexport function encodec1033(message: c1033): Uint8Array {\n let bb = popByteBuffer();\n _encodec1033(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1033(message: c1033, bb: ByteBuffer): void {\n}\n\nexport function decodec1033(binary: Uint8Array): c1033 {\n return _decodec1033(wrapByteBuffer(binary));\n}\n\nfunction _decodec1033(bb: ByteBuffer): c1033 {\n let message: c1033 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1035 {\n uid?: string;\n token?: string;\n sessionID?: string;\n}\n\nexport function encodec1035(message: c1035): Uint8Array {\n let bb = popByteBuffer();\n _encodec1035(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1035(message: c1035, bb: ByteBuffer): void {\n // optional string uid = 1;\n let $uid = message.uid;\n if ($uid !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $uid);\n }\n\n // optional string token = 2;\n let $token = message.token;\n if ($token !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $token);\n }\n\n // optional string sessionID = 3;\n let $sessionID = message.sessionID;\n if ($sessionID !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $sessionID);\n }\n}\n\nexport function decodec1035(binary: Uint8Array): c1035 {\n return _decodec1035(wrapByteBuffer(binary));\n}\n\nfunction _decodec1035(bb: ByteBuffer): c1035 {\n let message: c1035 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string uid = 1;\n case 1: {\n message.uid = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string token = 2;\n case 2: {\n message.token = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string sessionID = 3;\n case 3: {\n message.sessionID = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1035 {\n result?: number;\n}\n\nexport function encodes1035(message: s1035): Uint8Array {\n let bb = popByteBuffer();\n _encodes1035(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1035(message: s1035, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1035(binary: Uint8Array): s1035 {\n return _decodes1035(wrapByteBuffer(binary));\n}\n\nfunction _decodes1035(bb: ByteBuffer): s1035 {\n let message: s1035 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1037 {\n guideID?: number;\n}\n\nexport function encodec1037(message: c1037): Uint8Array {\n let bb = popByteBuffer();\n _encodec1037(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1037(message: c1037, bb: ByteBuffer): void {\n // optional int32 guideID = 1;\n let $guideID = message.guideID;\n if ($guideID !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($guideID));\n }\n}\n\nexport function decodec1037(binary: Uint8Array): c1037 {\n return _decodec1037(wrapByteBuffer(binary));\n}\n\nfunction _decodec1037(bb: ByteBuffer): c1037 {\n let message: c1037 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 guideID = 1;\n case 1: {\n message.guideID = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1037 {\n result?: number;\n}\n\nexport function encodes1037(message: s1037): Uint8Array {\n let bb = popByteBuffer();\n _encodes1037(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1037(message: s1037, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1037(binary: Uint8Array): s1037 {\n return _decodes1037(wrapByteBuffer(binary));\n}\n\nfunction _decodes1037(bb: ByteBuffer): s1037 {\n let message: s1037 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1038 {\n}\n\nexport function encodec1038(message: c1038): Uint8Array {\n let bb = popByteBuffer();\n _encodec1038(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1038(message: c1038, bb: ByteBuffer): void {\n}\n\nexport function decodec1038(binary: Uint8Array): c1038 {\n return _decodec1038(wrapByteBuffer(binary));\n}\n\nfunction _decodec1038(bb: ByteBuffer): c1038 {\n let message: c1038 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1038 {\n guideIDs?: number[];\n}\n\nexport function encodes1038(message: s1038): Uint8Array {\n let bb = popByteBuffer();\n _encodes1038(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1038(message: s1038, bb: ByteBuffer): void {\n // repeated int32 guideIDs = 1;\n let array$guideIDs = message.guideIDs;\n if (array$guideIDs !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$guideIDs) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 10);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodes1038(binary: Uint8Array): s1038 {\n return _decodes1038(wrapByteBuffer(binary));\n}\n\nfunction _decodes1038(bb: ByteBuffer): s1038 {\n let message: s1038 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated int32 guideIDs = 1;\n case 1: {\n let values = message.guideIDs || (message.guideIDs = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1039 {\n}\n\nexport function encodec1039(message: c1039): Uint8Array {\n let bb = popByteBuffer();\n _encodec1039(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1039(message: c1039, bb: ByteBuffer): void {\n}\n\nexport function decodec1039(binary: Uint8Array): c1039 {\n return _decodec1039(wrapByteBuffer(binary));\n}\n\nfunction _decodec1039(bb: ByteBuffer): c1039 {\n let message: c1039 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1039 {\n open_time?: number;\n}\n\nexport function encodes1039(message: s1039): Uint8Array {\n let bb = popByteBuffer();\n _encodes1039(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1039(message: s1039, bb: ByteBuffer): void {\n // optional int32 open_time = 1;\n let $open_time = message.open_time;\n if ($open_time !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($open_time));\n }\n}\n\nexport function decodes1039(binary: Uint8Array): s1039 {\n return _decodes1039(wrapByteBuffer(binary));\n}\n\nfunction _decodes1039(bb: ByteBuffer): s1039 {\n let message: s1039 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 open_time = 1;\n case 1: {\n message.open_time = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_boss_task {\n nowNum?: number;\n maxNum?: number;\n}\n\nexport function encodep_boss_task(message: p_boss_task): Uint8Array {\n let bb = popByteBuffer();\n _encodep_boss_task(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_boss_task(message: p_boss_task, bb: ByteBuffer): void {\n // optional int32 nowNum = 1;\n let $nowNum = message.nowNum;\n if ($nowNum !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($nowNum));\n }\n\n // optional int32 maxNum = 2;\n let $maxNum = message.maxNum;\n if ($maxNum !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($maxNum));\n }\n}\n\nexport function decodep_boss_task(binary: Uint8Array): p_boss_task {\n return _decodep_boss_task(wrapByteBuffer(binary));\n}\n\nfunction _decodep_boss_task(bb: ByteBuffer): p_boss_task {\n let message: p_boss_task = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 nowNum = 1;\n case 1: {\n message.nowNum = readVarint32(bb);\n break;\n }\n\n // optional int32 maxNum = 2;\n case 2: {\n message.maxNum = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1049 {\n bossId?: number;\n state?: number;\n comeTime?: number;\n deBuffBoss?: number;\n tasks?: p_boss_task[];\n}\n\nexport function encodes1049(message: s1049): Uint8Array {\n let bb = popByteBuffer();\n _encodes1049(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1049(message: s1049, bb: ByteBuffer): void {\n // optional int32 bossId = 1;\n let $bossId = message.bossId;\n if ($bossId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($bossId));\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // optional int32 comeTime = 3;\n let $comeTime = message.comeTime;\n if ($comeTime !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($comeTime));\n }\n\n // optional int32 deBuffBoss = 4;\n let $deBuffBoss = message.deBuffBoss;\n if ($deBuffBoss !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($deBuffBoss));\n }\n\n // repeated p_boss_task tasks = 5;\n let array$tasks = message.tasks;\n if (array$tasks !== undefined) {\n for (let value of array$tasks) {\n writeVarint32(bb, 42);\n let nested = popByteBuffer();\n _encodep_boss_task(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1049(binary: Uint8Array): s1049 {\n return _decodes1049(wrapByteBuffer(binary));\n}\n\nfunction _decodes1049(bb: ByteBuffer): s1049 {\n let message: s1049 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 bossId = 1;\n case 1: {\n message.bossId = readVarint32(bb);\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // optional int32 comeTime = 3;\n case 3: {\n message.comeTime = readVarint32(bb);\n break;\n }\n\n // optional int32 deBuffBoss = 4;\n case 4: {\n message.deBuffBoss = readVarint32(bb);\n break;\n }\n\n // repeated p_boss_task tasks = 5;\n case 5: {\n let limit = pushTemporaryLength(bb);\n let values = message.tasks || (message.tasks = []);\n values.push(_decodep_boss_task(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1050 {\n id?: number;\n}\n\nexport function encodec1050(message: c1050): Uint8Array {\n let bb = popByteBuffer();\n _encodec1050(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1050(message: c1050, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n}\n\nexport function decodec1050(binary: Uint8Array): c1050 {\n return _decodec1050(wrapByteBuffer(binary));\n}\n\nfunction _decodec1050(bb: ByteBuffer): c1050 {\n let message: c1050 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1050 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1050(message: s1050): Uint8Array {\n let bb = popByteBuffer();\n _encodes1050(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1050(message: s1050, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1050(binary: Uint8Array): s1050 {\n return _decodes1050(wrapByteBuffer(binary));\n}\n\nfunction _decodes1050(bb: ByteBuffer): s1050 {\n let message: s1050 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1051 {\n idList?: number[];\n}\n\nexport function encodes1051(message: s1051): Uint8Array {\n let bb = popByteBuffer();\n _encodes1051(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1051(message: s1051, bb: ByteBuffer): void {\n // repeated int32 idList = 1;\n let array$idList = message.idList;\n if (array$idList !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$idList) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 10);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodes1051(binary: Uint8Array): s1051 {\n return _decodes1051(wrapByteBuffer(binary));\n}\n\nfunction _decodes1051(bb: ByteBuffer): s1051 {\n let message: s1051 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated int32 idList = 1;\n case 1: {\n let values = message.idList || (message.idList = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_process {\n id?: number;\n state?: number;\n rewards?: p_reward[];\n}\n\nexport function encodep_process(message: p_process): Uint8Array {\n let bb = popByteBuffer();\n _encodep_process(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_process(message: p_process, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // repeated p_reward rewards = 3;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 26);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodep_process(binary: Uint8Array): p_process {\n return _decodep_process(wrapByteBuffer(binary));\n}\n\nfunction _decodep_process(bb: ByteBuffer): p_process {\n let message: p_process = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 3;\n case 3: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1052 {\n}\n\nexport function encodec1052(message: c1052): Uint8Array {\n let bb = popByteBuffer();\n _encodec1052(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1052(message: c1052, bb: ByteBuffer): void {\n}\n\nexport function decodec1052(binary: Uint8Array): c1052 {\n return _decodec1052(wrapByteBuffer(binary));\n}\n\nfunction _decodec1052(bb: ByteBuffer): c1052 {\n let message: c1052 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1052 {\n processInfo?: p_process[];\n taskInfo?: p_task[];\n num?: number;\n finishTime?: number;\n}\n\nexport function encodes1052(message: s1052): Uint8Array {\n let bb = popByteBuffer();\n _encodes1052(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1052(message: s1052, bb: ByteBuffer): void {\n // repeated p_process processInfo = 1;\n let array$processInfo = message.processInfo;\n if (array$processInfo !== undefined) {\n for (let value of array$processInfo) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_process(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_task taskInfo = 2;\n let array$taskInfo = message.taskInfo;\n if (array$taskInfo !== undefined) {\n for (let value of array$taskInfo) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_task(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // optional int32 num = 3;\n let $num = message.num;\n if ($num !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($num));\n }\n\n // optional int32 finishTime = 4;\n let $finishTime = message.finishTime;\n if ($finishTime !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($finishTime));\n }\n}\n\nexport function decodes1052(binary: Uint8Array): s1052 {\n return _decodes1052(wrapByteBuffer(binary));\n}\n\nfunction _decodes1052(bb: ByteBuffer): s1052 {\n let message: s1052 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_process processInfo = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.processInfo || (message.processInfo = []);\n values.push(_decodep_process(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_task taskInfo = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.taskInfo || (message.taskInfo = []);\n values.push(_decodep_task(bb));\n bb.limit = limit;\n break;\n }\n\n // optional int32 num = 3;\n case 3: {\n message.num = readVarint32(bb);\n break;\n }\n\n // optional int32 finishTime = 4;\n case 4: {\n message.finishTime = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1053 {\n id?: number;\n}\n\nexport function encodec1053(message: c1053): Uint8Array {\n let bb = popByteBuffer();\n _encodec1053(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1053(message: c1053, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n}\n\nexport function decodec1053(binary: Uint8Array): c1053 {\n return _decodec1053(wrapByteBuffer(binary));\n}\n\nfunction _decodec1053(bb: ByteBuffer): c1053 {\n let message: c1053 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1053 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1053(message: s1053): Uint8Array {\n let bb = popByteBuffer();\n _encodes1053(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1053(message: s1053, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1053(binary: Uint8Array): s1053 {\n return _decodes1053(wrapByteBuffer(binary));\n}\n\nfunction _decodes1053(bb: ByteBuffer): s1053 {\n let message: s1053 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1054 {\n taskId?: number;\n}\n\nexport function encodec1054(message: c1054): Uint8Array {\n let bb = popByteBuffer();\n _encodec1054(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1054(message: c1054, bb: ByteBuffer): void {\n // optional int32 taskId = 1;\n let $taskId = message.taskId;\n if ($taskId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($taskId));\n }\n}\n\nexport function decodec1054(binary: Uint8Array): c1054 {\n return _decodec1054(wrapByteBuffer(binary));\n}\n\nfunction _decodec1054(bb: ByteBuffer): c1054 {\n let message: c1054 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 taskId = 1;\n case 1: {\n message.taskId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1054 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1054(message: s1054): Uint8Array {\n let bb = popByteBuffer();\n _encodes1054(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1054(message: s1054, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1054(binary: Uint8Array): s1054 {\n return _decodes1054(wrapByteBuffer(binary));\n}\n\nfunction _decodes1054(bb: ByteBuffer): s1054 {\n let message: s1054 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1055 {\n quepos?: number;\n}\n\nexport function encodes1055(message: s1055): Uint8Array {\n let bb = popByteBuffer();\n _encodes1055(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1055(message: s1055, bb: ByteBuffer): void {\n // optional int32 quepos = 1;\n let $quepos = message.quepos;\n if ($quepos !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($quepos));\n }\n}\n\nexport function decodes1055(binary: Uint8Array): s1055 {\n return _decodes1055(wrapByteBuffer(binary));\n}\n\nfunction _decodes1055(bb: ByteBuffer): s1055 {\n let message: s1055 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 quepos = 1;\n case 1: {\n message.quepos = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_tx_task {\n id?: number;\n state?: number;\n now_content?: number;\n max_content?: number;\n isAd?: number;\n}\n\nexport function encodep_tx_task(message: p_tx_task): Uint8Array {\n let bb = popByteBuffer();\n _encodep_tx_task(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_tx_task(message: p_tx_task, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // optional int32 now_content = 3;\n let $now_content = message.now_content;\n if ($now_content !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($now_content));\n }\n\n // optional int32 max_content = 4;\n let $max_content = message.max_content;\n if ($max_content !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($max_content));\n }\n\n // optional int32 isAd = 5;\n let $isAd = message.isAd;\n if ($isAd !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($isAd));\n }\n}\n\nexport function decodep_tx_task(binary: Uint8Array): p_tx_task {\n return _decodep_tx_task(wrapByteBuffer(binary));\n}\n\nfunction _decodep_tx_task(bb: ByteBuffer): p_tx_task {\n let message: p_tx_task = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // optional int32 now_content = 3;\n case 3: {\n message.now_content = readVarint32(bb);\n break;\n }\n\n // optional int32 max_content = 4;\n case 4: {\n message.max_content = readVarint32(bb);\n break;\n }\n\n // optional int32 isAd = 5;\n case 5: {\n message.isAd = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1056 {\n}\n\nexport function encodec1056(message: c1056): Uint8Array {\n let bb = popByteBuffer();\n _encodec1056(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1056(message: c1056, bb: ByteBuffer): void {\n}\n\nexport function decodec1056(binary: Uint8Array): c1056 {\n return _decodec1056(wrapByteBuffer(binary));\n}\n\nfunction _decodec1056(bb: ByteBuffer): c1056 {\n let message: c1056 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1056 {\n id?: number;\n dayExp?: number;\n lv?: number;\n exp?: number;\n isBuy?: number;\n dayRewardList?: p_process[];\n lvRewards1?: number[];\n lvRewards2?: number[];\n tasks?: p_tx_task[];\n endTime?: number;\n}\n\nexport function encodes1056(message: s1056): Uint8Array {\n let bb = popByteBuffer();\n _encodes1056(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1056(message: s1056, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 dayExp = 2;\n let $dayExp = message.dayExp;\n if ($dayExp !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($dayExp));\n }\n\n // optional int32 lv = 3;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 exp = 4;\n let $exp = message.exp;\n if ($exp !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($exp));\n }\n\n // optional int32 isBuy = 5;\n let $isBuy = message.isBuy;\n if ($isBuy !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($isBuy));\n }\n\n // repeated p_process dayRewardList = 6;\n let array$dayRewardList = message.dayRewardList;\n if (array$dayRewardList !== undefined) {\n for (let value of array$dayRewardList) {\n writeVarint32(bb, 50);\n let nested = popByteBuffer();\n _encodep_process(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated int32 lvRewards1 = 7;\n let array$lvRewards1 = message.lvRewards1;\n if (array$lvRewards1 !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$lvRewards1) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 58);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n\n // repeated int32 lvRewards2 = 8;\n let array$lvRewards2 = message.lvRewards2;\n if (array$lvRewards2 !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$lvRewards2) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 66);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n\n // repeated p_tx_task tasks = 9;\n let array$tasks = message.tasks;\n if (array$tasks !== undefined) {\n for (let value of array$tasks) {\n writeVarint32(bb, 74);\n let nested = popByteBuffer();\n _encodep_tx_task(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // optional int32 endTime = 10;\n let $endTime = message.endTime;\n if ($endTime !== undefined) {\n writeVarint32(bb, 80);\n writeVarint64(bb, intToLong($endTime));\n }\n}\n\nexport function decodes1056(binary: Uint8Array): s1056 {\n return _decodes1056(wrapByteBuffer(binary));\n}\n\nfunction _decodes1056(bb: ByteBuffer): s1056 {\n let message: s1056 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 dayExp = 2;\n case 2: {\n message.dayExp = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 3;\n case 3: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 exp = 4;\n case 4: {\n message.exp = readVarint32(bb);\n break;\n }\n\n // optional int32 isBuy = 5;\n case 5: {\n message.isBuy = readVarint32(bb);\n break;\n }\n\n // repeated p_process dayRewardList = 6;\n case 6: {\n let limit = pushTemporaryLength(bb);\n let values = message.dayRewardList || (message.dayRewardList = []);\n values.push(_decodep_process(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated int32 lvRewards1 = 7;\n case 7: {\n let values = message.lvRewards1 || (message.lvRewards1 = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n // repeated int32 lvRewards2 = 8;\n case 8: {\n let values = message.lvRewards2 || (message.lvRewards2 = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n // repeated p_tx_task tasks = 9;\n case 9: {\n let limit = pushTemporaryLength(bb);\n let values = message.tasks || (message.tasks = []);\n values.push(_decodep_tx_task(bb));\n bb.limit = limit;\n break;\n }\n\n // optional int32 endTime = 10;\n case 10: {\n message.endTime = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1057 {\n taskId?: number;\n}\n\nexport function encodec1057(message: c1057): Uint8Array {\n let bb = popByteBuffer();\n _encodec1057(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1057(message: c1057, bb: ByteBuffer): void {\n // optional int32 taskId = 1;\n let $taskId = message.taskId;\n if ($taskId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($taskId));\n }\n}\n\nexport function decodec1057(binary: Uint8Array): c1057 {\n return _decodec1057(wrapByteBuffer(binary));\n}\n\nfunction _decodec1057(bb: ByteBuffer): c1057 {\n let message: c1057 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 taskId = 1;\n case 1: {\n message.taskId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1058 {\n taskId?: number;\n}\n\nexport function encodec1058(message: c1058): Uint8Array {\n let bb = popByteBuffer();\n _encodec1058(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1058(message: c1058, bb: ByteBuffer): void {\n // optional int32 taskId = 1;\n let $taskId = message.taskId;\n if ($taskId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($taskId));\n }\n}\n\nexport function decodec1058(binary: Uint8Array): c1058 {\n return _decodec1058(wrapByteBuffer(binary));\n}\n\nfunction _decodec1058(bb: ByteBuffer): c1058 {\n let message: c1058 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 taskId = 1;\n case 1: {\n message.taskId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1058 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1058(message: s1058): Uint8Array {\n let bb = popByteBuffer();\n _encodes1058(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1058(message: s1058, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1058(binary: Uint8Array): s1058 {\n return _decodes1058(wrapByteBuffer(binary));\n}\n\nfunction _decodes1058(bb: ByteBuffer): s1058 {\n let message: s1058 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1059 {\n id?: number;\n type?: number;\n}\n\nexport function encodec1059(message: c1059): Uint8Array {\n let bb = popByteBuffer();\n _encodec1059(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1059(message: c1059, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 type = 2;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1059(binary: Uint8Array): c1059 {\n return _decodec1059(wrapByteBuffer(binary));\n}\n\nfunction _decodec1059(bb: ByteBuffer): c1059 {\n let message: c1059 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 type = 2;\n case 2: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1059 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1059(message: s1059): Uint8Array {\n let bb = popByteBuffer();\n _encodes1059(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1059(message: s1059, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1059(binary: Uint8Array): s1059 {\n return _decodes1059(wrapByteBuffer(binary));\n}\n\nfunction _decodes1059(bb: ByteBuffer): s1059 {\n let message: s1059 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1060 {\n}\n\nexport function encodec1060(message: c1060): Uint8Array {\n let bb = popByteBuffer();\n _encodec1060(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1060(message: c1060, bb: ByteBuffer): void {\n}\n\nexport function decodec1060(binary: Uint8Array): c1060 {\n return _decodec1060(wrapByteBuffer(binary));\n}\n\nfunction _decodec1060(bb: ByteBuffer): c1060 {\n let message: c1060 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1060 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1060(message: s1060): Uint8Array {\n let bb = popByteBuffer();\n _encodes1060(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1060(message: s1060, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1060(binary: Uint8Array): s1060 {\n return _decodes1060(wrapByteBuffer(binary));\n}\n\nfunction _decodes1060(bb: ByteBuffer): s1060 {\n let message: s1060 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1074 {\n status?: number;\n age?: number;\n}\n\nexport function encodec1074(message: c1074): Uint8Array {\n let bb = popByteBuffer();\n _encodec1074(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1074(message: c1074, bb: ByteBuffer): void {\n // optional int32 status = 1;\n let $status = message.status;\n if ($status !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($status));\n }\n\n // optional int32 age = 2;\n let $age = message.age;\n if ($age !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($age));\n }\n}\n\nexport function decodec1074(binary: Uint8Array): c1074 {\n return _decodec1074(wrapByteBuffer(binary));\n}\n\nfunction _decodec1074(bb: ByteBuffer): c1074 {\n let message: c1074 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 status = 1;\n case 1: {\n message.status = readVarint32(bb);\n break;\n }\n\n // optional int32 age = 2;\n case 2: {\n message.age = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1082 {\n language?: number;\n}\n\nexport function encodec1082(message: c1082): Uint8Array {\n let bb = popByteBuffer();\n _encodec1082(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1082(message: c1082, bb: ByteBuffer): void {\n // optional int32 language = 1;\n let $language = message.language;\n if ($language !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($language));\n }\n}\n\nexport function decodec1082(binary: Uint8Array): c1082 {\n return _decodec1082(wrapByteBuffer(binary));\n}\n\nfunction _decodec1082(bb: ByteBuffer): c1082 {\n let message: c1082 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 language = 1;\n case 1: {\n message.language = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1082 {\n result?: number;\n}\n\nexport function encodes1082(message: s1082): Uint8Array {\n let bb = popByteBuffer();\n _encodes1082(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1082(message: s1082, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1082(binary: Uint8Array): s1082 {\n return _decodes1082(wrapByteBuffer(binary));\n}\n\nfunction _decodes1082(bb: ByteBuffer): s1082 {\n let message: s1082 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_tip_param {\n type?: number;\n str?: string;\n}\n\nexport function encodep_tip_param(message: p_tip_param): Uint8Array {\n let bb = popByteBuffer();\n _encodep_tip_param(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_tip_param(message: p_tip_param, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n\n // optional string str = 2;\n let $str = message.str;\n if ($str !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $str);\n }\n}\n\nexport function decodep_tip_param(binary: Uint8Array): p_tip_param {\n return _decodep_tip_param(wrapByteBuffer(binary));\n}\n\nfunction _decodep_tip_param(bb: ByteBuffer): p_tip_param {\n let message: p_tip_param = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n // optional string str = 2;\n case 2: {\n message.str = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1098 {\n type?: number[];\n id?: string;\n paraList?: p_tip_param[];\n}\n\nexport function encodes1098(message: s1098): Uint8Array {\n let bb = popByteBuffer();\n _encodes1098(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1098(message: s1098, bb: ByteBuffer): void {\n // repeated int32 type = 1;\n let array$type = message.type;\n if (array$type !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$type) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 10);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n\n // optional string id = 2;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $id);\n }\n\n // repeated p_tip_param paraList = 3;\n let array$paraList = message.paraList;\n if (array$paraList !== undefined) {\n for (let value of array$paraList) {\n writeVarint32(bb, 26);\n let nested = popByteBuffer();\n _encodep_tip_param(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1098(binary: Uint8Array): s1098 {\n return _decodes1098(wrapByteBuffer(binary));\n}\n\nfunction _decodes1098(bb: ByteBuffer): s1098 {\n let message: s1098 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated int32 type = 1;\n case 1: {\n let values = message.type || (message.type = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n // optional string id = 2;\n case 2: {\n message.id = readString(bb, readVarint32(bb));\n break;\n }\n\n // repeated p_tip_param paraList = 3;\n case 3: {\n let limit = pushTemporaryLength(bb);\n let values = message.paraList || (message.paraList = []);\n values.push(_decodep_tip_param(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_hero {\n heroId?: string;\n localId?: number;\n lv?: number;\n exp?: number;\n atk?: number;\n def?: number;\n hp?: number;\n power?: number;\n skillZhu?: number;\n skillList?: number[];\n buffAttr?: p_buff;\n}\n\nexport function encodep_hero(message: p_hero): Uint8Array {\n let bb = popByteBuffer();\n _encodep_hero(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_hero(message: p_hero, bb: ByteBuffer): void {\n // optional string heroId = 1;\n let $heroId = message.heroId;\n if ($heroId !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $heroId);\n }\n\n // optional int32 localId = 2;\n let $localId = message.localId;\n if ($localId !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($localId));\n }\n\n // optional int32 lv = 3;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 exp = 4;\n let $exp = message.exp;\n if ($exp !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($exp));\n }\n\n // optional int32 atk = 5;\n let $atk = message.atk;\n if ($atk !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($atk));\n }\n\n // optional int32 def = 6;\n let $def = message.def;\n if ($def !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($def));\n }\n\n // optional int32 hp = 7;\n let $hp = message.hp;\n if ($hp !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($hp));\n }\n\n // optional int32 power = 8;\n let $power = message.power;\n if ($power !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($power));\n }\n\n // optional int32 skillZhu = 9;\n let $skillZhu = message.skillZhu;\n if ($skillZhu !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($skillZhu));\n }\n\n // repeated int32 skillList = 10;\n let array$skillList = message.skillList;\n if (array$skillList !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$skillList) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 82);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n\n // optional p_buff buffAttr = 11;\n let $buffAttr = message.buffAttr;\n if ($buffAttr !== undefined) {\n writeVarint32(bb, 90);\n let nested = popByteBuffer();\n _encodep_buff($buffAttr, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n}\n\nexport function decodep_hero(binary: Uint8Array): p_hero {\n return _decodep_hero(wrapByteBuffer(binary));\n}\n\nfunction _decodep_hero(bb: ByteBuffer): p_hero {\n let message: p_hero = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string heroId = 1;\n case 1: {\n message.heroId = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 localId = 2;\n case 2: {\n message.localId = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 3;\n case 3: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 exp = 4;\n case 4: {\n message.exp = readVarint32(bb);\n break;\n }\n\n // optional int32 atk = 5;\n case 5: {\n message.atk = readVarint32(bb);\n break;\n }\n\n // optional int32 def = 6;\n case 6: {\n message.def = readVarint32(bb);\n break;\n }\n\n // optional int32 hp = 7;\n case 7: {\n message.hp = readVarint32(bb);\n break;\n }\n\n // optional int32 power = 8;\n case 8: {\n message.power = readVarint32(bb);\n break;\n }\n\n // optional int32 skillZhu = 9;\n case 9: {\n message.skillZhu = readVarint32(bb);\n break;\n }\n\n // repeated int32 skillList = 10;\n case 10: {\n let values = message.skillList || (message.skillList = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n // optional p_buff buffAttr = 11;\n case 11: {\n let limit = pushTemporaryLength(bb);\n message.buffAttr = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1100 {\n}\n\nexport function encodec1100(message: c1100): Uint8Array {\n let bb = popByteBuffer();\n _encodec1100(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1100(message: c1100, bb: ByteBuffer): void {\n}\n\nexport function decodec1100(binary: Uint8Array): c1100 {\n return _decodec1100(wrapByteBuffer(binary));\n}\n\nfunction _decodec1100(bb: ByteBuffer): c1100 {\n let message: c1100 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1100 {\n type?: number;\n heroList?: p_hero[];\n}\n\nexport function encodes1100(message: s1100): Uint8Array {\n let bb = popByteBuffer();\n _encodes1100(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1100(message: s1100, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n\n // repeated p_hero heroList = 2;\n let array$heroList = message.heroList;\n if (array$heroList !== undefined) {\n for (let value of array$heroList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_hero(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1100(binary: Uint8Array): s1100 {\n return _decodes1100(wrapByteBuffer(binary));\n}\n\nfunction _decodes1100(bb: ByteBuffer): s1100 {\n let message: s1100 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n // repeated p_hero heroList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.heroList || (message.heroList = []);\n values.push(_decodep_hero(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_hero_sz {\n pos?: number;\n heroId?: string;\n}\n\nexport function encodep_hero_sz(message: p_hero_sz): Uint8Array {\n let bb = popByteBuffer();\n _encodep_hero_sz(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_hero_sz(message: p_hero_sz, bb: ByteBuffer): void {\n // optional int32 pos = 1;\n let $pos = message.pos;\n if ($pos !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($pos));\n }\n\n // optional string heroId = 2;\n let $heroId = message.heroId;\n if ($heroId !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $heroId);\n }\n}\n\nexport function decodep_hero_sz(binary: Uint8Array): p_hero_sz {\n return _decodep_hero_sz(wrapByteBuffer(binary));\n}\n\nfunction _decodep_hero_sz(bb: ByteBuffer): p_hero_sz {\n let message: p_hero_sz = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 pos = 1;\n case 1: {\n message.pos = readVarint32(bb);\n break;\n }\n\n // optional string heroId = 2;\n case 2: {\n message.heroId = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1101 {\n pos?: number;\n heroId?: string;\n}\n\nexport function encodec1101(message: c1101): Uint8Array {\n let bb = popByteBuffer();\n _encodec1101(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1101(message: c1101, bb: ByteBuffer): void {\n // optional int32 pos = 1;\n let $pos = message.pos;\n if ($pos !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($pos));\n }\n\n // optional string heroId = 2;\n let $heroId = message.heroId;\n if ($heroId !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $heroId);\n }\n}\n\nexport function decodec1101(binary: Uint8Array): c1101 {\n return _decodec1101(wrapByteBuffer(binary));\n}\n\nfunction _decodec1101(bb: ByteBuffer): c1101 {\n let message: c1101 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 pos = 1;\n case 1: {\n message.pos = readVarint32(bb);\n break;\n }\n\n // optional string heroId = 2;\n case 2: {\n message.heroId = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1101 {\n result?: number;\n}\n\nexport function encodes1101(message: s1101): Uint8Array {\n let bb = popByteBuffer();\n _encodes1101(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1101(message: s1101, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1101(binary: Uint8Array): s1101 {\n return _decodes1101(wrapByteBuffer(binary));\n}\n\nfunction _decodes1101(bb: ByteBuffer): s1101 {\n let message: s1101 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1102 {\n}\n\nexport function encodec1102(message: c1102): Uint8Array {\n let bb = popByteBuffer();\n _encodec1102(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1102(message: c1102, bb: ByteBuffer): void {\n}\n\nexport function decodec1102(binary: Uint8Array): c1102 {\n return _decodec1102(wrapByteBuffer(binary));\n}\n\nfunction _decodec1102(bb: ByteBuffer): c1102 {\n let message: c1102 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1102 {\n power?: number;\n szHeros?: p_hero_sz[];\n}\n\nexport function encodes1102(message: s1102): Uint8Array {\n let bb = popByteBuffer();\n _encodes1102(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1102(message: s1102, bb: ByteBuffer): void {\n // optional int32 power = 1;\n let $power = message.power;\n if ($power !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($power));\n }\n\n // repeated p_hero_sz szHeros = 2;\n let array$szHeros = message.szHeros;\n if (array$szHeros !== undefined) {\n for (let value of array$szHeros) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_hero_sz(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1102(binary: Uint8Array): s1102 {\n return _decodes1102(wrapByteBuffer(binary));\n}\n\nfunction _decodes1102(bb: ByteBuffer): s1102 {\n let message: s1102 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 power = 1;\n case 1: {\n message.power = readVarint32(bb);\n break;\n }\n\n // repeated p_hero_sz szHeros = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.szHeros || (message.szHeros = []);\n values.push(_decodep_hero_sz(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1103 {\n}\n\nexport function encodec1103(message: c1103): Uint8Array {\n let bb = popByteBuffer();\n _encodec1103(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1103(message: c1103, bb: ByteBuffer): void {\n}\n\nexport function decodec1103(binary: Uint8Array): c1103 {\n return _decodec1103(wrapByteBuffer(binary));\n}\n\nfunction _decodec1103(bb: ByteBuffer): c1103 {\n let message: c1103 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1103 {\n buffAttr?: p_buff;\n}\n\nexport function encodes1103(message: s1103): Uint8Array {\n let bb = popByteBuffer();\n _encodes1103(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1103(message: s1103, bb: ByteBuffer): void {\n // optional p_buff buffAttr = 1;\n let $buffAttr = message.buffAttr;\n if ($buffAttr !== undefined) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_buff($buffAttr, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n}\n\nexport function decodes1103(binary: Uint8Array): s1103 {\n return _decodes1103(wrapByteBuffer(binary));\n}\n\nfunction _decodes1103(bb: ByteBuffer): s1103 {\n let message: s1103 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional p_buff buffAttr = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n message.buffAttr = _decodep_buff(bb);\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1104 {\n pos?: number;\n}\n\nexport function encodec1104(message: c1104): Uint8Array {\n let bb = popByteBuffer();\n _encodec1104(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1104(message: c1104, bb: ByteBuffer): void {\n // optional int32 pos = 1;\n let $pos = message.pos;\n if ($pos !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($pos));\n }\n}\n\nexport function decodec1104(binary: Uint8Array): c1104 {\n return _decodec1104(wrapByteBuffer(binary));\n}\n\nfunction _decodec1104(bb: ByteBuffer): c1104 {\n let message: c1104 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 pos = 1;\n case 1: {\n message.pos = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1104 {\n result?: number;\n}\n\nexport function encodes1104(message: s1104): Uint8Array {\n let bb = popByteBuffer();\n _encodes1104(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1104(message: s1104, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1104(binary: Uint8Array): s1104 {\n return _decodes1104(wrapByteBuffer(binary));\n}\n\nfunction _decodes1104(bb: ByteBuffer): s1104 {\n let message: s1104 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_ci_tiao {\n id?: number;\n v?: number;\n}\n\nexport function encodep_ci_tiao(message: p_ci_tiao): Uint8Array {\n let bb = popByteBuffer();\n _encodep_ci_tiao(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_ci_tiao(message: p_ci_tiao, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 v = 2;\n let $v = message.v;\n if ($v !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($v));\n }\n}\n\nexport function decodep_ci_tiao(binary: Uint8Array): p_ci_tiao {\n return _decodep_ci_tiao(wrapByteBuffer(binary));\n}\n\nfunction _decodep_ci_tiao(bb: ByteBuffer): p_ci_tiao {\n let message: p_ci_tiao = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 v = 2;\n case 2: {\n message.v = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_hero_equip {\n pos?: number;\n eqId?: number;\n lv?: number;\n atk?: number;\n def?: number;\n hp?: number;\n ciTiaoList?: p_ci_tiao[];\n power?: number;\n}\n\nexport function encodep_hero_equip(message: p_hero_equip): Uint8Array {\n let bb = popByteBuffer();\n _encodep_hero_equip(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_hero_equip(message: p_hero_equip, bb: ByteBuffer): void {\n // optional int32 pos = 1;\n let $pos = message.pos;\n if ($pos !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($pos));\n }\n\n // optional int32 eqId = 2;\n let $eqId = message.eqId;\n if ($eqId !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($eqId));\n }\n\n // optional int32 lv = 3;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 atk = 4;\n let $atk = message.atk;\n if ($atk !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($atk));\n }\n\n // optional int32 def = 5;\n let $def = message.def;\n if ($def !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($def));\n }\n\n // optional int32 hp = 6;\n let $hp = message.hp;\n if ($hp !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($hp));\n }\n\n // repeated p_ci_tiao ciTiaoList = 7;\n let array$ciTiaoList = message.ciTiaoList;\n if (array$ciTiaoList !== undefined) {\n for (let value of array$ciTiaoList) {\n writeVarint32(bb, 58);\n let nested = popByteBuffer();\n _encodep_ci_tiao(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // optional int32 power = 8;\n let $power = message.power;\n if ($power !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($power));\n }\n}\n\nexport function decodep_hero_equip(binary: Uint8Array): p_hero_equip {\n return _decodep_hero_equip(wrapByteBuffer(binary));\n}\n\nfunction _decodep_hero_equip(bb: ByteBuffer): p_hero_equip {\n let message: p_hero_equip = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 pos = 1;\n case 1: {\n message.pos = readVarint32(bb);\n break;\n }\n\n // optional int32 eqId = 2;\n case 2: {\n message.eqId = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 3;\n case 3: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 atk = 4;\n case 4: {\n message.atk = readVarint32(bb);\n break;\n }\n\n // optional int32 def = 5;\n case 5: {\n message.def = readVarint32(bb);\n break;\n }\n\n // optional int32 hp = 6;\n case 6: {\n message.hp = readVarint32(bb);\n break;\n }\n\n // repeated p_ci_tiao ciTiaoList = 7;\n case 7: {\n let limit = pushTemporaryLength(bb);\n let values = message.ciTiaoList || (message.ciTiaoList = []);\n values.push(_decodep_ci_tiao(bb));\n bb.limit = limit;\n break;\n }\n\n // optional int32 power = 8;\n case 8: {\n message.power = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1105 {\n}\n\nexport function encodec1105(message: c1105): Uint8Array {\n let bb = popByteBuffer();\n _encodec1105(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1105(message: c1105, bb: ByteBuffer): void {\n}\n\nexport function decodec1105(binary: Uint8Array): c1105 {\n return _decodec1105(wrapByteBuffer(binary));\n}\n\nfunction _decodec1105(bb: ByteBuffer): c1105 {\n let message: c1105 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1105 {\n lvLv?: number;\n expLv?: number;\n lvColor?: number;\n expColor?: number;\n finishTime?: number;\n eqList?: p_hero_equip[];\n adNum?: number;\n adMaxNum?: number;\n}\n\nexport function encodes1105(message: s1105): Uint8Array {\n let bb = popByteBuffer();\n _encodes1105(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1105(message: s1105, bb: ByteBuffer): void {\n // optional int32 lvLv = 1;\n let $lvLv = message.lvLv;\n if ($lvLv !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($lvLv));\n }\n\n // optional int32 expLv = 2;\n let $expLv = message.expLv;\n if ($expLv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($expLv));\n }\n\n // optional int32 lvColor = 3;\n let $lvColor = message.lvColor;\n if ($lvColor !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($lvColor));\n }\n\n // optional int32 expColor = 4;\n let $expColor = message.expColor;\n if ($expColor !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($expColor));\n }\n\n // optional int32 finishTime = 5;\n let $finishTime = message.finishTime;\n if ($finishTime !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($finishTime));\n }\n\n // repeated p_hero_equip eqList = 6;\n let array$eqList = message.eqList;\n if (array$eqList !== undefined) {\n for (let value of array$eqList) {\n writeVarint32(bb, 50);\n let nested = popByteBuffer();\n _encodep_hero_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // optional int32 adNum = 7;\n let $adNum = message.adNum;\n if ($adNum !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($adNum));\n }\n\n // optional int32 adMaxNum = 8;\n let $adMaxNum = message.adMaxNum;\n if ($adMaxNum !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($adMaxNum));\n }\n}\n\nexport function decodes1105(binary: Uint8Array): s1105 {\n return _decodes1105(wrapByteBuffer(binary));\n}\n\nfunction _decodes1105(bb: ByteBuffer): s1105 {\n let message: s1105 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 lvLv = 1;\n case 1: {\n message.lvLv = readVarint32(bb);\n break;\n }\n\n // optional int32 expLv = 2;\n case 2: {\n message.expLv = readVarint32(bb);\n break;\n }\n\n // optional int32 lvColor = 3;\n case 3: {\n message.lvColor = readVarint32(bb);\n break;\n }\n\n // optional int32 expColor = 4;\n case 4: {\n message.expColor = readVarint32(bb);\n break;\n }\n\n // optional int32 finishTime = 5;\n case 5: {\n message.finishTime = readVarint32(bb);\n break;\n }\n\n // repeated p_hero_equip eqList = 6;\n case 6: {\n let limit = pushTemporaryLength(bb);\n let values = message.eqList || (message.eqList = []);\n values.push(_decodep_hero_equip(bb));\n bb.limit = limit;\n break;\n }\n\n // optional int32 adNum = 7;\n case 7: {\n message.adNum = readVarint32(bb);\n break;\n }\n\n // optional int32 adMaxNum = 8;\n case 8: {\n message.adMaxNum = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1106 {\n}\n\nexport function encodec1106(message: c1106): Uint8Array {\n let bb = popByteBuffer();\n _encodec1106(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1106(message: c1106, bb: ByteBuffer): void {\n}\n\nexport function decodec1106(binary: Uint8Array): c1106 {\n return _decodec1106(wrapByteBuffer(binary));\n}\n\nfunction _decodec1106(bb: ByteBuffer): c1106 {\n let message: c1106 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1106 {\n result?: number;\n eqList?: p_hero_equip[];\n}\n\nexport function encodes1106(message: s1106): Uint8Array {\n let bb = popByteBuffer();\n _encodes1106(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1106(message: s1106, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_hero_equip eqList = 2;\n let array$eqList = message.eqList;\n if (array$eqList !== undefined) {\n for (let value of array$eqList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_hero_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1106(binary: Uint8Array): s1106 {\n return _decodes1106(wrapByteBuffer(binary));\n}\n\nfunction _decodes1106(bb: ByteBuffer): s1106 {\n let message: s1106 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_hero_equip eqList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.eqList || (message.eqList = []);\n values.push(_decodep_hero_equip(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1107 {\n}\n\nexport function encodec1107(message: c1107): Uint8Array {\n let bb = popByteBuffer();\n _encodec1107(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1107(message: c1107, bb: ByteBuffer): void {\n}\n\nexport function decodec1107(binary: Uint8Array): c1107 {\n return _decodec1107(wrapByteBuffer(binary));\n}\n\nfunction _decodec1107(bb: ByteBuffer): c1107 {\n let message: c1107 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1107 {\n result?: number;\n exp?: number;\n coin?: number;\n}\n\nexport function encodes1107(message: s1107): Uint8Array {\n let bb = popByteBuffer();\n _encodes1107(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1107(message: s1107, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 exp = 2;\n let $exp = message.exp;\n if ($exp !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($exp));\n }\n\n // optional int32 coin = 3;\n let $coin = message.coin;\n if ($coin !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($coin));\n }\n}\n\nexport function decodes1107(binary: Uint8Array): s1107 {\n return _decodes1107(wrapByteBuffer(binary));\n}\n\nfunction _decodes1107(bb: ByteBuffer): s1107 {\n let message: s1107 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 exp = 2;\n case 2: {\n message.exp = readVarint32(bb);\n break;\n }\n\n // optional int32 coin = 3;\n case 3: {\n message.coin = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1108 {\n}\n\nexport function encodec1108(message: c1108): Uint8Array {\n let bb = popByteBuffer();\n _encodec1108(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1108(message: c1108, bb: ByteBuffer): void {\n}\n\nexport function decodec1108(binary: Uint8Array): c1108 {\n return _decodec1108(wrapByteBuffer(binary));\n}\n\nfunction _decodec1108(bb: ByteBuffer): c1108 {\n let message: c1108 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1108 {\n result?: number;\n}\n\nexport function encodes1108(message: s1108): Uint8Array {\n let bb = popByteBuffer();\n _encodes1108(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1108(message: s1108, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1108(binary: Uint8Array): s1108 {\n return _decodes1108(wrapByteBuffer(binary));\n}\n\nfunction _decodes1108(bb: ByteBuffer): s1108 {\n let message: s1108 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1109 {\n}\n\nexport function encodec1109(message: c1109): Uint8Array {\n let bb = popByteBuffer();\n _encodec1109(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1109(message: c1109, bb: ByteBuffer): void {\n}\n\nexport function decodec1109(binary: Uint8Array): c1109 {\n return _decodec1109(wrapByteBuffer(binary));\n}\n\nfunction _decodec1109(bb: ByteBuffer): c1109 {\n let message: c1109 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1109 {\n result?: number;\n}\n\nexport function encodes1109(message: s1109): Uint8Array {\n let bb = popByteBuffer();\n _encodes1109(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1109(message: s1109, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1109(binary: Uint8Array): s1109 {\n return _decodes1109(wrapByteBuffer(binary));\n}\n\nfunction _decodes1109(bb: ByteBuffer): s1109 {\n let message: s1109 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1110 {\n}\n\nexport function encodec1110(message: c1110): Uint8Array {\n let bb = popByteBuffer();\n _encodec1110(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1110(message: c1110, bb: ByteBuffer): void {\n}\n\nexport function decodec1110(binary: Uint8Array): c1110 {\n return _decodec1110(wrapByteBuffer(binary));\n}\n\nfunction _decodec1110(bb: ByteBuffer): c1110 {\n let message: c1110 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1110 {\n result?: number;\n finishTIme?: number;\n}\n\nexport function encodes1110(message: s1110): Uint8Array {\n let bb = popByteBuffer();\n _encodes1110(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1110(message: s1110, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 finishTIme = 2;\n let $finishTIme = message.finishTIme;\n if ($finishTIme !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($finishTIme));\n }\n}\n\nexport function decodes1110(binary: Uint8Array): s1110 {\n return _decodes1110(wrapByteBuffer(binary));\n}\n\nfunction _decodes1110(bb: ByteBuffer): s1110 {\n let message: s1110 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 finishTIme = 2;\n case 2: {\n message.finishTIme = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1111 {\n}\n\nexport function encodec1111(message: c1111): Uint8Array {\n let bb = popByteBuffer();\n _encodec1111(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1111(message: c1111, bb: ByteBuffer): void {\n}\n\nexport function decodec1111(binary: Uint8Array): c1111 {\n return _decodec1111(wrapByteBuffer(binary));\n}\n\nfunction _decodec1111(bb: ByteBuffer): c1111 {\n let message: c1111 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1111 {\n result?: number;\n finishTime?: number;\n}\n\nexport function encodes1111(message: s1111): Uint8Array {\n let bb = popByteBuffer();\n _encodes1111(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1111(message: s1111, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 finishTime = 2;\n let $finishTime = message.finishTime;\n if ($finishTime !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($finishTime));\n }\n}\n\nexport function decodes1111(binary: Uint8Array): s1111 {\n return _decodes1111(wrapByteBuffer(binary));\n}\n\nfunction _decodes1111(bb: ByteBuffer): s1111 {\n let message: s1111 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 finishTime = 2;\n case 2: {\n message.finishTime = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_reward {\n id?: number;\n num?: number;\n}\n\nexport function encodep_reward(message: p_reward): Uint8Array {\n let bb = popByteBuffer();\n _encodep_reward(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_reward(message: p_reward, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 num = 2;\n let $num = message.num;\n if ($num !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($num));\n }\n}\n\nexport function decodep_reward(binary: Uint8Array): p_reward {\n return _decodep_reward(wrapByteBuffer(binary));\n}\n\nfunction _decodep_reward(bb: ByteBuffer): p_reward {\n let message: p_reward = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 num = 2;\n case 2: {\n message.num = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_item {\n itemUID?: string;\n itemID?: number;\n pos?: number;\n num?: number;\n}\n\nexport function encodep_item(message: p_item): Uint8Array {\n let bb = popByteBuffer();\n _encodep_item(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_item(message: p_item, bb: ByteBuffer): void {\n // optional string itemUID = 1;\n let $itemUID = message.itemUID;\n if ($itemUID !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $itemUID);\n }\n\n // optional int32 itemID = 2;\n let $itemID = message.itemID;\n if ($itemID !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($itemID));\n }\n\n // optional int32 pos = 3;\n let $pos = message.pos;\n if ($pos !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($pos));\n }\n\n // optional int32 num = 4;\n let $num = message.num;\n if ($num !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($num));\n }\n}\n\nexport function decodep_item(binary: Uint8Array): p_item {\n return _decodep_item(wrapByteBuffer(binary));\n}\n\nfunction _decodep_item(bb: ByteBuffer): p_item {\n let message: p_item = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string itemUID = 1;\n case 1: {\n message.itemUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 itemID = 2;\n case 2: {\n message.itemID = readVarint32(bb);\n break;\n }\n\n // optional int32 pos = 3;\n case 3: {\n message.pos = readVarint32(bb);\n break;\n }\n\n // optional int32 num = 4;\n case 4: {\n message.num = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1200 {\n}\n\nexport function encodec1200(message: c1200): Uint8Array {\n let bb = popByteBuffer();\n _encodec1200(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1200(message: c1200, bb: ByteBuffer): void {\n}\n\nexport function decodec1200(binary: Uint8Array): c1200 {\n return _decodec1200(wrapByteBuffer(binary));\n}\n\nfunction _decodec1200(bb: ByteBuffer): c1200 {\n let message: c1200 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1200 {\n itemList?: p_item[];\n}\n\nexport function encodes1200(message: s1200): Uint8Array {\n let bb = popByteBuffer();\n _encodes1200(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1200(message: s1200, bb: ByteBuffer): void {\n // repeated p_item itemList = 1;\n let array$itemList = message.itemList;\n if (array$itemList !== undefined) {\n for (let value of array$itemList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_item(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1200(binary: Uint8Array): s1200 {\n return _decodes1200(wrapByteBuffer(binary));\n}\n\nfunction _decodes1200(bb: ByteBuffer): s1200 {\n let message: s1200 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_item itemList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.itemList || (message.itemList = []);\n values.push(_decodep_item(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1201 {\n delIds?: string[];\n itemList?: p_item[];\n}\n\nexport function encodes1201(message: s1201): Uint8Array {\n let bb = popByteBuffer();\n _encodes1201(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1201(message: s1201, bb: ByteBuffer): void {\n // repeated string delIds = 1;\n let array$delIds = message.delIds;\n if (array$delIds !== undefined) {\n for (let value of array$delIds) {\n writeVarint32(bb, 10);\n writeString(bb, value);\n }\n }\n\n // repeated p_item itemList = 2;\n let array$itemList = message.itemList;\n if (array$itemList !== undefined) {\n for (let value of array$itemList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_item(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1201(binary: Uint8Array): s1201 {\n return _decodes1201(wrapByteBuffer(binary));\n}\n\nfunction _decodes1201(bb: ByteBuffer): s1201 {\n let message: s1201 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated string delIds = 1;\n case 1: {\n let values = message.delIds || (message.delIds = []);\n values.push(readString(bb, readVarint32(bb)));\n break;\n }\n\n // repeated p_item itemList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.itemList || (message.itemList = []);\n values.push(_decodep_item(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1202 {\n itemUID?: string;\n num?: number;\n heroId?: string;\n selectList?: number[];\n}\n\nexport function encodec1202(message: c1202): Uint8Array {\n let bb = popByteBuffer();\n _encodec1202(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1202(message: c1202, bb: ByteBuffer): void {\n // optional string itemUID = 1;\n let $itemUID = message.itemUID;\n if ($itemUID !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $itemUID);\n }\n\n // optional int32 num = 2;\n let $num = message.num;\n if ($num !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($num));\n }\n\n // optional string heroId = 3;\n let $heroId = message.heroId;\n if ($heroId !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $heroId);\n }\n\n // repeated int32 selectList = 4;\n let array$selectList = message.selectList;\n if (array$selectList !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$selectList) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 34);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodec1202(binary: Uint8Array): c1202 {\n return _decodec1202(wrapByteBuffer(binary));\n}\n\nfunction _decodec1202(bb: ByteBuffer): c1202 {\n let message: c1202 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string itemUID = 1;\n case 1: {\n message.itemUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 num = 2;\n case 2: {\n message.num = readVarint32(bb);\n break;\n }\n\n // optional string heroId = 3;\n case 3: {\n message.heroId = readString(bb, readVarint32(bb));\n break;\n }\n\n // repeated int32 selectList = 4;\n case 4: {\n let values = message.selectList || (message.selectList = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1202 {\n result?: number;\n getList?: p_reward[];\n}\n\nexport function encodes1202(message: s1202): Uint8Array {\n let bb = popByteBuffer();\n _encodes1202(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1202(message: s1202, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward getList = 2;\n let array$getList = message.getList;\n if (array$getList !== undefined) {\n for (let value of array$getList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1202(binary: Uint8Array): s1202 {\n return _decodes1202(wrapByteBuffer(binary));\n}\n\nfunction _decodes1202(bb: ByteBuffer): s1202 {\n let message: s1202 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward getList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.getList || (message.getList = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1210 {\n}\n\nexport function encodec1210(message: c1210): Uint8Array {\n let bb = popByteBuffer();\n _encodec1210(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1210(message: c1210, bb: ByteBuffer): void {\n}\n\nexport function decodec1210(binary: Uint8Array): c1210 {\n return _decodec1210(wrapByteBuffer(binary));\n}\n\nfunction _decodec1210(bb: ByteBuffer): c1210 {\n let message: c1210 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1210 {\n lv?: number;\n exp?: number;\n adNum?: number;\n adNumMax?: number;\n chouNum1?: number;\n chouNum2?: number;\n chouNum3?: number;\n chou2Dimond?: number;\n chou3Dimond?: number;\n}\n\nexport function encodes1210(message: s1210): Uint8Array {\n let bb = popByteBuffer();\n _encodes1210(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1210(message: s1210, bb: ByteBuffer): void {\n // optional int32 lv = 1;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 exp = 2;\n let $exp = message.exp;\n if ($exp !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($exp));\n }\n\n // optional int32 adNum = 3;\n let $adNum = message.adNum;\n if ($adNum !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($adNum));\n }\n\n // optional int32 adNumMax = 4;\n let $adNumMax = message.adNumMax;\n if ($adNumMax !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($adNumMax));\n }\n\n // optional int32 chouNum1 = 5;\n let $chouNum1 = message.chouNum1;\n if ($chouNum1 !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($chouNum1));\n }\n\n // optional int32 chouNum2 = 6;\n let $chouNum2 = message.chouNum2;\n if ($chouNum2 !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($chouNum2));\n }\n\n // optional int32 chouNum3 = 7;\n let $chouNum3 = message.chouNum3;\n if ($chouNum3 !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($chouNum3));\n }\n\n // optional int32 chou2Dimond = 8;\n let $chou2Dimond = message.chou2Dimond;\n if ($chou2Dimond !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($chou2Dimond));\n }\n\n // optional int32 chou3Dimond = 9;\n let $chou3Dimond = message.chou3Dimond;\n if ($chou3Dimond !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($chou3Dimond));\n }\n}\n\nexport function decodes1210(binary: Uint8Array): s1210 {\n return _decodes1210(wrapByteBuffer(binary));\n}\n\nfunction _decodes1210(bb: ByteBuffer): s1210 {\n let message: s1210 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 lv = 1;\n case 1: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 exp = 2;\n case 2: {\n message.exp = readVarint32(bb);\n break;\n }\n\n // optional int32 adNum = 3;\n case 3: {\n message.adNum = readVarint32(bb);\n break;\n }\n\n // optional int32 adNumMax = 4;\n case 4: {\n message.adNumMax = readVarint32(bb);\n break;\n }\n\n // optional int32 chouNum1 = 5;\n case 5: {\n message.chouNum1 = readVarint32(bb);\n break;\n }\n\n // optional int32 chouNum2 = 6;\n case 6: {\n message.chouNum2 = readVarint32(bb);\n break;\n }\n\n // optional int32 chouNum3 = 7;\n case 7: {\n message.chouNum3 = readVarint32(bb);\n break;\n }\n\n // optional int32 chou2Dimond = 8;\n case 8: {\n message.chou2Dimond = readVarint32(bb);\n break;\n }\n\n // optional int32 chou3Dimond = 9;\n case 9: {\n message.chou3Dimond = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1211 {\n type?: number;\n}\n\nexport function encodec1211(message: c1211): Uint8Array {\n let bb = popByteBuffer();\n _encodec1211(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1211(message: c1211, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1211(binary: Uint8Array): c1211 {\n return _decodec1211(wrapByteBuffer(binary));\n}\n\nfunction _decodec1211(bb: ByteBuffer): c1211 {\n let message: c1211 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1211 {\n result?: number;\n eqList?: number[];\n}\n\nexport function encodes1211(message: s1211): Uint8Array {\n let bb = popByteBuffer();\n _encodes1211(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1211(message: s1211, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated int32 eqList = 2;\n let array$eqList = message.eqList;\n if (array$eqList !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$eqList) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 18);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodes1211(binary: Uint8Array): s1211 {\n return _decodes1211(wrapByteBuffer(binary));\n}\n\nfunction _decodes1211(bb: ByteBuffer): s1211 {\n let message: s1211 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated int32 eqList = 2;\n case 2: {\n let values = message.eqList || (message.eqList = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1212 {\n type?: number;\n}\n\nexport function encodec1212(message: c1212): Uint8Array {\n let bb = popByteBuffer();\n _encodec1212(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1212(message: c1212, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1212(binary: Uint8Array): c1212 {\n return _decodec1212(wrapByteBuffer(binary));\n}\n\nfunction _decodec1212(bb: ByteBuffer): c1212 {\n let message: c1212 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1212 {\n goodsIds?: number[];\n}\n\nexport function encodes1212(message: s1212): Uint8Array {\n let bb = popByteBuffer();\n _encodes1212(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1212(message: s1212, bb: ByteBuffer): void {\n // repeated int32 goodsIds = 1;\n let array$goodsIds = message.goodsIds;\n if (array$goodsIds !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$goodsIds) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 10);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodes1212(binary: Uint8Array): s1212 {\n return _decodes1212(wrapByteBuffer(binary));\n}\n\nfunction _decodes1212(bb: ByteBuffer): s1212 {\n let message: s1212 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated int32 goodsIds = 1;\n case 1: {\n let values = message.goodsIds || (message.goodsIds = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_limit_goods {\n goodsId?: number;\n num?: number;\n}\n\nexport function encodep_limit_goods(message: p_limit_goods): Uint8Array {\n let bb = popByteBuffer();\n _encodep_limit_goods(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_limit_goods(message: p_limit_goods, bb: ByteBuffer): void {\n // optional int32 goodsId = 1;\n let $goodsId = message.goodsId;\n if ($goodsId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($goodsId));\n }\n\n // optional int32 num = 2;\n let $num = message.num;\n if ($num !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($num));\n }\n}\n\nexport function decodep_limit_goods(binary: Uint8Array): p_limit_goods {\n return _decodep_limit_goods(wrapByteBuffer(binary));\n}\n\nfunction _decodep_limit_goods(bb: ByteBuffer): p_limit_goods {\n let message: p_limit_goods = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 goodsId = 1;\n case 1: {\n message.goodsId = readVarint32(bb);\n break;\n }\n\n // optional int32 num = 2;\n case 2: {\n message.num = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1213 {\n type?: number;\n}\n\nexport function encodec1213(message: c1213): Uint8Array {\n let bb = popByteBuffer();\n _encodec1213(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1213(message: c1213, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1213(binary: Uint8Array): c1213 {\n return _decodec1213(wrapByteBuffer(binary));\n}\n\nfunction _decodec1213(bb: ByteBuffer): c1213 {\n let message: c1213 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1213 {\n goodsList?: p_limit_goods[];\n}\n\nexport function encodes1213(message: s1213): Uint8Array {\n let bb = popByteBuffer();\n _encodes1213(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1213(message: s1213, bb: ByteBuffer): void {\n // repeated p_limit_goods goodsList = 1;\n let array$goodsList = message.goodsList;\n if (array$goodsList !== undefined) {\n for (let value of array$goodsList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_limit_goods(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1213(binary: Uint8Array): s1213 {\n return _decodes1213(wrapByteBuffer(binary));\n}\n\nfunction _decodes1213(bb: ByteBuffer): s1213 {\n let message: s1213 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_limit_goods goodsList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.goodsList || (message.goodsList = []);\n values.push(_decodep_limit_goods(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1214 {\n goodsId?: number;\n num?: number;\n}\n\nexport function encodec1214(message: c1214): Uint8Array {\n let bb = popByteBuffer();\n _encodec1214(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1214(message: c1214, bb: ByteBuffer): void {\n // optional int32 goodsId = 1;\n let $goodsId = message.goodsId;\n if ($goodsId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($goodsId));\n }\n\n // optional int32 num = 2;\n let $num = message.num;\n if ($num !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($num));\n }\n}\n\nexport function decodec1214(binary: Uint8Array): c1214 {\n return _decodec1214(wrapByteBuffer(binary));\n}\n\nfunction _decodec1214(bb: ByteBuffer): c1214 {\n let message: c1214 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 goodsId = 1;\n case 1: {\n message.goodsId = readVarint32(bb);\n break;\n }\n\n // optional int32 num = 2;\n case 2: {\n message.num = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1214 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1214(message: s1214): Uint8Array {\n let bb = popByteBuffer();\n _encodes1214(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1214(message: s1214, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1214(binary: Uint8Array): s1214 {\n return _decodes1214(wrapByteBuffer(binary));\n}\n\nfunction _decodes1214(bb: ByteBuffer): s1214 {\n let message: s1214 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1215 {\n payId?: number;\n}\n\nexport function encodec1215(message: c1215): Uint8Array {\n let bb = popByteBuffer();\n _encodec1215(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1215(message: c1215, bb: ByteBuffer): void {\n // optional int32 payId = 1;\n let $payId = message.payId;\n if ($payId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($payId));\n }\n}\n\nexport function decodec1215(binary: Uint8Array): c1215 {\n return _decodec1215(wrapByteBuffer(binary));\n}\n\nfunction _decodec1215(bb: ByteBuffer): c1215 {\n let message: c1215 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 payId = 1;\n case 1: {\n message.payId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1215 {\n result?: number;\n}\n\nexport function encodes1215(message: s1215): Uint8Array {\n let bb = popByteBuffer();\n _encodes1215(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1215(message: s1215, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1215(binary: Uint8Array): s1215 {\n return _decodes1215(wrapByteBuffer(binary));\n}\n\nfunction _decodes1215(bb: ByteBuffer): s1215 {\n let message: s1215 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1216 {\n payId?: number;\n}\n\nexport function encodec1216(message: c1216): Uint8Array {\n let bb = popByteBuffer();\n _encodec1216(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1216(message: c1216, bb: ByteBuffer): void {\n // optional int32 payId = 1;\n let $payId = message.payId;\n if ($payId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($payId));\n }\n}\n\nexport function decodec1216(binary: Uint8Array): c1216 {\n return _decodec1216(wrapByteBuffer(binary));\n}\n\nfunction _decodec1216(bb: ByteBuffer): c1216 {\n let message: c1216 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 payId = 1;\n case 1: {\n message.payId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1217 {\n type?: number;\n}\n\nexport function encodec1217(message: c1217): Uint8Array {\n let bb = popByteBuffer();\n _encodec1217(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1217(message: c1217, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1217(binary: Uint8Array): c1217 {\n return _decodec1217(wrapByteBuffer(binary));\n}\n\nfunction _decodec1217(bb: ByteBuffer): c1217 {\n let message: c1217 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1217 {\n result?: number;\n type?: number;\n pay?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1217(message: s1217): Uint8Array {\n let bb = popByteBuffer();\n _encodes1217(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1217(message: s1217, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 type = 2;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($type));\n }\n\n // optional int32 pay = 3;\n let $pay = message.pay;\n if ($pay !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($pay));\n }\n\n // repeated p_reward rewards = 4;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 34);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1217(binary: Uint8Array): s1217 {\n return _decodes1217(wrapByteBuffer(binary));\n}\n\nfunction _decodes1217(bb: ByteBuffer): s1217 {\n let message: s1217 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 type = 2;\n case 2: {\n message.type = readVarint32(bb);\n break;\n }\n\n // optional int32 pay = 3;\n case 3: {\n message.pay = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 4;\n case 4: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1218 {\n}\n\nexport function encodec1218(message: c1218): Uint8Array {\n let bb = popByteBuffer();\n _encodec1218(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1218(message: c1218, bb: ByteBuffer): void {\n}\n\nexport function decodec1218(binary: Uint8Array): c1218 {\n return _decodec1218(wrapByteBuffer(binary));\n}\n\nfunction _decodec1218(bb: ByteBuffer): c1218 {\n let message: c1218 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1218 {\n monthTime?: number;\n sMonthTime?: number;\n monthDayState?: number;\n sMonthDayState?: number;\n monthPayRewards?: p_reward[];\n sMonthPayRewards?: p_reward[];\n monthDayRewards?: p_reward[];\n sMonthDayRewards?: p_reward[];\n}\n\nexport function encodes1218(message: s1218): Uint8Array {\n let bb = popByteBuffer();\n _encodes1218(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1218(message: s1218, bb: ByteBuffer): void {\n // optional int32 monthTime = 1;\n let $monthTime = message.monthTime;\n if ($monthTime !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($monthTime));\n }\n\n // optional int32 sMonthTime = 2;\n let $sMonthTime = message.sMonthTime;\n if ($sMonthTime !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($sMonthTime));\n }\n\n // optional int32 monthDayState = 3;\n let $monthDayState = message.monthDayState;\n if ($monthDayState !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($monthDayState));\n }\n\n // optional int32 sMonthDayState = 4;\n let $sMonthDayState = message.sMonthDayState;\n if ($sMonthDayState !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($sMonthDayState));\n }\n\n // repeated p_reward monthPayRewards = 5;\n let array$monthPayRewards = message.monthPayRewards;\n if (array$monthPayRewards !== undefined) {\n for (let value of array$monthPayRewards) {\n writeVarint32(bb, 42);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_reward sMonthPayRewards = 6;\n let array$sMonthPayRewards = message.sMonthPayRewards;\n if (array$sMonthPayRewards !== undefined) {\n for (let value of array$sMonthPayRewards) {\n writeVarint32(bb, 50);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_reward monthDayRewards = 7;\n let array$monthDayRewards = message.monthDayRewards;\n if (array$monthDayRewards !== undefined) {\n for (let value of array$monthDayRewards) {\n writeVarint32(bb, 58);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_reward sMonthDayRewards = 8;\n let array$sMonthDayRewards = message.sMonthDayRewards;\n if (array$sMonthDayRewards !== undefined) {\n for (let value of array$sMonthDayRewards) {\n writeVarint32(bb, 66);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1218(binary: Uint8Array): s1218 {\n return _decodes1218(wrapByteBuffer(binary));\n}\n\nfunction _decodes1218(bb: ByteBuffer): s1218 {\n let message: s1218 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 monthTime = 1;\n case 1: {\n message.monthTime = readVarint32(bb);\n break;\n }\n\n // optional int32 sMonthTime = 2;\n case 2: {\n message.sMonthTime = readVarint32(bb);\n break;\n }\n\n // optional int32 monthDayState = 3;\n case 3: {\n message.monthDayState = readVarint32(bb);\n break;\n }\n\n // optional int32 sMonthDayState = 4;\n case 4: {\n message.sMonthDayState = readVarint32(bb);\n break;\n }\n\n // repeated p_reward monthPayRewards = 5;\n case 5: {\n let limit = pushTemporaryLength(bb);\n let values = message.monthPayRewards || (message.monthPayRewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_reward sMonthPayRewards = 6;\n case 6: {\n let limit = pushTemporaryLength(bb);\n let values = message.sMonthPayRewards || (message.sMonthPayRewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_reward monthDayRewards = 7;\n case 7: {\n let limit = pushTemporaryLength(bb);\n let values = message.monthDayRewards || (message.monthDayRewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_reward sMonthDayRewards = 8;\n case 8: {\n let limit = pushTemporaryLength(bb);\n let values = message.sMonthDayRewards || (message.sMonthDayRewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1220 {\n}\n\nexport function encodec1220(message: c1220): Uint8Array {\n let bb = popByteBuffer();\n _encodec1220(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1220(message: c1220, bb: ByteBuffer): void {\n}\n\nexport function decodec1220(binary: Uint8Array): c1220 {\n return _decodec1220(wrapByteBuffer(binary));\n}\n\nfunction _decodec1220(bb: ByteBuffer): c1220 {\n let message: c1220 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1220 {\n startTime?: number;\n gold?: number;\n adNum?: number;\n adMaxNum?: number;\n rewards?: p_reward[];\n tan?: number;\n}\n\nexport function encodes1220(message: s1220): Uint8Array {\n let bb = popByteBuffer();\n _encodes1220(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1220(message: s1220, bb: ByteBuffer): void {\n // optional int32 startTime = 1;\n let $startTime = message.startTime;\n if ($startTime !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($startTime));\n }\n\n // optional int32 gold = 2;\n let $gold = message.gold;\n if ($gold !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($gold));\n }\n\n // optional int32 adNum = 3;\n let $adNum = message.adNum;\n if ($adNum !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($adNum));\n }\n\n // optional int32 adMaxNum = 4;\n let $adMaxNum = message.adMaxNum;\n if ($adMaxNum !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($adMaxNum));\n }\n\n // repeated p_reward rewards = 5;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 42);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // optional int32 tan = 6;\n let $tan = message.tan;\n if ($tan !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($tan));\n }\n}\n\nexport function decodes1220(binary: Uint8Array): s1220 {\n return _decodes1220(wrapByteBuffer(binary));\n}\n\nfunction _decodes1220(bb: ByteBuffer): s1220 {\n let message: s1220 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 startTime = 1;\n case 1: {\n message.startTime = readVarint32(bb);\n break;\n }\n\n // optional int32 gold = 2;\n case 2: {\n message.gold = readVarint32(bb);\n break;\n }\n\n // optional int32 adNum = 3;\n case 3: {\n message.adNum = readVarint32(bb);\n break;\n }\n\n // optional int32 adMaxNum = 4;\n case 4: {\n message.adMaxNum = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 5;\n case 5: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n // optional int32 tan = 6;\n case 6: {\n message.tan = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1221 {\n}\n\nexport function encodec1221(message: c1221): Uint8Array {\n let bb = popByteBuffer();\n _encodec1221(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1221(message: c1221, bb: ByteBuffer): void {\n}\n\nexport function decodec1221(binary: Uint8Array): c1221 {\n return _decodec1221(wrapByteBuffer(binary));\n}\n\nfunction _decodec1221(bb: ByteBuffer): c1221 {\n let message: c1221 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1221 {\n rewards?: p_reward[];\n}\n\nexport function encodes1221(message: s1221): Uint8Array {\n let bb = popByteBuffer();\n _encodes1221(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1221(message: s1221, bb: ByteBuffer): void {\n // repeated p_reward rewards = 1;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1221(binary: Uint8Array): s1221 {\n return _decodes1221(wrapByteBuffer(binary));\n}\n\nfunction _decodes1221(bb: ByteBuffer): s1221 {\n let message: s1221 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_reward rewards = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1222 {\n}\n\nexport function encodec1222(message: c1222): Uint8Array {\n let bb = popByteBuffer();\n _encodec1222(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1222(message: c1222, bb: ByteBuffer): void {\n}\n\nexport function decodec1222(binary: Uint8Array): c1222 {\n return _decodec1222(wrapByteBuffer(binary));\n}\n\nfunction _decodec1222(bb: ByteBuffer): c1222 {\n let message: c1222 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1222 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1222(message: s1222): Uint8Array {\n let bb = popByteBuffer();\n _encodes1222(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1222(message: s1222, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1222(binary: Uint8Array): s1222 {\n return _decodes1222(wrapByteBuffer(binary));\n}\n\nfunction _decodes1222(bb: ByteBuffer): s1222 {\n let message: s1222 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_build {\n buildId?: number;\n lv1?: number;\n lv2?: number;\n}\n\nexport function encodep_build(message: p_build): Uint8Array {\n let bb = popByteBuffer();\n _encodep_build(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_build(message: p_build, bb: ByteBuffer): void {\n // optional int32 buildId = 1;\n let $buildId = message.buildId;\n if ($buildId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($buildId));\n }\n\n // optional int32 lv1 = 2;\n let $lv1 = message.lv1;\n if ($lv1 !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv1));\n }\n\n // optional int32 lv2 = 3;\n let $lv2 = message.lv2;\n if ($lv2 !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($lv2));\n }\n}\n\nexport function decodep_build(binary: Uint8Array): p_build {\n return _decodep_build(wrapByteBuffer(binary));\n}\n\nfunction _decodep_build(bb: ByteBuffer): p_build {\n let message: p_build = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 buildId = 1;\n case 1: {\n message.buildId = readVarint32(bb);\n break;\n }\n\n // optional int32 lv1 = 2;\n case 2: {\n message.lv1 = readVarint32(bb);\n break;\n }\n\n // optional int32 lv2 = 3;\n case 3: {\n message.lv2 = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1300 {\n}\n\nexport function encodec1300(message: c1300): Uint8Array {\n let bb = popByteBuffer();\n _encodec1300(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1300(message: c1300, bb: ByteBuffer): void {\n}\n\nexport function decodec1300(binary: Uint8Array): c1300 {\n return _decodec1300(wrapByteBuffer(binary));\n}\n\nfunction _decodec1300(bb: ByteBuffer): c1300 {\n let message: c1300 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1300 {\n type?: number;\n buildList?: p_build[];\n}\n\nexport function encodes1300(message: s1300): Uint8Array {\n let bb = popByteBuffer();\n _encodes1300(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1300(message: s1300, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n\n // repeated p_build buildList = 2;\n let array$buildList = message.buildList;\n if (array$buildList !== undefined) {\n for (let value of array$buildList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_build(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1300(binary: Uint8Array): s1300 {\n return _decodes1300(wrapByteBuffer(binary));\n}\n\nfunction _decodes1300(bb: ByteBuffer): s1300 {\n let message: s1300 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n // repeated p_build buildList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.buildList || (message.buildList = []);\n values.push(_decodep_build(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1301 {\n buildId?: number;\n}\n\nexport function encodec1301(message: c1301): Uint8Array {\n let bb = popByteBuffer();\n _encodec1301(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1301(message: c1301, bb: ByteBuffer): void {\n // optional int32 buildId = 1;\n let $buildId = message.buildId;\n if ($buildId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($buildId));\n }\n}\n\nexport function decodec1301(binary: Uint8Array): c1301 {\n return _decodec1301(wrapByteBuffer(binary));\n}\n\nfunction _decodec1301(bb: ByteBuffer): c1301 {\n let message: c1301 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 buildId = 1;\n case 1: {\n message.buildId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1301 {\n result?: number;\n buildId?: number;\n}\n\nexport function encodes1301(message: s1301): Uint8Array {\n let bb = popByteBuffer();\n _encodes1301(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1301(message: s1301, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 buildId = 2;\n let $buildId = message.buildId;\n if ($buildId !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($buildId));\n }\n}\n\nexport function decodes1301(binary: Uint8Array): s1301 {\n return _decodes1301(wrapByteBuffer(binary));\n}\n\nfunction _decodes1301(bb: ByteBuffer): s1301 {\n let message: s1301 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 buildId = 2;\n case 2: {\n message.buildId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1302 {\n buildId?: number;\n index?: number;\n}\n\nexport function encodec1302(message: c1302): Uint8Array {\n let bb = popByteBuffer();\n _encodec1302(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1302(message: c1302, bb: ByteBuffer): void {\n // optional int32 buildId = 1;\n let $buildId = message.buildId;\n if ($buildId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($buildId));\n }\n\n // optional int32 index = 2;\n let $index = message.index;\n if ($index !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($index));\n }\n}\n\nexport function decodec1302(binary: Uint8Array): c1302 {\n return _decodec1302(wrapByteBuffer(binary));\n}\n\nfunction _decodec1302(bb: ByteBuffer): c1302 {\n let message: c1302 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 buildId = 1;\n case 1: {\n message.buildId = readVarint32(bb);\n break;\n }\n\n // optional int32 index = 2;\n case 2: {\n message.index = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1302 {\n result?: number;\n buildId?: number;\n}\n\nexport function encodes1302(message: s1302): Uint8Array {\n let bb = popByteBuffer();\n _encodes1302(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1302(message: s1302, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 buildId = 2;\n let $buildId = message.buildId;\n if ($buildId !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($buildId));\n }\n}\n\nexport function decodes1302(binary: Uint8Array): s1302 {\n return _decodes1302(wrapByteBuffer(binary));\n}\n\nfunction _decodes1302(bb: ByteBuffer): s1302 {\n let message: s1302 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 buildId = 2;\n case 2: {\n message.buildId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_army_equip {\n id?: number;\n lv?: number;\n num?: number;\n}\n\nexport function encodep_army_equip(message: p_army_equip): Uint8Array {\n let bb = popByteBuffer();\n _encodep_army_equip(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_army_equip(message: p_army_equip, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 lv = 2;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 num = 3;\n let $num = message.num;\n if ($num !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($num));\n }\n}\n\nexport function decodep_army_equip(binary: Uint8Array): p_army_equip {\n return _decodep_army_equip(wrapByteBuffer(binary));\n}\n\nfunction _decodep_army_equip(bb: ByteBuffer): p_army_equip {\n let message: p_army_equip = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 2;\n case 2: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 num = 3;\n case 3: {\n message.num = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_effect {\n type?: number;\n value?: number;\n}\n\nexport function encodep_effect(message: p_effect): Uint8Array {\n let bb = popByteBuffer();\n _encodep_effect(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_effect(message: p_effect, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n\n // optional int32 value = 2;\n let $value = message.value;\n if ($value !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($value));\n }\n}\n\nexport function decodep_effect(binary: Uint8Array): p_effect {\n return _decodep_effect(wrapByteBuffer(binary));\n}\n\nfunction _decodep_effect(bb: ByteBuffer): p_effect {\n let message: p_effect = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n // optional int32 value = 2;\n case 2: {\n message.value = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1400 {\n armyType?: number;\n}\n\nexport function encodec1400(message: c1400): Uint8Array {\n let bb = popByteBuffer();\n _encodec1400(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1400(message: c1400, bb: ByteBuffer): void {\n // optional int32 armyType = 1;\n let $armyType = message.armyType;\n if ($armyType !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($armyType));\n }\n}\n\nexport function decodec1400(binary: Uint8Array): c1400 {\n return _decodec1400(wrapByteBuffer(binary));\n}\n\nfunction _decodec1400(bb: ByteBuffer): c1400 {\n let message: c1400 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 armyType = 1;\n case 1: {\n message.armyType = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1400 {\n armyType?: number;\n wearWq?: number;\n wearKj?: number;\n wearHat?: number;\n wqList?: p_army_equip[];\n kJList?: p_army_equip[];\n hatList?: p_army_equip[];\n wqHaveEffct?: p_effect[];\n wqWearEffct?: p_effect[];\n kjHaveEffct?: p_effect[];\n kjWearEffct?: p_effect[];\n hatHaveEffct?: p_effect[];\n hatWearEffct?: p_effect[];\n}\n\nexport function encodes1400(message: s1400): Uint8Array {\n let bb = popByteBuffer();\n _encodes1400(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1400(message: s1400, bb: ByteBuffer): void {\n // optional int32 armyType = 1;\n let $armyType = message.armyType;\n if ($armyType !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($armyType));\n }\n\n // optional int32 wearWq = 2;\n let $wearWq = message.wearWq;\n if ($wearWq !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($wearWq));\n }\n\n // optional int32 wearKj = 3;\n let $wearKj = message.wearKj;\n if ($wearKj !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($wearKj));\n }\n\n // optional int32 wearHat = 4;\n let $wearHat = message.wearHat;\n if ($wearHat !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($wearHat));\n }\n\n // repeated p_army_equip wqList = 5;\n let array$wqList = message.wqList;\n if (array$wqList !== undefined) {\n for (let value of array$wqList) {\n writeVarint32(bb, 42);\n let nested = popByteBuffer();\n _encodep_army_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_army_equip kJList = 6;\n let array$kJList = message.kJList;\n if (array$kJList !== undefined) {\n for (let value of array$kJList) {\n writeVarint32(bb, 50);\n let nested = popByteBuffer();\n _encodep_army_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_army_equip hatList = 7;\n let array$hatList = message.hatList;\n if (array$hatList !== undefined) {\n for (let value of array$hatList) {\n writeVarint32(bb, 58);\n let nested = popByteBuffer();\n _encodep_army_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_effect wqHaveEffct = 8;\n let array$wqHaveEffct = message.wqHaveEffct;\n if (array$wqHaveEffct !== undefined) {\n for (let value of array$wqHaveEffct) {\n writeVarint32(bb, 66);\n let nested = popByteBuffer();\n _encodep_effect(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_effect wqWearEffct = 9;\n let array$wqWearEffct = message.wqWearEffct;\n if (array$wqWearEffct !== undefined) {\n for (let value of array$wqWearEffct) {\n writeVarint32(bb, 74);\n let nested = popByteBuffer();\n _encodep_effect(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_effect kjHaveEffct = 10;\n let array$kjHaveEffct = message.kjHaveEffct;\n if (array$kjHaveEffct !== undefined) {\n for (let value of array$kjHaveEffct) {\n writeVarint32(bb, 82);\n let nested = popByteBuffer();\n _encodep_effect(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_effect kjWearEffct = 11;\n let array$kjWearEffct = message.kjWearEffct;\n if (array$kjWearEffct !== undefined) {\n for (let value of array$kjWearEffct) {\n writeVarint32(bb, 90);\n let nested = popByteBuffer();\n _encodep_effect(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_effect hatHaveEffct = 12;\n let array$hatHaveEffct = message.hatHaveEffct;\n if (array$hatHaveEffct !== undefined) {\n for (let value of array$hatHaveEffct) {\n writeVarint32(bb, 98);\n let nested = popByteBuffer();\n _encodep_effect(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_effect hatWearEffct = 13;\n let array$hatWearEffct = message.hatWearEffct;\n if (array$hatWearEffct !== undefined) {\n for (let value of array$hatWearEffct) {\n writeVarint32(bb, 106);\n let nested = popByteBuffer();\n _encodep_effect(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1400(binary: Uint8Array): s1400 {\n return _decodes1400(wrapByteBuffer(binary));\n}\n\nfunction _decodes1400(bb: ByteBuffer): s1400 {\n let message: s1400 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 armyType = 1;\n case 1: {\n message.armyType = readVarint32(bb);\n break;\n }\n\n // optional int32 wearWq = 2;\n case 2: {\n message.wearWq = readVarint32(bb);\n break;\n }\n\n // optional int32 wearKj = 3;\n case 3: {\n message.wearKj = readVarint32(bb);\n break;\n }\n\n // optional int32 wearHat = 4;\n case 4: {\n message.wearHat = readVarint32(bb);\n break;\n }\n\n // repeated p_army_equip wqList = 5;\n case 5: {\n let limit = pushTemporaryLength(bb);\n let values = message.wqList || (message.wqList = []);\n values.push(_decodep_army_equip(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_army_equip kJList = 6;\n case 6: {\n let limit = pushTemporaryLength(bb);\n let values = message.kJList || (message.kJList = []);\n values.push(_decodep_army_equip(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_army_equip hatList = 7;\n case 7: {\n let limit = pushTemporaryLength(bb);\n let values = message.hatList || (message.hatList = []);\n values.push(_decodep_army_equip(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_effect wqHaveEffct = 8;\n case 8: {\n let limit = pushTemporaryLength(bb);\n let values = message.wqHaveEffct || (message.wqHaveEffct = []);\n values.push(_decodep_effect(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_effect wqWearEffct = 9;\n case 9: {\n let limit = pushTemporaryLength(bb);\n let values = message.wqWearEffct || (message.wqWearEffct = []);\n values.push(_decodep_effect(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_effect kjHaveEffct = 10;\n case 10: {\n let limit = pushTemporaryLength(bb);\n let values = message.kjHaveEffct || (message.kjHaveEffct = []);\n values.push(_decodep_effect(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_effect kjWearEffct = 11;\n case 11: {\n let limit = pushTemporaryLength(bb);\n let values = message.kjWearEffct || (message.kjWearEffct = []);\n values.push(_decodep_effect(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_effect hatHaveEffct = 12;\n case 12: {\n let limit = pushTemporaryLength(bb);\n let values = message.hatHaveEffct || (message.hatHaveEffct = []);\n values.push(_decodep_effect(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_effect hatWearEffct = 13;\n case 13: {\n let limit = pushTemporaryLength(bb);\n let values = message.hatWearEffct || (message.hatWearEffct = []);\n values.push(_decodep_effect(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_equip_lv {\n eqId?: number;\n oldLv?: number;\n newLv?: number;\n}\n\nexport function encodep_equip_lv(message: p_equip_lv): Uint8Array {\n let bb = popByteBuffer();\n _encodep_equip_lv(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_equip_lv(message: p_equip_lv, bb: ByteBuffer): void {\n // optional int32 eqId = 1;\n let $eqId = message.eqId;\n if ($eqId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($eqId));\n }\n\n // optional int32 oldLv = 2;\n let $oldLv = message.oldLv;\n if ($oldLv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($oldLv));\n }\n\n // optional int32 newLv = 3;\n let $newLv = message.newLv;\n if ($newLv !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($newLv));\n }\n}\n\nexport function decodep_equip_lv(binary: Uint8Array): p_equip_lv {\n return _decodep_equip_lv(wrapByteBuffer(binary));\n}\n\nfunction _decodep_equip_lv(bb: ByteBuffer): p_equip_lv {\n let message: p_equip_lv = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 eqId = 1;\n case 1: {\n message.eqId = readVarint32(bb);\n break;\n }\n\n // optional int32 oldLv = 2;\n case 2: {\n message.oldLv = readVarint32(bb);\n break;\n }\n\n // optional int32 newLv = 3;\n case 3: {\n message.newLv = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1401 {\n armyType?: number;\n}\n\nexport function encodec1401(message: c1401): Uint8Array {\n let bb = popByteBuffer();\n _encodec1401(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1401(message: c1401, bb: ByteBuffer): void {\n // optional int32 armyType = 1;\n let $armyType = message.armyType;\n if ($armyType !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($armyType));\n }\n}\n\nexport function decodec1401(binary: Uint8Array): c1401 {\n return _decodec1401(wrapByteBuffer(binary));\n}\n\nfunction _decodec1401(bb: ByteBuffer): c1401 {\n let message: c1401 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 armyType = 1;\n case 1: {\n message.armyType = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1401 {\n result?: number;\n itemList?: p_equip_lv[];\n}\n\nexport function encodes1401(message: s1401): Uint8Array {\n let bb = popByteBuffer();\n _encodes1401(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1401(message: s1401, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_equip_lv itemList = 2;\n let array$itemList = message.itemList;\n if (array$itemList !== undefined) {\n for (let value of array$itemList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_equip_lv(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1401(binary: Uint8Array): s1401 {\n return _decodes1401(wrapByteBuffer(binary));\n}\n\nfunction _decodes1401(bb: ByteBuffer): s1401 {\n let message: s1401 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_equip_lv itemList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.itemList || (message.itemList = []);\n values.push(_decodep_equip_lv(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1402 {\n equipId?: number;\n}\n\nexport function encodec1402(message: c1402): Uint8Array {\n let bb = popByteBuffer();\n _encodec1402(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1402(message: c1402, bb: ByteBuffer): void {\n // optional int32 equipId = 1;\n let $equipId = message.equipId;\n if ($equipId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($equipId));\n }\n}\n\nexport function decodec1402(binary: Uint8Array): c1402 {\n return _decodec1402(wrapByteBuffer(binary));\n}\n\nfunction _decodec1402(bb: ByteBuffer): c1402 {\n let message: c1402 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 equipId = 1;\n case 1: {\n message.equipId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1402 {\n result?: number;\n oldPower?: number;\n newPower?: number;\n}\n\nexport function encodes1402(message: s1402): Uint8Array {\n let bb = popByteBuffer();\n _encodes1402(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1402(message: s1402, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 oldPower = 2;\n let $oldPower = message.oldPower;\n if ($oldPower !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($oldPower));\n }\n\n // optional int32 newPower = 3;\n let $newPower = message.newPower;\n if ($newPower !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($newPower));\n }\n}\n\nexport function decodes1402(binary: Uint8Array): s1402 {\n return _decodes1402(wrapByteBuffer(binary));\n}\n\nfunction _decodes1402(bb: ByteBuffer): s1402 {\n let message: s1402 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 oldPower = 2;\n case 2: {\n message.oldPower = readVarint32(bb);\n break;\n }\n\n // optional int32 newPower = 3;\n case 3: {\n message.newPower = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_army_tuj_equip {\n eqId?: number;\n lv?: number;\n needLv?: number;\n}\n\nexport function encodep_army_tuj_equip(message: p_army_tuj_equip): Uint8Array {\n let bb = popByteBuffer();\n _encodep_army_tuj_equip(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_army_tuj_equip(message: p_army_tuj_equip, bb: ByteBuffer): void {\n // optional int32 eqId = 1;\n let $eqId = message.eqId;\n if ($eqId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($eqId));\n }\n\n // optional int32 lv = 2;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 needLv = 3;\n let $needLv = message.needLv;\n if ($needLv !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($needLv));\n }\n}\n\nexport function decodep_army_tuj_equip(binary: Uint8Array): p_army_tuj_equip {\n return _decodep_army_tuj_equip(wrapByteBuffer(binary));\n}\n\nfunction _decodep_army_tuj_equip(bb: ByteBuffer): p_army_tuj_equip {\n let message: p_army_tuj_equip = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 eqId = 1;\n case 1: {\n message.eqId = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 2;\n case 2: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 needLv = 3;\n case 3: {\n message.needLv = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_army_tuj {\n id?: number;\n state?: number;\n eqList?: p_army_tuj_equip[];\n}\n\nexport function encodep_army_tuj(message: p_army_tuj): Uint8Array {\n let bb = popByteBuffer();\n _encodep_army_tuj(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_army_tuj(message: p_army_tuj, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // repeated p_army_tuj_equip eqList = 3;\n let array$eqList = message.eqList;\n if (array$eqList !== undefined) {\n for (let value of array$eqList) {\n writeVarint32(bb, 26);\n let nested = popByteBuffer();\n _encodep_army_tuj_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodep_army_tuj(binary: Uint8Array): p_army_tuj {\n return _decodep_army_tuj(wrapByteBuffer(binary));\n}\n\nfunction _decodep_army_tuj(bb: ByteBuffer): p_army_tuj {\n let message: p_army_tuj = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // repeated p_army_tuj_equip eqList = 3;\n case 3: {\n let limit = pushTemporaryLength(bb);\n let values = message.eqList || (message.eqList = []);\n values.push(_decodep_army_tuj_equip(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1403 {\n}\n\nexport function encodec1403(message: c1403): Uint8Array {\n let bb = popByteBuffer();\n _encodec1403(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1403(message: c1403, bb: ByteBuffer): void {\n}\n\nexport function decodec1403(binary: Uint8Array): c1403 {\n return _decodec1403(wrapByteBuffer(binary));\n}\n\nfunction _decodec1403(bb: ByteBuffer): c1403 {\n let message: c1403 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1403 {\n tjList?: p_army_tuj[];\n}\n\nexport function encodes1403(message: s1403): Uint8Array {\n let bb = popByteBuffer();\n _encodes1403(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1403(message: s1403, bb: ByteBuffer): void {\n // repeated p_army_tuj tjList = 1;\n let array$tjList = message.tjList;\n if (array$tjList !== undefined) {\n for (let value of array$tjList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_army_tuj(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1403(binary: Uint8Array): s1403 {\n return _decodes1403(wrapByteBuffer(binary));\n}\n\nfunction _decodes1403(bb: ByteBuffer): s1403 {\n let message: s1403 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_army_tuj tjList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.tjList || (message.tjList = []);\n values.push(_decodep_army_tuj(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1404 {\n id?: number;\n}\n\nexport function encodec1404(message: c1404): Uint8Array {\n let bb = popByteBuffer();\n _encodec1404(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1404(message: c1404, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n}\n\nexport function decodec1404(binary: Uint8Array): c1404 {\n return _decodec1404(wrapByteBuffer(binary));\n}\n\nfunction _decodec1404(bb: ByteBuffer): c1404 {\n let message: c1404 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1404 {\n result?: number;\n}\n\nexport function encodes1404(message: s1404): Uint8Array {\n let bb = popByteBuffer();\n _encodes1404(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1404(message: s1404, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1404(binary: Uint8Array): s1404 {\n return _decodes1404(wrapByteBuffer(binary));\n}\n\nfunction _decodes1404(bb: ByteBuffer): s1404 {\n let message: s1404 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1405 {\n type?: number;\n}\n\nexport function encodec1405(message: c1405): Uint8Array {\n let bb = popByteBuffer();\n _encodec1405(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1405(message: c1405, bb: ByteBuffer): void {\n // optional int32 type = 1;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1405(binary: Uint8Array): c1405 {\n return _decodec1405(wrapByteBuffer(binary));\n}\n\nfunction _decodec1405(bb: ByteBuffer): c1405 {\n let message: c1405 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 type = 1;\n case 1: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1405 {\n eqList?: p_army_equip[];\n armyTjRed?: number;\n}\n\nexport function encodes1405(message: s1405): Uint8Array {\n let bb = popByteBuffer();\n _encodes1405(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1405(message: s1405, bb: ByteBuffer): void {\n // repeated p_army_equip eqList = 1;\n let array$eqList = message.eqList;\n if (array$eqList !== undefined) {\n for (let value of array$eqList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_army_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // optional int32 armyTjRed = 2;\n let $armyTjRed = message.armyTjRed;\n if ($armyTjRed !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($armyTjRed));\n }\n}\n\nexport function decodes1405(binary: Uint8Array): s1405 {\n return _decodes1405(wrapByteBuffer(binary));\n}\n\nfunction _decodes1405(bb: ByteBuffer): s1405 {\n let message: s1405 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_army_equip eqList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.eqList || (message.eqList = []);\n values.push(_decodep_army_equip(bb));\n bb.limit = limit;\n break;\n }\n\n // optional int32 armyTjRed = 2;\n case 2: {\n message.armyTjRed = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_army_wear_equip {\n armyType?: number;\n wearWq?: number;\n wearKj?: number;\n wearHat?: number;\n}\n\nexport function encodep_army_wear_equip(message: p_army_wear_equip): Uint8Array {\n let bb = popByteBuffer();\n _encodep_army_wear_equip(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_army_wear_equip(message: p_army_wear_equip, bb: ByteBuffer): void {\n // optional int32 armyType = 1;\n let $armyType = message.armyType;\n if ($armyType !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($armyType));\n }\n\n // optional int32 wearWq = 2;\n let $wearWq = message.wearWq;\n if ($wearWq !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($wearWq));\n }\n\n // optional int32 wearKj = 3;\n let $wearKj = message.wearKj;\n if ($wearKj !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($wearKj));\n }\n\n // optional int32 wearHat = 4;\n let $wearHat = message.wearHat;\n if ($wearHat !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($wearHat));\n }\n}\n\nexport function decodep_army_wear_equip(binary: Uint8Array): p_army_wear_equip {\n return _decodep_army_wear_equip(wrapByteBuffer(binary));\n}\n\nfunction _decodep_army_wear_equip(bb: ByteBuffer): p_army_wear_equip {\n let message: p_army_wear_equip = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 armyType = 1;\n case 1: {\n message.armyType = readVarint32(bb);\n break;\n }\n\n // optional int32 wearWq = 2;\n case 2: {\n message.wearWq = readVarint32(bb);\n break;\n }\n\n // optional int32 wearKj = 3;\n case 3: {\n message.wearKj = readVarint32(bb);\n break;\n }\n\n // optional int32 wearHat = 4;\n case 4: {\n message.wearHat = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1406 {\n armyWearList?: p_army_wear_equip[];\n}\n\nexport function encodes1406(message: s1406): Uint8Array {\n let bb = popByteBuffer();\n _encodes1406(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1406(message: s1406, bb: ByteBuffer): void {\n // repeated p_army_wear_equip armyWearList = 1;\n let array$armyWearList = message.armyWearList;\n if (array$armyWearList !== undefined) {\n for (let value of array$armyWearList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_army_wear_equip(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1406(binary: Uint8Array): s1406 {\n return _decodes1406(wrapByteBuffer(binary));\n}\n\nfunction _decodes1406(bb: ByteBuffer): s1406 {\n let message: s1406 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_army_wear_equip armyWearList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.armyWearList || (message.armyWearList = []);\n values.push(_decodep_army_wear_equip(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_task {\n taskId?: number;\n state?: number;\n now_content?: number;\n max_content?: number;\n}\n\nexport function encodep_task(message: p_task): Uint8Array {\n let bb = popByteBuffer();\n _encodep_task(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_task(message: p_task, bb: ByteBuffer): void {\n // optional int32 taskId = 1;\n let $taskId = message.taskId;\n if ($taskId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($taskId));\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // optional int32 now_content = 3;\n let $now_content = message.now_content;\n if ($now_content !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($now_content));\n }\n\n // optional int32 max_content = 4;\n let $max_content = message.max_content;\n if ($max_content !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($max_content));\n }\n}\n\nexport function decodep_task(binary: Uint8Array): p_task {\n return _decodep_task(wrapByteBuffer(binary));\n}\n\nfunction _decodep_task(bb: ByteBuffer): p_task {\n let message: p_task = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 taskId = 1;\n case 1: {\n message.taskId = readVarint32(bb);\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // optional int32 now_content = 3;\n case 3: {\n message.now_content = readVarint32(bb);\n break;\n }\n\n // optional int32 max_content = 4;\n case 4: {\n message.max_content = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1500 {\n}\n\nexport function encodec1500(message: c1500): Uint8Array {\n let bb = popByteBuffer();\n _encodec1500(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1500(message: c1500, bb: ByteBuffer): void {\n}\n\nexport function decodec1500(binary: Uint8Array): c1500 {\n return _decodec1500(wrapByteBuffer(binary));\n}\n\nfunction _decodec1500(bb: ByteBuffer): c1500 {\n let message: c1500 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1500 {\n tasks?: p_task[];\n}\n\nexport function encodes1500(message: s1500): Uint8Array {\n let bb = popByteBuffer();\n _encodes1500(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1500(message: s1500, bb: ByteBuffer): void {\n // repeated p_task tasks = 1;\n let array$tasks = message.tasks;\n if (array$tasks !== undefined) {\n for (let value of array$tasks) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_task(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1500(binary: Uint8Array): s1500 {\n return _decodes1500(wrapByteBuffer(binary));\n}\n\nfunction _decodes1500(bb: ByteBuffer): s1500 {\n let message: s1500 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_task tasks = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.tasks || (message.tasks = []);\n values.push(_decodep_task(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1501 {\n taskId?: number;\n}\n\nexport function encodec1501(message: c1501): Uint8Array {\n let bb = popByteBuffer();\n _encodec1501(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1501(message: c1501, bb: ByteBuffer): void {\n // optional int32 taskId = 1;\n let $taskId = message.taskId;\n if ($taskId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($taskId));\n }\n}\n\nexport function decodec1501(binary: Uint8Array): c1501 {\n return _decodec1501(wrapByteBuffer(binary));\n}\n\nfunction _decodec1501(bb: ByteBuffer): c1501 {\n let message: c1501 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 taskId = 1;\n case 1: {\n message.taskId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1501 {\n taskId?: number;\n result?: number;\n}\n\nexport function encodes1501(message: s1501): Uint8Array {\n let bb = popByteBuffer();\n _encodes1501(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1501(message: s1501, bb: ByteBuffer): void {\n // optional int32 taskId = 1;\n let $taskId = message.taskId;\n if ($taskId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($taskId));\n }\n\n // optional int32 result = 2;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1501(binary: Uint8Array): s1501 {\n return _decodes1501(wrapByteBuffer(binary));\n}\n\nfunction _decodes1501(bb: ByteBuffer): s1501 {\n let message: s1501 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 taskId = 1;\n case 1: {\n message.taskId = readVarint32(bb);\n break;\n }\n\n // optional int32 result = 2;\n case 2: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1502 {\n tasks?: p_task[];\n delIds?: number[];\n}\n\nexport function encodes1502(message: s1502): Uint8Array {\n let bb = popByteBuffer();\n _encodes1502(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1502(message: s1502, bb: ByteBuffer): void {\n // repeated p_task tasks = 1;\n let array$tasks = message.tasks;\n if (array$tasks !== undefined) {\n for (let value of array$tasks) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_task(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated int32 delIds = 2;\n let array$delIds = message.delIds;\n if (array$delIds !== undefined) {\n let packed = popByteBuffer();\n for (let value of array$delIds) {\n writeVarint64(packed, intToLong(value));\n }\n writeVarint32(bb, 18);\n writeVarint32(bb, packed.offset);\n writeByteBuffer(bb, packed);\n pushByteBuffer(packed);\n }\n}\n\nexport function decodes1502(binary: Uint8Array): s1502 {\n return _decodes1502(wrapByteBuffer(binary));\n}\n\nfunction _decodes1502(bb: ByteBuffer): s1502 {\n let message: s1502 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_task tasks = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.tasks || (message.tasks = []);\n values.push(_decodep_task(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated int32 delIds = 2;\n case 2: {\n let values = message.delIds || (message.delIds = []);\n if ((tag & 7) === 2) {\n let outerLimit = pushTemporaryLength(bb);\n while (!isAtEnd(bb)) {\n values.push(readVarint32(bb));\n }\n bb.limit = outerLimit;\n } else {\n values.push(readVarint32(bb));\n }\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_bat_army {\n armyType?: number;\n hurt?: number;\n hurtBj?: number;\n atkNum?: number;\n bjNum?: number;\n allNum?: number;\n hurtAll?: number;\n beHurtAll?: number;\n}\n\nexport function encodep_bat_army(message: p_bat_army): Uint8Array {\n let bb = popByteBuffer();\n _encodep_bat_army(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_bat_army(message: p_bat_army, bb: ByteBuffer): void {\n // optional int32 armyType = 1;\n let $armyType = message.armyType;\n if ($armyType !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($armyType));\n }\n\n // optional int32 hurt = 2;\n let $hurt = message.hurt;\n if ($hurt !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($hurt));\n }\n\n // optional int32 hurtBj = 3;\n let $hurtBj = message.hurtBj;\n if ($hurtBj !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($hurtBj));\n }\n\n // optional int32 atkNum = 4;\n let $atkNum = message.atkNum;\n if ($atkNum !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($atkNum));\n }\n\n // optional int32 bjNum = 5;\n let $bjNum = message.bjNum;\n if ($bjNum !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($bjNum));\n }\n\n // optional int32 allNum = 6;\n let $allNum = message.allNum;\n if ($allNum !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($allNum));\n }\n\n // optional int32 hurtAll = 7;\n let $hurtAll = message.hurtAll;\n if ($hurtAll !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($hurtAll));\n }\n\n // optional int32 beHurtAll = 8;\n let $beHurtAll = message.beHurtAll;\n if ($beHurtAll !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($beHurtAll));\n }\n}\n\nexport function decodep_bat_army(binary: Uint8Array): p_bat_army {\n return _decodep_bat_army(wrapByteBuffer(binary));\n}\n\nfunction _decodep_bat_army(bb: ByteBuffer): p_bat_army {\n let message: p_bat_army = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 armyType = 1;\n case 1: {\n message.armyType = readVarint32(bb);\n break;\n }\n\n // optional int32 hurt = 2;\n case 2: {\n message.hurt = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtBj = 3;\n case 3: {\n message.hurtBj = readVarint32(bb);\n break;\n }\n\n // optional int32 atkNum = 4;\n case 4: {\n message.atkNum = readVarint32(bb);\n break;\n }\n\n // optional int32 bjNum = 5;\n case 5: {\n message.bjNum = readVarint32(bb);\n break;\n }\n\n // optional int32 allNum = 6;\n case 6: {\n message.allNum = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtAll = 7;\n case 7: {\n message.hurtAll = readVarint32(bb);\n break;\n }\n\n // optional int32 beHurtAll = 8;\n case 8: {\n message.beHurtAll = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_bat_hero {\n heroUID?: string;\n hurt?: number;\n hurtBj?: number;\n atkNum?: number;\n bjNum?: number;\n allNum?: number;\n hurtAll?: number;\n hurtSkill?: number;\n hurtBjSkill?: number;\n skillNum?: number;\n skillBjNum?: number;\n skillNumAll?: number;\n skillHurtAll?: number;\n beHurtAll?: number;\n newNum?: number;\n deadNum?: number;\n}\n\nexport function encodep_bat_hero(message: p_bat_hero): Uint8Array {\n let bb = popByteBuffer();\n _encodep_bat_hero(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_bat_hero(message: p_bat_hero, bb: ByteBuffer): void {\n // optional string heroUID = 1;\n let $heroUID = message.heroUID;\n if ($heroUID !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $heroUID);\n }\n\n // optional int32 hurt = 2;\n let $hurt = message.hurt;\n if ($hurt !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($hurt));\n }\n\n // optional int32 hurtBj = 3;\n let $hurtBj = message.hurtBj;\n if ($hurtBj !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($hurtBj));\n }\n\n // optional int32 atkNum = 4;\n let $atkNum = message.atkNum;\n if ($atkNum !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($atkNum));\n }\n\n // optional int32 bjNum = 5;\n let $bjNum = message.bjNum;\n if ($bjNum !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($bjNum));\n }\n\n // optional int32 allNum = 6;\n let $allNum = message.allNum;\n if ($allNum !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($allNum));\n }\n\n // optional int32 hurtAll = 7;\n let $hurtAll = message.hurtAll;\n if ($hurtAll !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($hurtAll));\n }\n\n // optional int32 hurtSkill = 8;\n let $hurtSkill = message.hurtSkill;\n if ($hurtSkill !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($hurtSkill));\n }\n\n // optional int32 hurtBjSkill = 9;\n let $hurtBjSkill = message.hurtBjSkill;\n if ($hurtBjSkill !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($hurtBjSkill));\n }\n\n // optional int32 skillNum = 10;\n let $skillNum = message.skillNum;\n if ($skillNum !== undefined) {\n writeVarint32(bb, 80);\n writeVarint64(bb, intToLong($skillNum));\n }\n\n // optional int32 skillBjNum = 11;\n let $skillBjNum = message.skillBjNum;\n if ($skillBjNum !== undefined) {\n writeVarint32(bb, 88);\n writeVarint64(bb, intToLong($skillBjNum));\n }\n\n // optional int32 skillNumAll = 12;\n let $skillNumAll = message.skillNumAll;\n if ($skillNumAll !== undefined) {\n writeVarint32(bb, 96);\n writeVarint64(bb, intToLong($skillNumAll));\n }\n\n // optional int32 skillHurtAll = 13;\n let $skillHurtAll = message.skillHurtAll;\n if ($skillHurtAll !== undefined) {\n writeVarint32(bb, 104);\n writeVarint64(bb, intToLong($skillHurtAll));\n }\n\n // optional int32 beHurtAll = 14;\n let $beHurtAll = message.beHurtAll;\n if ($beHurtAll !== undefined) {\n writeVarint32(bb, 112);\n writeVarint64(bb, intToLong($beHurtAll));\n }\n\n // optional int32 newNum = 15;\n let $newNum = message.newNum;\n if ($newNum !== undefined) {\n writeVarint32(bb, 120);\n writeVarint64(bb, intToLong($newNum));\n }\n\n // optional int32 deadNum = 16;\n let $deadNum = message.deadNum;\n if ($deadNum !== undefined) {\n writeVarint32(bb, 128);\n writeVarint64(bb, intToLong($deadNum));\n }\n}\n\nexport function decodep_bat_hero(binary: Uint8Array): p_bat_hero {\n return _decodep_bat_hero(wrapByteBuffer(binary));\n}\n\nfunction _decodep_bat_hero(bb: ByteBuffer): p_bat_hero {\n let message: p_bat_hero = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string heroUID = 1;\n case 1: {\n message.heroUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 hurt = 2;\n case 2: {\n message.hurt = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtBj = 3;\n case 3: {\n message.hurtBj = readVarint32(bb);\n break;\n }\n\n // optional int32 atkNum = 4;\n case 4: {\n message.atkNum = readVarint32(bb);\n break;\n }\n\n // optional int32 bjNum = 5;\n case 5: {\n message.bjNum = readVarint32(bb);\n break;\n }\n\n // optional int32 allNum = 6;\n case 6: {\n message.allNum = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtAll = 7;\n case 7: {\n message.hurtAll = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtSkill = 8;\n case 8: {\n message.hurtSkill = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtBjSkill = 9;\n case 9: {\n message.hurtBjSkill = readVarint32(bb);\n break;\n }\n\n // optional int32 skillNum = 10;\n case 10: {\n message.skillNum = readVarint32(bb);\n break;\n }\n\n // optional int32 skillBjNum = 11;\n case 11: {\n message.skillBjNum = readVarint32(bb);\n break;\n }\n\n // optional int32 skillNumAll = 12;\n case 12: {\n message.skillNumAll = readVarint32(bb);\n break;\n }\n\n // optional int32 skillHurtAll = 13;\n case 13: {\n message.skillHurtAll = readVarint32(bb);\n break;\n }\n\n // optional int32 beHurtAll = 14;\n case 14: {\n message.beHurtAll = readVarint32(bb);\n break;\n }\n\n // optional int32 newNum = 15;\n case 15: {\n message.newNum = readVarint32(bb);\n break;\n }\n\n // optional int32 deadNum = 16;\n case 16: {\n message.deadNum = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_bat_boss {\n heroUID?: string;\n hurtSkill?: number;\n hurtBjSkill?: number;\n skillNum?: number;\n skillBjNum?: number;\n skillNumAll?: number;\n skillHurtAll?: number;\n beHurtAll?: number;\n}\n\nexport function encodep_bat_boss(message: p_bat_boss): Uint8Array {\n let bb = popByteBuffer();\n _encodep_bat_boss(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_bat_boss(message: p_bat_boss, bb: ByteBuffer): void {\n // optional string heroUID = 1;\n let $heroUID = message.heroUID;\n if ($heroUID !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $heroUID);\n }\n\n // optional int32 hurtSkill = 2;\n let $hurtSkill = message.hurtSkill;\n if ($hurtSkill !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($hurtSkill));\n }\n\n // optional int32 hurtBjSkill = 3;\n let $hurtBjSkill = message.hurtBjSkill;\n if ($hurtBjSkill !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($hurtBjSkill));\n }\n\n // optional int32 skillNum = 4;\n let $skillNum = message.skillNum;\n if ($skillNum !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($skillNum));\n }\n\n // optional int32 skillBjNum = 5;\n let $skillBjNum = message.skillBjNum;\n if ($skillBjNum !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($skillBjNum));\n }\n\n // optional int32 skillNumAll = 6;\n let $skillNumAll = message.skillNumAll;\n if ($skillNumAll !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($skillNumAll));\n }\n\n // optional int32 skillHurtAll = 7;\n let $skillHurtAll = message.skillHurtAll;\n if ($skillHurtAll !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($skillHurtAll));\n }\n\n // optional int32 beHurtAll = 8;\n let $beHurtAll = message.beHurtAll;\n if ($beHurtAll !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($beHurtAll));\n }\n}\n\nexport function decodep_bat_boss(binary: Uint8Array): p_bat_boss {\n return _decodep_bat_boss(wrapByteBuffer(binary));\n}\n\nfunction _decodep_bat_boss(bb: ByteBuffer): p_bat_boss {\n let message: p_bat_boss = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string heroUID = 1;\n case 1: {\n message.heroUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 hurtSkill = 2;\n case 2: {\n message.hurtSkill = readVarint32(bb);\n break;\n }\n\n // optional int32 hurtBjSkill = 3;\n case 3: {\n message.hurtBjSkill = readVarint32(bb);\n break;\n }\n\n // optional int32 skillNum = 4;\n case 4: {\n message.skillNum = readVarint32(bb);\n break;\n }\n\n // optional int32 skillBjNum = 5;\n case 5: {\n message.skillBjNum = readVarint32(bb);\n break;\n }\n\n // optional int32 skillNumAll = 6;\n case 6: {\n message.skillNumAll = readVarint32(bb);\n break;\n }\n\n // optional int32 skillHurtAll = 7;\n case 7: {\n message.skillHurtAll = readVarint32(bb);\n break;\n }\n\n // optional int32 beHurtAll = 8;\n case 8: {\n message.beHurtAll = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1601 {\n passId?: number;\n monsterId?: number;\n isKill?: number;\n heroMy?: p_bat_hero[];\n armyMy?: p_bat_army[];\n bossTar?: p_bat_boss[];\n startTime?: number;\n inArmyNum?: number;\n newArmyNum?: number;\n outArmyNUm?: number;\n deadArmyNum?: number;\n}\n\nexport function encodec1601(message: c1601): Uint8Array {\n let bb = popByteBuffer();\n _encodec1601(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1601(message: c1601, bb: ByteBuffer): void {\n // optional int32 passId = 1;\n let $passId = message.passId;\n if ($passId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($passId));\n }\n\n // optional int32 monsterId = 2;\n let $monsterId = message.monsterId;\n if ($monsterId !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($monsterId));\n }\n\n // optional int32 isKill = 3;\n let $isKill = message.isKill;\n if ($isKill !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($isKill));\n }\n\n // repeated p_bat_hero heroMy = 4;\n let array$heroMy = message.heroMy;\n if (array$heroMy !== undefined) {\n for (let value of array$heroMy) {\n writeVarint32(bb, 34);\n let nested = popByteBuffer();\n _encodep_bat_hero(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_bat_army armyMy = 5;\n let array$armyMy = message.armyMy;\n if (array$armyMy !== undefined) {\n for (let value of array$armyMy) {\n writeVarint32(bb, 42);\n let nested = popByteBuffer();\n _encodep_bat_army(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // repeated p_bat_boss bossTar = 6;\n let array$bossTar = message.bossTar;\n if (array$bossTar !== undefined) {\n for (let value of array$bossTar) {\n writeVarint32(bb, 50);\n let nested = popByteBuffer();\n _encodep_bat_boss(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n\n // optional int32 startTime = 7;\n let $startTime = message.startTime;\n if ($startTime !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($startTime));\n }\n\n // optional int32 inArmyNum = 8;\n let $inArmyNum = message.inArmyNum;\n if ($inArmyNum !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($inArmyNum));\n }\n\n // optional int32 newArmyNum = 9;\n let $newArmyNum = message.newArmyNum;\n if ($newArmyNum !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($newArmyNum));\n }\n\n // optional int32 outArmyNUm = 10;\n let $outArmyNUm = message.outArmyNUm;\n if ($outArmyNUm !== undefined) {\n writeVarint32(bb, 80);\n writeVarint64(bb, intToLong($outArmyNUm));\n }\n\n // optional int32 deadArmyNum = 11;\n let $deadArmyNum = message.deadArmyNum;\n if ($deadArmyNum !== undefined) {\n writeVarint32(bb, 88);\n writeVarint64(bb, intToLong($deadArmyNum));\n }\n}\n\nexport function decodec1601(binary: Uint8Array): c1601 {\n return _decodec1601(wrapByteBuffer(binary));\n}\n\nfunction _decodec1601(bb: ByteBuffer): c1601 {\n let message: c1601 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 passId = 1;\n case 1: {\n message.passId = readVarint32(bb);\n break;\n }\n\n // optional int32 monsterId = 2;\n case 2: {\n message.monsterId = readVarint32(bb);\n break;\n }\n\n // optional int32 isKill = 3;\n case 3: {\n message.isKill = readVarint32(bb);\n break;\n }\n\n // repeated p_bat_hero heroMy = 4;\n case 4: {\n let limit = pushTemporaryLength(bb);\n let values = message.heroMy || (message.heroMy = []);\n values.push(_decodep_bat_hero(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_bat_army armyMy = 5;\n case 5: {\n let limit = pushTemporaryLength(bb);\n let values = message.armyMy || (message.armyMy = []);\n values.push(_decodep_bat_army(bb));\n bb.limit = limit;\n break;\n }\n\n // repeated p_bat_boss bossTar = 6;\n case 6: {\n let limit = pushTemporaryLength(bb);\n let values = message.bossTar || (message.bossTar = []);\n values.push(_decodep_bat_boss(bb));\n bb.limit = limit;\n break;\n }\n\n // optional int32 startTime = 7;\n case 7: {\n message.startTime = readVarint32(bb);\n break;\n }\n\n // optional int32 inArmyNum = 8;\n case 8: {\n message.inArmyNum = readVarint32(bb);\n break;\n }\n\n // optional int32 newArmyNum = 9;\n case 9: {\n message.newArmyNum = readVarint32(bb);\n break;\n }\n\n // optional int32 outArmyNUm = 10;\n case 10: {\n message.outArmyNUm = readVarint32(bb);\n break;\n }\n\n // optional int32 deadArmyNum = 11;\n case 11: {\n message.deadArmyNum = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1601 {\n result?: number;\n}\n\nexport function encodes1601(message: s1601): Uint8Array {\n let bb = popByteBuffer();\n _encodes1601(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1601(message: s1601, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1601(binary: Uint8Array): s1601 {\n return _decodes1601(wrapByteBuffer(binary));\n}\n\nfunction _decodes1601(bb: ByteBuffer): s1601 {\n let message: s1601 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1621 {\n id?: number;\n lv?: number;\n type?: number;\n}\n\nexport function encodec1621(message: c1621): Uint8Array {\n let bb = popByteBuffer();\n _encodec1621(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1621(message: c1621, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 lv = 2;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 type = 3;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($type));\n }\n}\n\nexport function decodec1621(binary: Uint8Array): c1621 {\n return _decodec1621(wrapByteBuffer(binary));\n}\n\nfunction _decodec1621(bb: ByteBuffer): c1621 {\n let message: c1621 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 2;\n case 2: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 type = 3;\n case 3: {\n message.type = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1621 {\n result?: number;\n}\n\nexport function encodes1621(message: s1621): Uint8Array {\n let bb = popByteBuffer();\n _encodes1621(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1621(message: s1621, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n}\n\nexport function decodes1621(binary: Uint8Array): s1621 {\n return _decodes1621(wrapByteBuffer(binary));\n}\n\nfunction _decodes1621(bb: ByteBuffer): s1621 {\n let message: s1621 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1622 {\n id?: number;\n lv?: number;\n monsterId?: number;\n killHp?: number;\n}\n\nexport function encodec1622(message: c1622): Uint8Array {\n let bb = popByteBuffer();\n _encodec1622(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1622(message: c1622, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 lv = 2;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 monsterId = 3;\n let $monsterId = message.monsterId;\n if ($monsterId !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($monsterId));\n }\n\n // optional int32 killHp = 4;\n let $killHp = message.killHp;\n if ($killHp !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($killHp));\n }\n}\n\nexport function decodec1622(binary: Uint8Array): c1622 {\n return _decodec1622(wrapByteBuffer(binary));\n}\n\nfunction _decodec1622(bb: ByteBuffer): c1622 {\n let message: c1622 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 2;\n case 2: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 monsterId = 3;\n case 3: {\n message.monsterId = readVarint32(bb);\n break;\n }\n\n // optional int32 killHp = 4;\n case 4: {\n message.killHp = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1622 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1622(message: s1622): Uint8Array {\n let bb = popByteBuffer();\n _encodes1622(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1622(message: s1622, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1622(binary: Uint8Array): s1622 {\n return _decodes1622(wrapByteBuffer(binary));\n}\n\nfunction _decodes1622(bb: ByteBuffer): s1622 {\n let message: s1622 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1623 {\n id?: number;\n lv?: number;\n}\n\nexport function encodec1623(message: c1623): Uint8Array {\n let bb = popByteBuffer();\n _encodec1623(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1623(message: c1623, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 lv = 2;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv));\n }\n}\n\nexport function decodec1623(binary: Uint8Array): c1623 {\n return _decodec1623(wrapByteBuffer(binary));\n}\n\nfunction _decodec1623(bb: ByteBuffer): c1623 {\n let message: c1623 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 2;\n case 2: {\n message.lv = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1623 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1623(message: s1623): Uint8Array {\n let bb = popByteBuffer();\n _encodes1623(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1623(message: s1623, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1623(binary: Uint8Array): s1623 {\n return _decodes1623(wrapByteBuffer(binary));\n}\n\nfunction _decodes1623(bb: ByteBuffer): s1623 {\n let message: s1623 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_fuben {\n id?: number;\n lv?: number;\n adMax?: number;\n adNum?: number;\n per?: number;\n freeNum?: number;\n}\n\nexport function encodep_fuben(message: p_fuben): Uint8Array {\n let bb = popByteBuffer();\n _encodep_fuben(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_fuben(message: p_fuben, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 lv = 2;\n let $lv = message.lv;\n if ($lv !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($lv));\n }\n\n // optional int32 adMax = 3;\n let $adMax = message.adMax;\n if ($adMax !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($adMax));\n }\n\n // optional int32 adNum = 4;\n let $adNum = message.adNum;\n if ($adNum !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($adNum));\n }\n\n // optional int32 per = 5;\n let $per = message.per;\n if ($per !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($per));\n }\n\n // optional int32 freeNum = 6;\n let $freeNum = message.freeNum;\n if ($freeNum !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($freeNum));\n }\n}\n\nexport function decodep_fuben(binary: Uint8Array): p_fuben {\n return _decodep_fuben(wrapByteBuffer(binary));\n}\n\nfunction _decodep_fuben(bb: ByteBuffer): p_fuben {\n let message: p_fuben = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 lv = 2;\n case 2: {\n message.lv = readVarint32(bb);\n break;\n }\n\n // optional int32 adMax = 3;\n case 3: {\n message.adMax = readVarint32(bb);\n break;\n }\n\n // optional int32 adNum = 4;\n case 4: {\n message.adNum = readVarint32(bb);\n break;\n }\n\n // optional int32 per = 5;\n case 5: {\n message.per = readVarint32(bb);\n break;\n }\n\n // optional int32 freeNum = 6;\n case 6: {\n message.freeNum = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1624 {\n}\n\nexport function encodec1624(message: c1624): Uint8Array {\n let bb = popByteBuffer();\n _encodec1624(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1624(message: c1624, bb: ByteBuffer): void {\n}\n\nexport function decodec1624(binary: Uint8Array): c1624 {\n return _decodec1624(wrapByteBuffer(binary));\n}\n\nfunction _decodec1624(bb: ByteBuffer): c1624 {\n let message: c1624 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1624 {\n fuben_info?: p_fuben[];\n}\n\nexport function encodes1624(message: s1624): Uint8Array {\n let bb = popByteBuffer();\n _encodes1624(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1624(message: s1624, bb: ByteBuffer): void {\n // repeated p_fuben fuben_info = 1;\n let array$fuben_info = message.fuben_info;\n if (array$fuben_info !== undefined) {\n for (let value of array$fuben_info) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_fuben(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1624(binary: Uint8Array): s1624 {\n return _decodes1624(wrapByteBuffer(binary));\n}\n\nfunction _decodes1624(bb: ByteBuffer): s1624 {\n let message: s1624 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_fuben fuben_info = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.fuben_info || (message.fuben_info = []);\n values.push(_decodep_fuben(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1651 {\n id?: number;\n endTime?: number;\n clickMax?: number;\n click?: number;\n goldClick?: number;\n}\n\nexport function encodes1651(message: s1651): Uint8Array {\n let bb = popByteBuffer();\n _encodes1651(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1651(message: s1651, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 endTime = 2;\n let $endTime = message.endTime;\n if ($endTime !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($endTime));\n }\n\n // optional int32 clickMax = 3;\n let $clickMax = message.clickMax;\n if ($clickMax !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($clickMax));\n }\n\n // optional int32 click = 4;\n let $click = message.click;\n if ($click !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($click));\n }\n\n // optional int32 goldClick = 5;\n let $goldClick = message.goldClick;\n if ($goldClick !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($goldClick));\n }\n}\n\nexport function decodes1651(binary: Uint8Array): s1651 {\n return _decodes1651(wrapByteBuffer(binary));\n}\n\nfunction _decodes1651(bb: ByteBuffer): s1651 {\n let message: s1651 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime = 2;\n case 2: {\n message.endTime = readVarint32(bb);\n break;\n }\n\n // optional int32 clickMax = 3;\n case 3: {\n message.clickMax = readVarint32(bb);\n break;\n }\n\n // optional int32 click = 4;\n case 4: {\n message.click = readVarint32(bb);\n break;\n }\n\n // optional int32 goldClick = 5;\n case 5: {\n message.goldClick = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1652 {\n}\n\nexport function encodec1652(message: c1652): Uint8Array {\n let bb = popByteBuffer();\n _encodec1652(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1652(message: c1652, bb: ByteBuffer): void {\n}\n\nexport function decodec1652(binary: Uint8Array): c1652 {\n return _decodec1652(wrapByteBuffer(binary));\n}\n\nfunction _decodec1652(bb: ByteBuffer): c1652 {\n let message: c1652 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1652 {\n result?: number;\n clickMax?: number;\n gold?: number;\n}\n\nexport function encodes1652(message: s1652): Uint8Array {\n let bb = popByteBuffer();\n _encodes1652(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1652(message: s1652, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // optional int32 clickMax = 2;\n let $clickMax = message.clickMax;\n if ($clickMax !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($clickMax));\n }\n\n // optional int32 gold = 3;\n let $gold = message.gold;\n if ($gold !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($gold));\n }\n}\n\nexport function decodes1652(binary: Uint8Array): s1652 {\n return _decodes1652(wrapByteBuffer(binary));\n}\n\nfunction _decodes1652(bb: ByteBuffer): s1652 {\n let message: s1652 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // optional int32 clickMax = 2;\n case 2: {\n message.clickMax = readVarint32(bb);\n break;\n }\n\n // optional int32 gold = 3;\n case 3: {\n message.gold = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_mail {\n mailID?: string;\n state?: number;\n title?: string;\n recvTime?: number;\n type?: number;\n content?: string;\n rewards?: p_reward[];\n}\n\nexport function encodep_mail(message: p_mail): Uint8Array {\n let bb = popByteBuffer();\n _encodep_mail(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_mail(message: p_mail, bb: ByteBuffer): void {\n // optional string mailID = 1;\n let $mailID = message.mailID;\n if ($mailID !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $mailID);\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // optional string title = 3;\n let $title = message.title;\n if ($title !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $title);\n }\n\n // optional int32 recvTime = 4;\n let $recvTime = message.recvTime;\n if ($recvTime !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($recvTime));\n }\n\n // optional int32 type = 5;\n let $type = message.type;\n if ($type !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($type));\n }\n\n // optional string content = 6;\n let $content = message.content;\n if ($content !== undefined) {\n writeVarint32(bb, 50);\n writeString(bb, $content);\n }\n\n // repeated p_reward rewards = 7;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 58);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodep_mail(binary: Uint8Array): p_mail {\n return _decodep_mail(wrapByteBuffer(binary));\n}\n\nfunction _decodep_mail(bb: ByteBuffer): p_mail {\n let message: p_mail = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string mailID = 1;\n case 1: {\n message.mailID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // optional string title = 3;\n case 3: {\n message.title = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 recvTime = 4;\n case 4: {\n message.recvTime = readVarint32(bb);\n break;\n }\n\n // optional int32 type = 5;\n case 5: {\n message.type = readVarint32(bb);\n break;\n }\n\n // optional string content = 6;\n case 6: {\n message.content = readString(bb, readVarint32(bb));\n break;\n }\n\n // repeated p_reward rewards = 7;\n case 7: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1700 {\n}\n\nexport function encodec1700(message: c1700): Uint8Array {\n let bb = popByteBuffer();\n _encodec1700(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1700(message: c1700, bb: ByteBuffer): void {\n}\n\nexport function decodec1700(binary: Uint8Array): c1700 {\n return _decodec1700(wrapByteBuffer(binary));\n}\n\nfunction _decodec1700(bb: ByteBuffer): c1700 {\n let message: c1700 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1700 {\n mailList?: p_mail[];\n}\n\nexport function encodes1700(message: s1700): Uint8Array {\n let bb = popByteBuffer();\n _encodes1700(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1700(message: s1700, bb: ByteBuffer): void {\n // repeated p_mail mailList = 1;\n let array$mailList = message.mailList;\n if (array$mailList !== undefined) {\n for (let value of array$mailList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_mail(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1700(binary: Uint8Array): s1700 {\n return _decodes1700(wrapByteBuffer(binary));\n}\n\nfunction _decodes1700(bb: ByteBuffer): s1700 {\n let message: s1700 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_mail mailList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.mailList || (message.mailList = []);\n values.push(_decodep_mail(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1701 {\n mailId?: string;\n}\n\nexport function encodec1701(message: c1701): Uint8Array {\n let bb = popByteBuffer();\n _encodec1701(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1701(message: c1701, bb: ByteBuffer): void {\n // optional string mailId = 1;\n let $mailId = message.mailId;\n if ($mailId !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $mailId);\n }\n}\n\nexport function decodec1701(binary: Uint8Array): c1701 {\n return _decodec1701(wrapByteBuffer(binary));\n}\n\nfunction _decodec1701(bb: ByteBuffer): c1701 {\n let message: c1701 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string mailId = 1;\n case 1: {\n message.mailId = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1702 {\n id?: string;\n}\n\nexport function encodec1702(message: c1702): Uint8Array {\n let bb = popByteBuffer();\n _encodec1702(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1702(message: c1702, bb: ByteBuffer): void {\n // optional string id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 10);\n writeString(bb, $id);\n }\n}\n\nexport function decodec1702(binary: Uint8Array): c1702 {\n return _decodec1702(wrapByteBuffer(binary));\n}\n\nfunction _decodec1702(bb: ByteBuffer): c1702 {\n let message: c1702 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional string id = 1;\n case 1: {\n message.id = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1702 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes1702(message: s1702): Uint8Array {\n let bb = popByteBuffer();\n _encodes1702(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1702(message: s1702, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1702(binary: Uint8Array): s1702 {\n return _decodes1702(wrapByteBuffer(binary));\n}\n\nfunction _decodes1702(bb: ByteBuffer): s1702 {\n let message: s1702 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1703 {\n}\n\nexport function encodec1703(message: c1703): Uint8Array {\n let bb = popByteBuffer();\n _encodec1703(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1703(message: c1703, bb: ByteBuffer): void {\n}\n\nexport function decodec1703(binary: Uint8Array): c1703 {\n return _decodec1703(wrapByteBuffer(binary));\n}\n\nfunction _decodec1703(bb: ByteBuffer): c1703 {\n let message: c1703 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1705 {\n state?: number;\n ids?: string[];\n}\n\nexport function encodes1705(message: s1705): Uint8Array {\n let bb = popByteBuffer();\n _encodes1705(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1705(message: s1705, bb: ByteBuffer): void {\n // optional int32 state = 1;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($state));\n }\n\n // repeated string ids = 2;\n let array$ids = message.ids;\n if (array$ids !== undefined) {\n for (let value of array$ids) {\n writeVarint32(bb, 18);\n writeString(bb, value);\n }\n }\n}\n\nexport function decodes1705(binary: Uint8Array): s1705 {\n return _decodes1705(wrapByteBuffer(binary));\n}\n\nfunction _decodes1705(bb: ByteBuffer): s1705 {\n let message: s1705 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 state = 1;\n case 1: {\n message.state = readVarint32(bb);\n break;\n }\n\n // repeated string ids = 2;\n case 2: {\n let values = message.ids || (message.ids = []);\n values.push(readString(bb, readVarint32(bb)));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1707 {\n mails?: p_mail[];\n}\n\nexport function encodes1707(message: s1707): Uint8Array {\n let bb = popByteBuffer();\n _encodes1707(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1707(message: s1707, bb: ByteBuffer): void {\n // repeated p_mail mails = 1;\n let array$mails = message.mails;\n if (array$mails !== undefined) {\n for (let value of array$mails) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_mail(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1707(binary: Uint8Array): s1707 {\n return _decodes1707(wrapByteBuffer(binary));\n}\n\nfunction _decodes1707(bb: ByteBuffer): s1707 {\n let message: s1707 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_mail mails = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.mails || (message.mails = []);\n values.push(_decodep_mail(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_sys_notice {\n id?: number;\n info?: string;\n content?: string;\n beginTime?: number;\n endTime?: number;\n tanc?: number;\n}\n\nexport function encodep_sys_notice(message: p_sys_notice): Uint8Array {\n let bb = popByteBuffer();\n _encodep_sys_notice(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_sys_notice(message: p_sys_notice, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional string info = 2;\n let $info = message.info;\n if ($info !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $info);\n }\n\n // optional string content = 3;\n let $content = message.content;\n if ($content !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $content);\n }\n\n // optional int32 beginTime = 4;\n let $beginTime = message.beginTime;\n if ($beginTime !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($beginTime));\n }\n\n // optional int32 endTime = 5;\n let $endTime = message.endTime;\n if ($endTime !== undefined) {\n writeVarint32(bb, 40);\n writeVarint64(bb, intToLong($endTime));\n }\n\n // optional int32 tanc = 6;\n let $tanc = message.tanc;\n if ($tanc !== undefined) {\n writeVarint32(bb, 48);\n writeVarint64(bb, intToLong($tanc));\n }\n}\n\nexport function decodep_sys_notice(binary: Uint8Array): p_sys_notice {\n return _decodep_sys_notice(wrapByteBuffer(binary));\n}\n\nfunction _decodep_sys_notice(bb: ByteBuffer): p_sys_notice {\n let message: p_sys_notice = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional string info = 2;\n case 2: {\n message.info = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string content = 3;\n case 3: {\n message.content = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 beginTime = 4;\n case 4: {\n message.beginTime = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime = 5;\n case 5: {\n message.endTime = readVarint32(bb);\n break;\n }\n\n // optional int32 tanc = 6;\n case 6: {\n message.tanc = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1721 {\n sys_notice?: p_sys_notice[];\n}\n\nexport function encodes1721(message: s1721): Uint8Array {\n let bb = popByteBuffer();\n _encodes1721(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1721(message: s1721, bb: ByteBuffer): void {\n // repeated p_sys_notice sys_notice = 1;\n let array$sys_notice = message.sys_notice;\n if (array$sys_notice !== undefined) {\n for (let value of array$sys_notice) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_sys_notice(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1721(binary: Uint8Array): s1721 {\n return _decodes1721(wrapByteBuffer(binary));\n}\n\nfunction _decodes1721(bb: ByteBuffer): s1721 {\n let message: s1721 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_sys_notice sys_notice = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.sys_notice || (message.sys_notice = []);\n values.push(_decodep_sys_notice(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_rank {\n rank?: number;\n unitUID?: string;\n nick?: string;\n score?: number;\n para1?: string;\n}\n\nexport function encodep_rank(message: p_rank): Uint8Array {\n let bb = popByteBuffer();\n _encodep_rank(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_rank(message: p_rank, bb: ByteBuffer): void {\n // optional int32 rank = 1;\n let $rank = message.rank;\n if ($rank !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($rank));\n }\n\n // optional string unitUID = 2;\n let $unitUID = message.unitUID;\n if ($unitUID !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $unitUID);\n }\n\n // optional string nick = 3;\n let $nick = message.nick;\n if ($nick !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $nick);\n }\n\n // optional int32 score = 4;\n let $score = message.score;\n if ($score !== undefined) {\n writeVarint32(bb, 32);\n writeVarint64(bb, intToLong($score));\n }\n\n // optional string para1 = 5;\n let $para1 = message.para1;\n if ($para1 !== undefined) {\n writeVarint32(bb, 42);\n writeString(bb, $para1);\n }\n}\n\nexport function decodep_rank(binary: Uint8Array): p_rank {\n return _decodep_rank(wrapByteBuffer(binary));\n}\n\nfunction _decodep_rank(bb: ByteBuffer): p_rank {\n let message: p_rank = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 rank = 1;\n case 1: {\n message.rank = readVarint32(bb);\n break;\n }\n\n // optional string unitUID = 2;\n case 2: {\n message.unitUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string nick = 3;\n case 3: {\n message.nick = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 score = 4;\n case 4: {\n message.score = readVarint32(bb);\n break;\n }\n\n // optional string para1 = 5;\n case 5: {\n message.para1 = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c1800 {\n rankId?: number;\n}\n\nexport function encodec1800(message: c1800): Uint8Array {\n let bb = popByteBuffer();\n _encodec1800(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec1800(message: c1800, bb: ByteBuffer): void {\n // optional int32 rankId = 1;\n let $rankId = message.rankId;\n if ($rankId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($rankId));\n }\n}\n\nexport function decodec1800(binary: Uint8Array): c1800 {\n return _decodec1800(wrapByteBuffer(binary));\n}\n\nfunction _decodec1800(bb: ByteBuffer): c1800 {\n let message: c1800 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 rankId = 1;\n case 1: {\n message.rankId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s1800 {\n rankId?: number;\n rankList?: p_rank[];\n}\n\nexport function encodes1800(message: s1800): Uint8Array {\n let bb = popByteBuffer();\n _encodes1800(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes1800(message: s1800, bb: ByteBuffer): void {\n // optional int32 rankId = 1;\n let $rankId = message.rankId;\n if ($rankId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($rankId));\n }\n\n // repeated p_rank rankList = 2;\n let array$rankList = message.rankList;\n if (array$rankList !== undefined) {\n for (let value of array$rankList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_rank(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes1800(binary: Uint8Array): s1800 {\n return _decodes1800(wrapByteBuffer(binary));\n}\n\nfunction _decodes1800(bb: ByteBuffer): s1800 {\n let message: s1800 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 rankId = 1;\n case 1: {\n message.rankId = readVarint32(bb);\n break;\n }\n\n // repeated p_rank rankList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rankList || (message.rankList = []);\n values.push(_decodep_rank(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_chat_msg {\n channel?: number;\n nickname?: string;\n toname?: string;\n sendUID?: string;\n toUID?: string;\n msg?: string;\n time?: number;\n resId?: number;\n frameId?: number;\n title?: number;\n}\n\nexport function encodep_chat_msg(message: p_chat_msg): Uint8Array {\n let bb = popByteBuffer();\n _encodep_chat_msg(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_chat_msg(message: p_chat_msg, bb: ByteBuffer): void {\n // optional int32 channel = 1;\n let $channel = message.channel;\n if ($channel !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($channel));\n }\n\n // optional string nickname = 2;\n let $nickname = message.nickname;\n if ($nickname !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $nickname);\n }\n\n // optional string toname = 3;\n let $toname = message.toname;\n if ($toname !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $toname);\n }\n\n // optional string sendUID = 4;\n let $sendUID = message.sendUID;\n if ($sendUID !== undefined) {\n writeVarint32(bb, 34);\n writeString(bb, $sendUID);\n }\n\n // optional string toUID = 5;\n let $toUID = message.toUID;\n if ($toUID !== undefined) {\n writeVarint32(bb, 42);\n writeString(bb, $toUID);\n }\n\n // optional string msg = 6;\n let $msg = message.msg;\n if ($msg !== undefined) {\n writeVarint32(bb, 50);\n writeString(bb, $msg);\n }\n\n // optional int32 time = 7;\n let $time = message.time;\n if ($time !== undefined) {\n writeVarint32(bb, 56);\n writeVarint64(bb, intToLong($time));\n }\n\n // optional int32 resId = 8;\n let $resId = message.resId;\n if ($resId !== undefined) {\n writeVarint32(bb, 64);\n writeVarint64(bb, intToLong($resId));\n }\n\n // optional int32 frameId = 9;\n let $frameId = message.frameId;\n if ($frameId !== undefined) {\n writeVarint32(bb, 72);\n writeVarint64(bb, intToLong($frameId));\n }\n\n // optional int32 title = 10;\n let $title = message.title;\n if ($title !== undefined) {\n writeVarint32(bb, 80);\n writeVarint64(bb, intToLong($title));\n }\n}\n\nexport function decodep_chat_msg(binary: Uint8Array): p_chat_msg {\n return _decodep_chat_msg(wrapByteBuffer(binary));\n}\n\nfunction _decodep_chat_msg(bb: ByteBuffer): p_chat_msg {\n let message: p_chat_msg = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 channel = 1;\n case 1: {\n message.channel = readVarint32(bb);\n break;\n }\n\n // optional string nickname = 2;\n case 2: {\n message.nickname = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string toname = 3;\n case 3: {\n message.toname = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string sendUID = 4;\n case 4: {\n message.sendUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string toUID = 5;\n case 5: {\n message.toUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string msg = 6;\n case 6: {\n message.msg = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional int32 time = 7;\n case 7: {\n message.time = readVarint32(bb);\n break;\n }\n\n // optional int32 resId = 8;\n case 8: {\n message.resId = readVarint32(bb);\n break;\n }\n\n // optional int32 frameId = 9;\n case 9: {\n message.frameId = readVarint32(bb);\n break;\n }\n\n // optional int32 title = 10;\n case 10: {\n message.title = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c2151 {\n channel?: number;\n toUID?: string;\n msg?: string;\n}\n\nexport function encodec2151(message: c2151): Uint8Array {\n let bb = popByteBuffer();\n _encodec2151(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec2151(message: c2151, bb: ByteBuffer): void {\n // optional int32 channel = 1;\n let $channel = message.channel;\n if ($channel !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($channel));\n }\n\n // optional string toUID = 2;\n let $toUID = message.toUID;\n if ($toUID !== undefined) {\n writeVarint32(bb, 18);\n writeString(bb, $toUID);\n }\n\n // optional string msg = 3;\n let $msg = message.msg;\n if ($msg !== undefined) {\n writeVarint32(bb, 26);\n writeString(bb, $msg);\n }\n}\n\nexport function decodec2151(binary: Uint8Array): c2151 {\n return _decodec2151(wrapByteBuffer(binary));\n}\n\nfunction _decodec2151(bb: ByteBuffer): c2151 {\n let message: c2151 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 channel = 1;\n case 1: {\n message.channel = readVarint32(bb);\n break;\n }\n\n // optional string toUID = 2;\n case 2: {\n message.toUID = readString(bb, readVarint32(bb));\n break;\n }\n\n // optional string msg = 3;\n case 3: {\n message.msg = readString(bb, readVarint32(bb));\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s2151 {\n msgList?: p_chat_msg[];\n}\n\nexport function encodes2151(message: s2151): Uint8Array {\n let bb = popByteBuffer();\n _encodes2151(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes2151(message: s2151, bb: ByteBuffer): void {\n // repeated p_chat_msg msgList = 1;\n let array$msgList = message.msgList;\n if (array$msgList !== undefined) {\n for (let value of array$msgList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_chat_msg(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes2151(binary: Uint8Array): s2151 {\n return _decodes2151(wrapByteBuffer(binary));\n}\n\nfunction _decodes2151(bb: ByteBuffer): s2151 {\n let message: s2151 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_chat_msg msgList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.msgList || (message.msgList = []);\n values.push(_decodep_chat_msg(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_festival {\n id?: number;\n state?: number;\n endTime?: number;\n}\n\nexport function encodep_festival(message: p_festival): Uint8Array {\n let bb = popByteBuffer();\n _encodep_festival(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_festival(message: p_festival, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // optional int32 endTime = 3;\n let $endTime = message.endTime;\n if ($endTime !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($endTime));\n }\n}\n\nexport function decodep_festival(binary: Uint8Array): p_festival {\n return _decodep_festival(wrapByteBuffer(binary));\n}\n\nfunction _decodep_festival(bb: ByteBuffer): p_festival {\n let message: p_festival = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime = 3;\n case 3: {\n message.endTime = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c5501 {\n}\n\nexport function encodec5501(message: c5501): Uint8Array {\n let bb = popByteBuffer();\n _encodec5501(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec5501(message: c5501, bb: ByteBuffer): void {\n}\n\nexport function decodec5501(binary: Uint8Array): c5501 {\n return _decodec5501(wrapByteBuffer(binary));\n}\n\nfunction _decodec5501(bb: ByteBuffer): c5501 {\n let message: c5501 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s5501 {\n festival?: p_festival[];\n}\n\nexport function encodes5501(message: s5501): Uint8Array {\n let bb = popByteBuffer();\n _encodes5501(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes5501(message: s5501, bb: ByteBuffer): void {\n // repeated p_festival festival = 1;\n let array$festival = message.festival;\n if (array$festival !== undefined) {\n for (let value of array$festival) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_festival(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes5501(binary: Uint8Array): s5501 {\n return _decodes5501(wrapByteBuffer(binary));\n}\n\nfunction _decodes5501(bb: ByteBuffer): s5501 {\n let message: s5501 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_festival festival = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.festival || (message.festival = []);\n values.push(_decodep_festival(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c5510 {\n id?: number;\n}\n\nexport function encodec5510(message: c5510): Uint8Array {\n let bb = popByteBuffer();\n _encodec5510(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec5510(message: c5510, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n}\n\nexport function decodec5510(binary: Uint8Array): c5510 {\n return _decodec5510(wrapByteBuffer(binary));\n}\n\nfunction _decodec5510(bb: ByteBuffer): c5510 {\n let message: c5510 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s5510 {\n id?: number;\n goodsList?: p_limit_goods[];\n}\n\nexport function encodes5510(message: s5510): Uint8Array {\n let bb = popByteBuffer();\n _encodes5510(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes5510(message: s5510, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // repeated p_limit_goods goodsList = 2;\n let array$goodsList = message.goodsList;\n if (array$goodsList !== undefined) {\n for (let value of array$goodsList) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_limit_goods(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes5510(binary: Uint8Array): s5510 {\n return _decodes5510(wrapByteBuffer(binary));\n}\n\nfunction _decodes5510(bb: ByteBuffer): s5510 {\n let message: s5510 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // repeated p_limit_goods goodsList = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.goodsList || (message.goodsList = []);\n values.push(_decodep_limit_goods(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c5511 {\n id?: number;\n}\n\nexport function encodec5511(message: c5511): Uint8Array {\n let bb = popByteBuffer();\n _encodec5511(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec5511(message: c5511, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n}\n\nexport function decodec5511(binary: Uint8Array): c5511 {\n return _decodec5511(wrapByteBuffer(binary));\n}\n\nfunction _decodec5511(bb: ByteBuffer): c5511 {\n let message: c5511 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s5511 {\n id?: number;\n taskInfo?: p_task[];\n}\n\nexport function encodes5511(message: s5511): Uint8Array {\n let bb = popByteBuffer();\n _encodes5511(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes5511(message: s5511, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // repeated p_task taskInfo = 2;\n let array$taskInfo = message.taskInfo;\n if (array$taskInfo !== undefined) {\n for (let value of array$taskInfo) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_task(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes5511(binary: Uint8Array): s5511 {\n return _decodes5511(wrapByteBuffer(binary));\n}\n\nfunction _decodes5511(bb: ByteBuffer): s5511 {\n let message: s5511 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // repeated p_task taskInfo = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.taskInfo || (message.taskInfo = []);\n values.push(_decodep_task(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c5512 {\n taskId?: number;\n}\n\nexport function encodec5512(message: c5512): Uint8Array {\n let bb = popByteBuffer();\n _encodec5512(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec5512(message: c5512, bb: ByteBuffer): void {\n // optional int32 taskId = 1;\n let $taskId = message.taskId;\n if ($taskId !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($taskId));\n }\n}\n\nexport function decodec5512(binary: Uint8Array): c5512 {\n return _decodec5512(wrapByteBuffer(binary));\n}\n\nfunction _decodec5512(bb: ByteBuffer): c5512 {\n let message: c5512 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 taskId = 1;\n case 1: {\n message.taskId = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s5512 {\n result?: number;\n rewards?: p_reward[];\n}\n\nexport function encodes5512(message: s5512): Uint8Array {\n let bb = popByteBuffer();\n _encodes5512(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes5512(message: s5512, bb: ByteBuffer): void {\n // optional int32 result = 1;\n let $result = message.result;\n if ($result !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($result));\n }\n\n // repeated p_reward rewards = 2;\n let array$rewards = message.rewards;\n if (array$rewards !== undefined) {\n for (let value of array$rewards) {\n writeVarint32(bb, 18);\n let nested = popByteBuffer();\n _encodep_reward(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes5512(binary: Uint8Array): s5512 {\n return _decodes5512(wrapByteBuffer(binary));\n}\n\nfunction _decodes5512(bb: ByteBuffer): s5512 {\n let message: s5512 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 result = 1;\n case 1: {\n message.result = readVarint32(bb);\n break;\n }\n\n // repeated p_reward rewards = 2;\n case 2: {\n let limit = pushTemporaryLength(bb);\n let values = message.rewards || (message.rewards = []);\n values.push(_decodep_reward(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface p_fes_rank {\n id?: number;\n state?: number;\n endTime?: number;\n}\n\nexport function encodep_fes_rank(message: p_fes_rank): Uint8Array {\n let bb = popByteBuffer();\n _encodep_fes_rank(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodep_fes_rank(message: p_fes_rank, bb: ByteBuffer): void {\n // optional int32 id = 1;\n let $id = message.id;\n if ($id !== undefined) {\n writeVarint32(bb, 8);\n writeVarint64(bb, intToLong($id));\n }\n\n // optional int32 state = 2;\n let $state = message.state;\n if ($state !== undefined) {\n writeVarint32(bb, 16);\n writeVarint64(bb, intToLong($state));\n }\n\n // optional int32 endTime = 3;\n let $endTime = message.endTime;\n if ($endTime !== undefined) {\n writeVarint32(bb, 24);\n writeVarint64(bb, intToLong($endTime));\n }\n}\n\nexport function decodep_fes_rank(binary: Uint8Array): p_fes_rank {\n return _decodep_fes_rank(wrapByteBuffer(binary));\n}\n\nfunction _decodep_fes_rank(bb: ByteBuffer): p_fes_rank {\n let message: p_fes_rank = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // optional int32 id = 1;\n case 1: {\n message.id = readVarint32(bb);\n break;\n }\n\n // optional int32 state = 2;\n case 2: {\n message.state = readVarint32(bb);\n break;\n }\n\n // optional int32 endTime = 3;\n case 3: {\n message.endTime = readVarint32(bb);\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface c5513 {\n}\n\nexport function encodec5513(message: c5513): Uint8Array {\n let bb = popByteBuffer();\n _encodec5513(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodec5513(message: c5513, bb: ByteBuffer): void {\n}\n\nexport function decodec5513(binary: Uint8Array): c5513 {\n return _decodec5513(wrapByteBuffer(binary));\n}\n\nfunction _decodec5513(bb: ByteBuffer): c5513 {\n let message: c5513 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface s5513 {\n fesList?: p_fes_rank[];\n}\n\nexport function encodes5513(message: s5513): Uint8Array {\n let bb = popByteBuffer();\n _encodes5513(message, bb);\n return toUint8Array(bb);\n}\n\nfunction _encodes5513(message: s5513, bb: ByteBuffer): void {\n // repeated p_fes_rank fesList = 1;\n let array$fesList = message.fesList;\n if (array$fesList !== undefined) {\n for (let value of array$fesList) {\n writeVarint32(bb, 10);\n let nested = popByteBuffer();\n _encodep_fes_rank(value, nested);\n writeVarint32(bb, nested.limit);\n writeByteBuffer(bb, nested);\n pushByteBuffer(nested);\n }\n }\n}\n\nexport function decodes5513(binary: Uint8Array): s5513 {\n return _decodes5513(wrapByteBuffer(binary));\n}\n\nfunction _decodes5513(bb: ByteBuffer): s5513 {\n let message: s5513 = {} as any;\n\n end_of_message: while (!isAtEnd(bb)) {\n let tag = readVarint32(bb);\n\n switch (tag >>> 3) {\n case 0:\n break end_of_message;\n\n // repeated p_fes_rank fesList = 1;\n case 1: {\n let limit = pushTemporaryLength(bb);\n let values = message.fesList || (message.fesList = []);\n values.push(_decodep_fes_rank(bb));\n bb.limit = limit;\n break;\n }\n\n default:\n skipUnknownField(bb, tag & 7);\n }\n }\n\n return message;\n}\n\nexport interface Long {\n low: number;\n high: number;\n unsigned: boolean;\n}\n\ninterface ByteBuffer {\n bytes: Uint8Array;\n offset: number;\n limit: number;\n}\n\nfunction pushTemporaryLength(bb: ByteBuffer): number {\n let length = readVarint32(bb);\n let limit = bb.limit;\n bb.limit = bb.offset + length;\n return limit;\n}\n\nfunction skipUnknownField(bb: ByteBuffer, type: number): void {\n switch (type) {\n case 0: while (readByte(bb) & 0x80) { } break;\n case 2: skip(bb, readVarint32(bb)); break;\n case 5: skip(bb, 4); break;\n case 1: skip(bb, 8); break;\n default: throw new Error(\"Unimplemented type: \" + type);\n }\n}\n\nfunction stringToLong(value: string): Long {\n return {\n low: value.charCodeAt(0) | (value.charCodeAt(1) << 16),\n high: value.charCodeAt(2) | (value.charCodeAt(3) << 16),\n unsigned: false,\n };\n}\n\nfunction longToString(value: Long): string {\n let low = value.low;\n let high = value.high;\n return String.fromCharCode(\n low & 0xFFFF,\n low >>> 16,\n high & 0xFFFF,\n high >>> 16);\n}\n\n// The code below was modified from https://github.com/protobufjs/bytebuffer.js\n// which is under the Apache License 2.0.\n\nlet f32 = new Float32Array(1);\nlet f32_u8 = new Uint8Array(f32.buffer);\n\nlet f64 = new Float64Array(1);\nlet f64_u8 = new Uint8Array(f64.buffer);\n\nfunction intToLong(value: number): Long {\n value |= 0;\n return {\n low: value,\n high: value >> 31,\n unsigned: value >= 0,\n };\n}\n\nlet bbStack: ByteBuffer[] = [];\n\nfunction popByteBuffer(): ByteBuffer {\n const bb = bbStack.pop();\n if (!bb) return { bytes: new Uint8Array(64), offset: 0, limit: 0 };\n bb.offset = bb.limit = 0;\n return bb;\n}\n\nfunction pushByteBuffer(bb: ByteBuffer): void {\n bbStack.push(bb);\n}\n\nfunction wrapByteBuffer(bytes: Uint8Array): ByteBuffer {\n return { bytes, offset: 0, limit: bytes.length };\n}\n\nfunction toUint8Array(bb: ByteBuffer): Uint8Array {\n let bytes = bb.bytes;\n let limit = bb.limit;\n return bytes.length === limit ? bytes : bytes.subarray(0, limit);\n}\n\nfunction skip(bb: ByteBuffer, offset: number): void {\n if (bb.offset + offset > bb.limit) {\n throw new Error('Skip past limit');\n }\n bb.offset += offset;\n}\n\nfunction isAtEnd(bb: ByteBuffer): boolean {\n return bb.offset >= bb.limit;\n}\n\nfunction grow(bb: ByteBuffer, count: number): number {\n let bytes = bb.bytes;\n let offset = bb.offset;\n let limit = bb.limit;\n let finalOffset = offset + count;\n if (finalOffset > bytes.length) {\n let newBytes = new Uint8Array(finalOffset * 2);\n newBytes.set(bytes);\n bb.bytes = newBytes;\n }\n bb.offset = finalOffset;\n if (finalOffset > limit) {\n bb.limit = finalOffset;\n }\n return offset;\n}\n\nfunction advance(bb: ByteBuffer, count: number): number {\n let offset = bb.offset;\n if (offset + count > bb.limit) {\n throw new Error('Read past limit');\n }\n bb.offset += count;\n return offset;\n}\n\nfunction readBytes(bb: ByteBuffer, count: number): Uint8Array {\n let offset = advance(bb, count);\n return bb.bytes.subarray(offset, offset + count);\n}\n\nfunction writeBytes(bb: ByteBuffer, buffer: Uint8Array): void {\n let offset = grow(bb, buffer.length);\n bb.bytes.set(buffer, offset);\n}\n\nfunction readString(bb: ByteBuffer, count: number): string {\n // Sadly a hand-coded UTF8 decoder is much faster than subarray+TextDecoder in V8\n let offset = advance(bb, count);\n let fromCharCode = String.fromCharCode;\n let bytes = bb.bytes;\n let invalid = '\\uFFFD';\n let text = '';\n\n for (let i = 0; i < count; i++) {\n let c1 = bytes[i + offset], c2: number, c3: number, c4: number, c: number;\n\n // 1 byte\n if ((c1 & 0x80) === 0) {\n text += fromCharCode(c1);\n }\n\n // 2 bytes\n else if ((c1 & 0xE0) === 0xC0) {\n if (i + 1 >= count) text += invalid;\n else {\n c2 = bytes[i + offset + 1];\n if ((c2 & 0xC0) !== 0x80) text += invalid;\n else {\n c = ((c1 & 0x1F) << 6) | (c2 & 0x3F);\n if (c < 0x80) text += invalid;\n else {\n text += fromCharCode(c);\n i++;\n }\n }\n }\n }\n\n // 3 bytes\n else if ((c1 & 0xF0) == 0xE0) {\n if (i + 2 >= count) text += invalid;\n else {\n c2 = bytes[i + offset + 1];\n c3 = bytes[i + offset + 2];\n if (((c2 | (c3 << 8)) & 0xC0C0) !== 0x8080) text += invalid;\n else {\n c = ((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6) | (c3 & 0x3F);\n if (c < 0x0800 || (c >= 0xD800 && c <= 0xDFFF)) text += invalid;\n else {\n text += fromCharCode(c);\n i += 2;\n }\n }\n }\n }\n\n // 4 bytes\n else if ((c1 & 0xF8) == 0xF0) {\n if (i + 3 >= count) text += invalid;\n else {\n c2 = bytes[i + offset + 1];\n c3 = bytes[i + offset + 2];\n c4 = bytes[i + offset + 3];\n if (((c2 | (c3 << 8) | (c4 << 16)) & 0xC0C0C0) !== 0x808080) text += invalid;\n else {\n c = ((c1 & 0x07) << 0x12) | ((c2 & 0x3F) << 0x0C) | ((c3 & 0x3F) << 0x06) | (c4 & 0x3F);\n if (c < 0x10000 || c > 0x10FFFF) text += invalid;\n else {\n c -= 0x10000;\n text += fromCharCode((c >> 10) + 0xD800, (c & 0x3FF) + 0xDC00);\n i += 3;\n }\n }\n }\n }\n\n else text += invalid;\n }\n\n return text;\n}\n\nfunction writeString(bb: ByteBuffer, text: string): void {\n // Sadly a hand-coded UTF8 encoder is much faster than TextEncoder+set in V8\n let n = text.length;\n let byteCount = 0;\n\n // Write the byte count first\n for (let i = 0; i < n; i++) {\n let c = text.charCodeAt(i);\n if (c >= 0xD800 && c <= 0xDBFF && i + 1 < n) {\n c = (c << 10) + text.charCodeAt(++i) - 0x35FDC00;\n }\n byteCount += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n writeVarint32(bb, byteCount);\n\n let offset = grow(bb, byteCount);\n let bytes = bb.bytes;\n\n // Then write the bytes\n for (let i = 0; i < n; i++) {\n let c = text.charCodeAt(i);\n if (c >= 0xD800 && c <= 0xDBFF && i + 1 < n) {\n c = (c << 10) + text.charCodeAt(++i) - 0x35FDC00;\n }\n if (c < 0x80) {\n bytes[offset++] = c;\n } else {\n if (c < 0x800) {\n bytes[offset++] = ((c >> 6) & 0x1F) | 0xC0;\n } else {\n if (c < 0x10000) {\n bytes[offset++] = ((c >> 12) & 0x0F) | 0xE0;\n } else {\n bytes[offset++] = ((c >> 18) & 0x07) | 0xF0;\n bytes[offset++] = ((c >> 12) & 0x3F) | 0x80;\n }\n bytes[offset++] = ((c >> 6) & 0x3F) | 0x80;\n }\n bytes[offset++] = (c & 0x3F) | 0x80;\n }\n }\n}\n\nfunction writeByteBuffer(bb: ByteBuffer, buffer: ByteBuffer): void {\n let offset = grow(bb, buffer.limit);\n let from = bb.bytes;\n let to = buffer.bytes;\n\n // This for loop is much faster than subarray+set on V8\n for (let i = 0, n = buffer.limit; i < n; i++) {\n from[i + offset] = to[i];\n }\n}\n\nfunction readByte(bb: ByteBuffer): number {\n return bb.bytes[advance(bb, 1)];\n}\n\nfunction writeByte(bb: ByteBuffer, value: number): void {\n let offset = grow(bb, 1);\n bb.bytes[offset] = value;\n}\n\nfunction readFloat(bb: ByteBuffer): number {\n let offset = advance(bb, 4);\n let bytes = bb.bytes;\n\n // Manual copying is much faster than subarray+set in V8\n f32_u8[0] = bytes[offset++];\n f32_u8[1] = bytes[offset++];\n f32_u8[2] = bytes[offset++];\n f32_u8[3] = bytes[offset++];\n return f32[0];\n}\n\nfunction writeFloat(bb: ByteBuffer, value: number): void {\n let offset = grow(bb, 4);\n let bytes = bb.bytes;\n f32[0] = value;\n\n // Manual copying is much faster than subarray+set in V8\n bytes[offset++] = f32_u8[0];\n bytes[offset++] = f32_u8[1];\n bytes[offset++] = f32_u8[2];\n bytes[offset++] = f32_u8[3];\n}\n\nfunction readDouble(bb: ByteBuffer): number {\n let offset = advance(bb, 8);\n let bytes = bb.bytes;\n\n // Manual copying is much faster than subarray+set in V8\n f64_u8[0] = bytes[offset++];\n f64_u8[1] = bytes[offset++];\n f64_u8[2] = bytes[offset++];\n f64_u8[3] = bytes[offset++];\n f64_u8[4] = bytes[offset++];\n f64_u8[5] = bytes[offset++];\n f64_u8[6] = bytes[offset++];\n f64_u8[7] = bytes[offset++];\n return f64[0];\n}\n\nfunction writeDouble(bb: ByteBuffer, value: number): void {\n let offset = grow(bb, 8);\n let bytes = bb.bytes;\n f64[0] = value;\n\n // Manual copying is much faster than subarray+set in V8\n bytes[offset++] = f64_u8[0];\n bytes[offset++] = f64_u8[1];\n bytes[offset++] = f64_u8[2];\n bytes[offset++] = f64_u8[3];\n bytes[offset++] = f64_u8[4];\n bytes[offset++] = f64_u8[5];\n bytes[offset++] = f64_u8[6];\n bytes[offset++] = f64_u8[7];\n}\n\nfunction readInt32(bb: ByteBuffer): number {\n let offset = advance(bb, 4);\n let bytes = bb.bytes;\n return (\n bytes[offset] |\n (bytes[offset + 1] << 8) |\n (bytes[offset + 2] << 16) |\n (bytes[offset + 3] << 24)\n );\n}\n\nfunction writeInt32(bb: ByteBuffer, value: number): void {\n let offset = grow(bb, 4);\n let bytes = bb.bytes;\n bytes[offset] = value;\n bytes[offset + 1] = value >> 8;\n bytes[offset + 2] = value >> 16;\n bytes[offset + 3] = value >> 24;\n}\n\nfunction readInt64(bb: ByteBuffer, unsigned: boolean): Long {\n return {\n low: readInt32(bb),\n high: readInt32(bb),\n unsigned,\n };\n}\n\nfunction writeInt64(bb: ByteBuffer, value: Long): void {\n writeInt32(bb, value.low);\n writeInt32(bb, value.high);\n}\n\nfunction readVarint32(bb: ByteBuffer): number {\n let c = 0;\n let value = 0;\n let b: number;\n do {\n b = readByte(bb);\n if (c < 32) value |= (b & 0x7F) << c;\n c += 7;\n } while (b & 0x80);\n return value;\n}\n\nfunction writeVarint32(bb: ByteBuffer, value: number): void {\n value >>>= 0;\n while (value >= 0x80) {\n writeByte(bb, (value & 0x7f) | 0x80);\n value >>>= 7;\n }\n writeByte(bb, value);\n}\n\nfunction readVarint64(bb: ByteBuffer, unsigned: boolean): Long {\n let part0 = 0;\n let part1 = 0;\n let part2 = 0;\n let b: number;\n\n b = readByte(bb); part0 = (b & 0x7F); if (b & 0x80) {\n b = readByte(bb); part0 |= (b & 0x7F) << 7; if (b & 0x80) {\n b = readByte(bb); part0 |= (b & 0x7F) << 14; if (b & 0x80) {\n b = readByte(bb); part0 |= (b & 0x7F) << 21; if (b & 0x80) {\n\n b = readByte(bb); part1 = (b & 0x7F); if (b & 0x80) {\n b = readByte(bb); part1 |= (b & 0x7F) << 7; if (b & 0x80) {\n b = readByte(bb); part1 |= (b & 0x7F) << 14; if (b & 0x80) {\n b = readByte(bb); part1 |= (b & 0x7F) << 21; if (b & 0x80) {\n\n b = readByte(bb); part2 = (b & 0x7F); if (b & 0x80) {\n b = readByte(bb); part2 |= (b & 0x7F) << 7;\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n return {\n low: part0 | (part1 << 28),\n high: (part1 >>> 4) | (part2 << 24),\n unsigned,\n };\n}\n\nfunction writeVarint64(bb: ByteBuffer, value: Long): void {\n let part0 = value.low >>> 0;\n let part1 = ((value.low >>> 28) | (value.high << 4)) >>> 0;\n let part2 = value.high >>> 24;\n\n // ref: src/google/protobuf/io/coded_stream.cc\n let size =\n part2 === 0 ?\n part1 === 0 ?\n part0 < 1 << 14 ?\n part0 < 1 << 7 ? 1 : 2 :\n part0 < 1 << 21 ? 3 : 4 :\n part1 < 1 << 14 ?\n part1 < 1 << 7 ? 5 : 6 :\n part1 < 1 << 21 ? 7 : 8 :\n part2 < 1 << 7 ? 9 : 10;\n\n let offset = grow(bb, size);\n let bytes = bb.bytes;\n\n switch (size) {\n case 10: bytes[offset + 9] = (part2 >>> 7) & 0x01;\n case 9: bytes[offset + 8] = size !== 9 ? part2 | 0x80 : part2 & 0x7F;\n case 8: bytes[offset + 7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;\n case 7: bytes[offset + 6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;\n case 6: bytes[offset + 5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;\n case 5: bytes[offset + 4] = size !== 5 ? part1 | 0x80 : part1 & 0x7F;\n case 4: bytes[offset + 3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;\n case 3: bytes[offset + 2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;\n case 2: bytes[offset + 1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;\n case 1: bytes[offset] = size !== 1 ? part0 | 0x80 : part0 & 0x7F;\n }\n}\n\nfunction readVarint32ZigZag(bb: ByteBuffer): number {\n let value = readVarint32(bb);\n\n // ref: src/google/protobuf/wire_format_lite.h\n return (value >>> 1) ^ -(value & 1);\n}\n\nfunction writeVarint32ZigZag(bb: ByteBuffer, value: number): void {\n // ref: src/google/protobuf/wire_format_lite.h\n writeVarint32(bb, (value << 1) ^ (value >> 31));\n}\n\nfunction readVarint64ZigZag(bb: ByteBuffer): Long {\n let value = readVarint64(bb, /* unsigned */ false);\n let low = value.low;\n let high = value.high;\n let flip = -(low & 1);\n\n // ref: src/google/protobuf/wire_format_lite.h\n return {\n low: ((low >>> 1) | (high << 31)) ^ flip,\n high: (high >>> 1) ^ flip,\n unsigned: false,\n };\n}\n\nfunction writeVarint64ZigZag(bb: ByteBuffer, value: Long): void {\n let low = value.low;\n let high = value.high;\n let flip = high >> 31;\n\n // ref: src/google/protobuf/wire_format_lite.h\n writeVarint64(bb, {\n low: (low << 1) ^ flip,\n high: ((high << 1) | (low >>> 31)) ^ flip,\n unsigned: false,\n });\n}\n","import { unpack } from \"./protoRoute\";\r\nimport { do_s1001, do_s1004 } from \"../modules/game/login/login\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { do_s1017, do_s1100, do_s1101, do_s1102, do_s1103, do_s1104 } from \"../modules/game/proxy/HeroProxy\";\r\nimport { do_s1200, do_s1201, do_s1202 } from \"../modules/game/proxy/ItemProxy\";\r\nimport { do_s1016, do_s1006, do_s1021 } from \"../modules/game/proxy/UserProxy\";\r\nimport { do_s1300, do_s1301, do_s1302, do_s1405 } from \"../modules/game/proxy/CampPoxy\";\r\nimport { do_s1400, do_s1401, do_s1402, do_s1403, do_s1404 } from \"../modules/game/proxy/SoldierEquipProxy\";\r\nimport { do_s1406 } from \"../modules/game/proxy/MapPoxy\";\r\nimport { do_s1105, do_s1106, do_s1107, do_s1108, do_s1109, do_s1110, do_s1111 } from \"../modules/game/proxy/HeroEquipProxy\";\r\nimport { do_s1005, do_s1210, do_s1211, do_s1212, do_s1213, do_s1214, do_s1215 } from \"../modules/game/proxy/ShopProxy\";\r\nimport { do_s1220, do_s1221, do_s1222 } from \"../modules/game/proxy/OffineProxy\";\r\nimport { do_s1621, do_s1622, do_s1651, do_s1652 } from \"../modules/game/proxy/FuBenProxy\";\r\nimport { do_s1022, do_s1023, do_s1024 } from \"../modules/game/proxy/SignProxy\";\r\nimport { do_s1025, do_s1026 } from \"../modules/game/proxy/MainBuffProxy\";\r\nimport { do_s1500, do_s1501, do_s1502 } from \"../modules/game/proxy/TaskProxy\";\r\nimport { do_s1029, do_s1030 } from \"../modules/game/proxy/FestivalTimeProxy\";\r\nimport { do_s1217, do_s1218 } from \"../modules/game/proxy/MonthCardProxy\";\r\nimport { do_s1623, do_s1624 } from \"../modules/game/proxy/FuBenExpPoxy\";\r\nimport { do_s1050, do_s1051 } from \"../modules/game/proxy/FunctionProxy\";\r\nimport { do_s1027, do_s1028 } from \"../modules/game/proxy/AdGiftProxy\";\r\nimport { do_s1020 } from \"../modules/game/proxy/MainPoxy\";\r\nimport { do_s1700, do_s1702, do_s1705, do_s1707, do_s1721 } from \"../modules/game/proxy/MailProxy\";\r\nimport { do_s1038 } from \"../modules/game/guilde/GuideManager\";\r\nimport { do_s1012, do_s1013 } from \"../modules/game/proxy/KingDressProxy\";\r\nimport { do_s1008, do_s1009 } from \"../modules/game/proxy/KingInfoProxy\";\r\nimport { do_s1052, do_s1053, do_s1054 } from \"../modules/game/proxy/DaySevenProxy\";\r\nimport { do_s2151 } from \"../modules/game/proxy/ChatFacePoxy\";\r\nimport { do_s1056, do_s1058, do_s1059, do_s1060 } from \"../modules/game/proxy/TongXingProxy\";\r\nimport { do_s1049 } from \"../modules/game/proxy/BossLaixiPoxy\";\r\n\r\nexport function handle_data(binData: Uint8Array) {\r\n\r\n var unpackData = unpack(binData);\r\n if (unpackData[1] == null) {\r\n Logger.logNet(\"unpack data failed, data:\" + binData)\r\n return;\r\n }\r\n switch (unpackData[0]) {\r\n case \"s1001\":\r\n do_s1001(unpackData[1]);\r\n break;\r\n case \"s1004\":\r\n do_s1004(unpackData[1]);\r\n break;\r\n case \"s1005\":\r\n do_s1005(unpackData[1]);\r\n break;\r\n case \"s1006\":\r\n do_s1006(unpackData[1]);\r\n break;\r\n case \"s1008\":\r\n do_s1008(unpackData[1]);\r\n break;\r\n case \"s1009\":\r\n do_s1009(unpackData[1]);\r\n break;\r\n case \"s1012\":\r\n do_s1012(unpackData[1]);\r\n break;\r\n case \"s1013\":\r\n do_s1013(unpackData[1]);\r\n break;\r\n case \"s1016\":\r\n do_s1016(unpackData[1]);\r\n break;\r\n case \"s1017\":\r\n do_s1017(unpackData[1]);\r\n break;\r\n case \"s1020\":\r\n do_s1020(unpackData[1]);\r\n break;\r\n case \"s1021\":\r\n do_s1021(unpackData[1]);\r\n break;\r\n case \"s1022\":\r\n do_s1022(unpackData[1]);\r\n break;\r\n case \"s1023\":\r\n do_s1023(unpackData[1]);\r\n break;\r\n case \"s1024\":\r\n do_s1024(unpackData[1]);\r\n break;\r\n case \"s1025\":\r\n do_s1025(unpackData[1]);\r\n break;\r\n case \"s1026\":\r\n do_s1026(unpackData[1]);\r\n break;\r\n case \"s1027\":\r\n do_s1027(unpackData[1]);\r\n break;\r\n case \"s1028\":\r\n do_s1028(unpackData[1]);\r\n break;\r\n case \"s1029\":\r\n do_s1029(unpackData[1]);\r\n break;\r\n case \"s1030\":\r\n do_s1030(unpackData[1]);\r\n break;\r\n case \"s1038\":\r\n do_s1038(unpackData[1]);\r\n break;\r\n case \"s1049\":\r\n do_s1049(unpackData[1]);\r\n break;\r\n case \"s1050\":\r\n do_s1050(unpackData[1]);\r\n break;\r\n case \"s1051\":\r\n do_s1051(unpackData[1]);\r\n break;\r\n case \"s1052\":\r\n do_s1052(unpackData[1]);\r\n break;\r\n case \"s1053\":\r\n do_s1053(unpackData[1]);\r\n break;\r\n case \"s1054\":\r\n do_s1054(unpackData[1]); \r\n break;\r\n case \"s1056\":\r\n do_s1056(unpackData[1]);\r\n break;\r\n case \"s1058\":\r\n do_s1058(unpackData[1]);\r\n break;\r\n case \"s1059\":\r\n do_s1059(unpackData[1]);\r\n break;\r\n case \"s1060\":\r\n do_s1060(unpackData[1]);\r\n break;\r\n case \"s1100\":\r\n do_s1100(unpackData[1]);\r\n break;\r\n case \"s1101\":\r\n do_s1101(unpackData[1]);\r\n break;\r\n case \"s1102\":\r\n do_s1102(unpackData[1]);\r\n break;\r\n case \"s1103\":\r\n do_s1103(unpackData[1]);\r\n break;\r\n case \"s1104\":\r\n do_s1104(unpackData[1]);\r\n break;\r\n case \"s1105\":\r\n do_s1105(unpackData[1]);\r\n break;\r\n case \"s1106\":\r\n do_s1106(unpackData[1]);\r\n break;\r\n case \"s1107\":\r\n do_s1107(unpackData[1]);\r\n break;\r\n case \"s1108\":\r\n do_s1108(unpackData[1]);\r\n break;\r\n case \"s1109\":\r\n do_s1109(unpackData[1]);\r\n break;\r\n case \"s1110\":\r\n do_s1110(unpackData[1]);\r\n break;\r\n case \"s1111\":\r\n do_s1111(unpackData[1]);\r\n break;\r\n case \"s1200\":\r\n do_s1200(unpackData[1]);\r\n break;\r\n case \"s1201\":\r\n do_s1201(unpackData[1]);\r\n break;\r\n case \"s1202\":\r\n do_s1202(unpackData[1]);\r\n break;\r\n case \"s1210\":\r\n do_s1210(unpackData[1]);\r\n break;\r\n case \"s1211\":\r\n do_s1211(unpackData[1]);\r\n break;\r\n case \"s1212\":\r\n do_s1212(unpackData[1]);\r\n break;\r\n case \"s1213\":\r\n do_s1213(unpackData[1]);\r\n break;\r\n case \"s1214\":\r\n do_s1214(unpackData[1]);\r\n break;\r\n case \"s1215\":\r\n do_s1215(unpackData[1]);\r\n break;\r\n case \"s1217\":\r\n do_s1217(unpackData[1]);\r\n break;\r\n case \"s1218\":\r\n do_s1218(unpackData[1]);\r\n break;\r\n case \"s1220\":\r\n do_s1220(unpackData[1]);\r\n break;\r\n case \"s1221\":\r\n do_s1221(unpackData[1]);\r\n break;\r\n case \"s1222\":\r\n do_s1222(unpackData[1]);\r\n break;\r\n\r\n case \"s1300\":\r\n do_s1300(unpackData[1]);\r\n break;\r\n case \"s1301\":\r\n do_s1301(unpackData[1]);\r\n break;\r\n case \"s1302\":\r\n do_s1302(unpackData[1]);\r\n break;\r\n case \"s1405\":\r\n do_s1405(unpackData[1]);\r\n break;\r\n case \"s1400\":\r\n do_s1400(unpackData[1]);\r\n break;\r\n case \"s1401\":\r\n do_s1401(unpackData[1]);\r\n break;\r\n case \"s1402\":\r\n do_s1402(unpackData[1]);\r\n break;\r\n case \"s1403\":\r\n do_s1403(unpackData[1]);\r\n break;\r\n case \"s1404\":\r\n do_s1404(unpackData[1]);\r\n break;\r\n case \"s1406\":\r\n do_s1406(unpackData[1]);\r\n break;\r\n case \"s1500\":\r\n do_s1500(unpackData[1]);\r\n break;\r\n case \"s1501\":\r\n do_s1501(unpackData[1]);\r\n break;\r\n case \"s1502\":\r\n do_s1502(unpackData[1]);\r\n break;\r\n case \"s1651\":\r\n do_s1651(unpackData[1]);\r\n break;\r\n case \"s1652\":\r\n do_s1652(unpackData[1]);\r\n break;\r\n case \"s1621\":\r\n do_s1621(unpackData[1]);\r\n break;\r\n case \"s1622\":\r\n do_s1622(unpackData[1]);\r\n break;\r\n case \"s1623\":\r\n do_s1623(unpackData[1]);\r\n break;\r\n case \"s1624\":\r\n do_s1624(unpackData[1]);\r\n break;\r\n case \"s1700\":\r\n do_s1700(unpackData[1]);\r\n break;\r\n case \"s1702\":\r\n do_s1702(unpackData[1]);\r\n break;\r\n case \"s1705\":\r\n do_s1705(unpackData[1]);\r\n break;\r\n case \"s1707\":\r\n do_s1707(unpackData[1]);\r\n break;\r\n case \"s1721\":\r\n do_s1721(unpackData[1]);\r\n break;\r\n case \"s2151\":\r\n do_s2151(unpackData[1]);\r\n break;\r\n default:\r\n Logger.logNet(\"no handel funticon for:\" + unpackData[0]);\r\n break;\r\n }\r\n}","import { math } from \"cc\";\r\nimport { dataUser } from \"../modules/gameData/dataUser\";\r\nimport * as MyProto from \"./proto\";\r\nimport { debug, log } from \"console\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\n\r\ninterface MyProtoRoute {\r\n [key: string]: Function;\r\n}\r\n\r\n// c开始的协议是前端发给后端的,函数的用encodexxx, s开头的是后端发给前端的,函数用decodexxxx\r\nlet protoRouteList: MyProtoRoute = {\r\n \"c1001\": MyProto.encodec1001,\r\n \"s1001\": MyProto.decodes1001,\r\n \"c1004\": MyProto.encodec1004,\r\n \"s1004\": MyProto.decodes1004,\r\n \"c1005\": MyProto.encodec1005,\r\n \"s1005\": MyProto.decodes1005,\r\n \"c1006\": MyProto.encodec1006,\r\n \"s1006\": MyProto.decodes1006,\r\n\r\n \"c1008\": MyProto.encodec1008,\r\n \"s1008\": MyProto.decodes1008,\r\n \"c1009\": MyProto.encodec1009,\r\n \"s1009\": MyProto.decodes1009,\r\n\r\n \"c1012\": MyProto.encodec1012,\r\n \"s1012\": MyProto.decodes1012,\r\n \"c1013\": MyProto.encodec1013,\r\n \"s1013\": MyProto.decodes1013,\r\n\r\n \"s1016\": MyProto.decodes1016,\r\n \"s1017\": MyProto.decodes1017,\r\n\r\n \"c1020\": MyProto.encodec1020,\r\n \"s1020\": MyProto.decodes1020,\r\n \"s1021\": MyProto.decodes1021,\r\n \"c1022\": MyProto.encodec1022,\r\n \"s1022\": MyProto.decodes1022,\r\n \"c1023\": MyProto.encodec1023,\r\n \"s1023\": MyProto.decodes1023,\r\n \"c1024\": MyProto.encodec1024,\r\n \"s1024\": MyProto.decodes1024,\r\n\r\n \"c1025\": MyProto.encodec1025,\r\n \"s1025\": MyProto.decodes1025,\r\n \"c1026\": MyProto.encodec1026,\r\n \"s1026\": MyProto.decodes1026,\r\n\r\n \"c1027\": MyProto.encodec1027,\r\n \"s1027\": MyProto.decodes1027,\r\n\r\n \"c1028\": MyProto.encodec1028,\r\n \"s1028\": MyProto.decodes1028,\r\n\r\n \"c1029\": MyProto.encodec1029,\r\n \"s1029\": MyProto.decodes1029,\r\n\r\n \"c1030\": MyProto.encodec1030,\r\n \"s1030\": MyProto.decodes1030,\r\n\r\n \"c1031\": MyProto.encodec1031,\r\n\r\n \"c1033\": MyProto.encodec1033,\r\n \"c1037\": MyProto.encodec1037,\r\n \"s1037\": MyProto.decodes1037,\r\n \"s1038\": MyProto.decodes1038,\r\n \"s1049\": MyProto.decodes1049,\r\n \"c1050\": MyProto.encodec1050,\r\n \"s1050\": MyProto.decodes1050,\r\n \"s1051\": MyProto.decodes1051,\r\n \"c1052\": MyProto.encodec1052,\r\n \"s1052\": MyProto.decodes1052,\r\n \"c1053\": MyProto.encodec1053,\r\n \"s1053\": MyProto.decodes1053,\r\n \"c1054\": MyProto.encodec1054,\r\n \"s1054\": MyProto.decodes1054,\r\n\r\n \"c1056\": MyProto.encodec1056,\r\n \"s1056\": MyProto.decodes1056,\r\n \"c1057\": MyProto.encodec1057,\r\n \"c1058\": MyProto.encodec1058,\r\n \"s1058\": MyProto.decodes1058,\r\n \"c1059\": MyProto.encodec1059,\r\n \"s1059\": MyProto.decodes1059,\r\n \"c1060\": MyProto.encodec1060,\r\n \"s1060\": MyProto.decodes1060,\r\n\r\n \"c1100\": MyProto.encodec1100,\r\n \"s1100\": MyProto.decodes1100,\r\n \"c1101\": MyProto.encodec1101,\r\n \"s1101\": MyProto.decodes1101,\r\n \"c1102\": MyProto.encodec1102,\r\n \"s1102\": MyProto.decodes1102,\r\n \"c1103\": MyProto.encodec1103,\r\n \"s1103\": MyProto.decodes1103,\r\n \"c1104\": MyProto.encodec1104,\r\n \"s1104\": MyProto.decodes1104,\r\n\r\n \"c1105\": MyProto.encodec1105,\r\n \"s1105\": MyProto.decodes1105,\r\n \"c1106\": MyProto.encodec1106,\r\n \"s1106\": MyProto.decodes1106,\r\n \"c1107\": MyProto.encodec1107,\r\n \"s1107\": MyProto.decodes1107,\r\n \"c1108\": MyProto.encodec1108,\r\n \"s1108\": MyProto.decodes1108,\r\n \"c1109\": MyProto.encodec1109,\r\n \"s1109\": MyProto.decodes1109,\r\n \"c1110\": MyProto.encodec1110,\r\n \"s1110\": MyProto.decodes1110,\r\n \"c1111\": MyProto.encodec1111,\r\n \"s1111\": MyProto.decodes1111,\r\n\r\n \"c1200\": MyProto.encodec1200,\r\n \"s1200\": MyProto.decodes1200,\r\n \"s1201\": MyProto.decodes1201,\r\n \"c1202\": MyProto.encodec1202,\r\n \"s1202\": MyProto.decodes1202,\r\n\r\n \"c1210\": MyProto.encodec1210,\r\n \"s1210\": MyProto.decodes1210,\r\n \"s1211\": MyProto.decodes1211,\r\n \"c1211\": MyProto.encodec1211,\r\n \"s1212\": MyProto.decodes1212,\r\n \"c1212\": MyProto.encodec1212,\r\n \"s1213\": MyProto.decodes1213,\r\n \"c1213\": MyProto.encodec1213,\r\n \"s1214\": MyProto.decodes1214,\r\n \"c1214\": MyProto.encodec1214,\r\n \"s1215\": MyProto.decodes1215,\r\n \"c1215\": MyProto.encodec1215,\r\n \"c1216\": MyProto.encodec1216,\r\n\r\n \"s1217\": MyProto.decodes1217,\r\n \"c1217\": MyProto.encodec1217,\r\n \"s1218\": MyProto.decodes1218,\r\n \"c1218\": MyProto.encodec1218,\r\n\r\n \"s1220\": MyProto.decodes1220,\r\n \"c1220\": MyProto.encodec1220,\r\n \"s1221\": MyProto.decodes1221,\r\n \"c1221\": MyProto.encodec1221,\r\n \"s1222\": MyProto.decodes1222,\r\n \"c1222\": MyProto.encodec1222,\r\n\r\n \"c1300\": MyProto.encodec1300,\r\n \"s1300\": MyProto.decodes1300,\r\n \"c1301\": MyProto.encodec1301,\r\n \"s1301\": MyProto.decodes1301,\r\n \"c1302\": MyProto.encodec1302,\r\n \"s1302\": MyProto.decodes1302,\r\n\r\n \"c1400\": MyProto.encodec1400,\r\n \"s1400\": MyProto.decodes1400,\r\n\r\n \"c1401\": MyProto.encodec1401,\r\n \"s1401\": MyProto.decodes1401,\r\n\r\n \"c1402\": MyProto.encodec1402,\r\n \"s1402\": MyProto.decodes1402,\r\n\r\n \"c1403\": MyProto.encodec1403,\r\n \"s1403\": MyProto.decodes1403,\r\n\r\n \"c1404\": MyProto.encodec1404,\r\n \"s1404\": MyProto.decodes1404,\r\n\r\n \"c1405\": MyProto.encodec1405,\r\n \"s1405\": MyProto.decodes1405,\r\n\r\n \"s1406\": MyProto.decodes1406,\r\n \r\n \"s1098\": MyProto.decodes1098,\r\n\r\n \"c1500\": MyProto.encodec1500,\r\n \"s1500\": MyProto.decodes1500,\r\n\r\n \"c1501\": MyProto.encodec1501,\r\n \"s1501\": MyProto.decodes1501,\r\n\r\n \"s1502\": MyProto.decodes1502,\r\n\r\n \"c1601\": MyProto.encodec1601,\r\n \"s1601\": MyProto.decodes1601,\r\n\r\n \"s1651\": MyProto.decodes1651,\r\n \"s1652\": MyProto.decodes1652,\r\n \"c1652\": MyProto.encodec1652,\r\n \"c1621\": MyProto.encodec1621,\r\n \"c1622\": MyProto.encodec1622,\r\n \"s1621\": MyProto.decodes1621,\r\n \"s1622\": MyProto.decodes1622,\r\n \"c1623\": MyProto.encodec1623,\r\n \"s1623\": MyProto.decodes1623,\r\n \"c1624\": MyProto.encodec1624,\r\n \"s1624\": MyProto.decodes1624,\r\n\r\n \"c1700\": MyProto.encodec1700,\r\n \"s1700\": MyProto.decodes1700,\r\n \"c1701\": MyProto.encodec1701,\r\n \"c1702\": MyProto.encodec1702,\r\n \"s1702\": MyProto.decodes1702,\r\n \"c1703\": MyProto.encodec1703,\r\n \"s1705\": MyProto.decodes1705,\r\n \"s1707\": MyProto.decodes1707,\r\n \"s1721\": MyProto.decodes1721,\r\n \"c2151\": MyProto.encodec2151,\r\n \"s2151\": MyProto.decodes2151,\r\n};\r\n\r\nlet noJiamLiList: Array = [\"c1001\", \"s1001\"];\r\n\r\n// 根据protobuff定义的函数压缩或者解压缩数据\r\n// 示例:handelData(\"c1001\", {token:\"token\"});\r\nfunction handelData(protoName: string, data: any) {\r\n var Func = protoRouteList[protoName];\r\n if (Func == undefined) {\r\n console.error(protoName + \" not handle in protoRoute!!!\")\r\n return null;\r\n }\r\n\r\n var newData = Func(data);\r\n return newData;\r\n}\r\n\r\nexport function pack(protoName: string, data: any) {\r\n var newData: Uint8Array = handelData(protoName, data);\r\n if (newData == null)\r\n return null;\r\n\r\n var isJiami = 1;\r\n\r\n if (noJiamLiList.indexOf(protoName) > -1)\r\n isJiami = 0;\r\n\r\n var encoder = new TextEncoder();\r\n var ptNameArray: Uint8Array = encoder.encode(protoName);\r\n var binData = new Uint8Array(ptNameArray.length + newData.length);\r\n binData.set(ptNameArray);\r\n binData.set(newData, ptNameArray.length);\r\n var result = new Uint8Array(1 + ptNameArray.length + newData.length);\r\n result.set([isJiami]);\r\n result.set(jia_mi(binData), 1);\r\n return result;\r\n}\r\n\r\nexport function unpack(data: Uint8Array) {\r\n\r\n if (data.byteLength < 6)\r\n return [null, null];\r\n\r\n var newData: Uint8Array;\r\n if (data[0] == 0) {\r\n newData = data.subarray(1);\r\n }\r\n else {\r\n newData = jie_mi(data.subarray(1));\r\n }\r\n\r\n var ptNameArray = newData.subarray(0, 5);\r\n var dataArray = newData.subarray(5);\r\n var decoder = new TextDecoder();\r\n var ptName = decoder.decode(ptNameArray);\r\n var dataResult = handelData(ptName, dataArray);\r\n return [ptName, dataResult];\r\n}\r\n\r\nfunction jia_mi(data: Uint8Array): Uint8Array {\r\n var nth = dataUser.Instance().nth;\r\n if (data.length <= nth) {\r\n return data;\r\n }\r\n\r\n var result = new Uint8Array(data.length);\r\n if (data.length <= 2 * nth) {\r\n result.set(data.subarray(data.length - nth));\r\n result.set(data.subarray(0, data.length - nth),nth);\r\n return result;\r\n }\r\n\r\n result.set(data.subarray(data.length - nth));\r\n result.set(data.subarray(nth, data.length - nth), nth);\r\n result.set(data.subarray(0, nth), data.length - nth);\r\n return result;\r\n}\r\n\r\nfunction jie_mi(data: Uint8Array): Uint8Array {\r\n var nth = dataUser.Instance().nth;\r\n if (data.length <= nth) {\r\n return data;\r\n }\r\n\r\n var result = new Uint8Array(data.length);\r\n if (data.length <= 2 * nth) {\r\n result.set(data.subarray(nth));\r\n result.set(data.subarray(0, nth), data.length - nth);\r\n return result;\r\n }\r\n\r\n result.set(data.subarray(data.length - nth));\r\n result.set(data.subarray(nth, data.length - nth), nth);\r\n result.set(data.subarray(0, nth), data.length - nth);\r\n return result;\r\n}\r\n\r\nexport function Long_2_String(value: MyProto.Long): String {\r\n var bb = { bytes: new Uint8Array(64), offset: 0, limit: 0 };\r\n\r\n var bytes = new Uint8Array(10);\r\n let part0 = value.low >>> 0;\r\n let part1 = ((value.low >>> 28) | (value.high << 4)) >>> 0;\r\n let part2 = value.high >>> 24;\r\n\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n let size =\r\n part2 === 0 ?\r\n part1 === 0 ?\r\n part0 < 1 << 14 ?\r\n part0 < 1 << 7 ? 1 : 2 :\r\n part0 < 1 << 21 ? 3 : 4 :\r\n part1 < 1 << 14 ?\r\n part1 < 1 << 7 ? 5 : 6 :\r\n part1 < 1 << 21 ? 7 : 8 :\r\n part2 < 1 << 7 ? 9 : 10;\r\n\r\n switch (size) {\r\n case 10: bytes[9] = (part2 >>> 7) & 0x01;\r\n case 9: bytes[8] = size !== 9 ? part2 | 0x80 : part2 & 0x7F;\r\n case 8: bytes[7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;\r\n case 7: bytes[6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;\r\n case 6: bytes[5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;\r\n case 5: bytes[4] = size !== 5 ? part1 | 0x80 : part1 & 0x7F;\r\n case 4: bytes[3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;\r\n case 3: bytes[2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;\r\n case 2: bytes[1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;\r\n case 1: bytes[0] = size !== 1 ? part0 | 0x80 : part0 & 0x7F;\r\n }\r\n\r\n const decoder = new TextDecoder();\r\n // 使用TextDecoder的decode方法将Uint8Array转换为string\r\n return decoder.decode(bytes);\r\n}\r\n\r\nexport function pt_int32(v:number):number{\r\n if (v == undefined)\r\n return 0;\r\n return v;\r\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { Button } from \"cc\";\nimport { Component } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { AdGift, AdGiftProxy } from \"../proxy/AdGiftProxy\";\nimport { instantiate } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('RandomAdvertUI')\nexport default class RandomAdvertUI extends BasePanel {\n\n @property(Node) Layout_dec:Node = null;\n @property(Node) dec:Node = null;\n @property(Label) labelJump:Label = null;\n\n desPrefab:Node = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_get\") {\n AdGiftProxy.Inst.SendC1028();\n this.close(true)\n } else if (name == \"Button_junp\") {\n this.close(true)\n }\n }\n start() {\n\n this.addEvent();\n }\n\n private addEvent() {\n\n EventManager.Inst.on(EventType.UPDATE_FESTIVALTIME_UI, this, this.UpdateFestivalUI);\n }\n onShow(data: any): void {\n this.labelJump.string = GlobalFunction.GetMsg(10200);\n this.UpdateFestivalUI();\n }\n\n /**刷新界面 */\n UpdateFestivalUI(id:number = 1) {\n id = AdGiftProxy.Inst.rewardId;\n let ad:AdGift = AdGiftProxy.Inst.GetChufaInfoDataByID(id);\n if(ad){\n this.desPrefab = this.dec;\n this.Layout_dec.removeAllChildren();\n for (let i = 0; i < ad.ay_item.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.desPrefab);\n if (itemNode) {\n itemNode.parent = this.Layout_dec;\n let reward = ad.ay_item[i];\n let itemdata = ItemProxy.Inst.GetItemDataByID(reward);\n if (itemdata) {\n let Sprite_dec = itemNode.getChildByName(\"Sprite_dec\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_dec, itemdata.icon);\n let Label_dec = itemNode.getChildByName(\"Label_dec\").getComponent(Label);\n Label_dec.string = itemdata.lan_tips;\n }\n }\n }\n }\n\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n onJinbiClick(){\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, 1001, true);\n }\n onMofangClick(){\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, 1003, true);\n }\n\n onJuanClick(){\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, 1005, true);\n }\n\n onJinYanClick(){\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, 2001, true);\n }\n\n onZuanshiClick(){\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, 1007, true);\n }\n\n\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n // if(this.timeDayCallback){\n // this.unschedule(this.timeDayCallback);\n // }\n }\n clearRes() {\n }\n}\n","export class RandomUtil {\r\n /**\r\n * 创建一个随机数生成器\r\n */\r\n public constructor(seed: number) {\r\n this.seed = seed;\r\n if (!this.seed && this.seed != 0) {\r\n this.seed = new Date().getTime();\r\n }\r\n }\r\n /**\r\n * 设置用于随机数生成器的种子,如果不设置则实际是取当前时间毫秒数\r\n */\r\n public seed: number;\r\n /**\r\n * 返回一个随机数,在0.0~1.0之间\r\n */\r\n public get value(): number {\r\n return this.range(0, 1);\r\n }\r\n /**\r\n * 返回半径为1的圆内的一个随机点\r\n */\r\n public get insideUnitCircle() {\r\n var randomAngle: number = this.range(0, 360);\r\n var randomDis: number = this.range(0, 1);\r\n var randomX: number = randomDis * Math.cos(randomAngle * Math.PI / 180);\r\n var randomY: number = randomDis * Math.sin(randomAngle * Math.PI / 180);\r\n return [randomX, randomY];\r\n }\r\n /**\r\n * 返回半径为1的圆边的一个随机点\r\n */\r\n public get onUnitCircle() {\r\n var randomAngle: number = this.range(0, 360);\r\n var randomX: number = Math.cos(randomAngle * Math.PI / 180);\r\n var randomY: number = Math.sin(randomAngle * Math.PI / 180);\r\n return [randomX, randomY];\r\n }\r\n /**\r\n * 返回一个在min和max之间的随机浮点数\r\n */\r\n public range(min: number, max: number): number {\r\n if (!this.seed && this.seed != 0) {\r\n this.seed = new Date().getTime();\r\n }\r\n max = max || 1;\r\n min = min || 0;\r\n this.seed = (this.seed * 9301 + 49297) % 233280;\r\n var rnd = this.seed / 233280.0;\r\n return min + rnd * (max - min);\r\n }\r\n /**\r\n * 设置用于随机数生成器的种子,如果不设置则实际是取当前时间毫秒数\r\n */\r\n public static seed: number;\r\n /**\r\n * 返回一个随机数,在0.0~1.0之间\r\n */\r\n public static get value(): number {\r\n return this.range(0, 1);\r\n }\r\n /**\r\n * 返回半径为1的圆内的一个随机点\r\n */\r\n public static get insideUnitCircle() {\r\n var randomAngle: number = this.range(0, 360);\r\n var randomDis: number = this.range(0, 1);\r\n var randomX: number = randomDis * Math.cos(randomAngle * Math.PI / 180);\r\n var randomY: number = randomDis * Math.sin(randomAngle * Math.PI / 180);\r\n return [randomX, randomY];\r\n }\r\n /**\r\n * 返回半径为1的圆边的一个随机点\r\n */\r\n public static get onUnitCircle() {\r\n var randomAngle: number = this.range(0, 360);\r\n var randomX: number = Math.cos(randomAngle * Math.PI / 180);\r\n var randomY: number = Math.sin(randomAngle * Math.PI / 180);\r\n return [randomX, randomY];\r\n }\r\n /**\r\n * 返回一个在min和max之间的随机浮点数\r\n */\r\n public static range(min: number, max: number): number {\r\n if (!this.seed && this.seed != 0) {\r\n this.seed = new Date().getTime();\r\n }\r\n max = max || 1;\r\n min = min || 0;\r\n this.seed = (this.seed * 9301 + 49297) % 233280;\r\n var rnd = this.seed / 233280.0;\r\n return min + rnd * (max - min);\r\n }\r\n\r\n static probability(value: number) {\r\n return this.value < value;\r\n }\r\n}","import { _decorator, Component, Node } from 'cc';\r\nimport LocalStorage from '../LocalStorage';\r\n\r\ninterface RegisterInfo{\r\n user_id:string;\r\n passwd:string;\r\n}\r\n\r\nexport class RegisterData {\r\n public static get_register_data():RegisterInfo{\r\n var data = LocalStorage.getItem(\"reg_data\");\r\n var regInfo:RegisterInfo = JSON.parse(data);\r\n return regInfo;\r\n }\r\n\r\n public static get_user_id():string{\r\n var data = this.get_register_data();\r\n return data == null ? null:data.user_id;\r\n }\r\n\r\n public static get_passwd():string{\r\n var data = this.get_register_data();\r\n return data == null ? null:data.passwd;\r\n }\r\n\r\n public static save_register_data(user_id:string, passwd:string){\r\n var data = {\"user_id\":user_id, \"passwd\":passwd};\r\n LocalStorage.setItem(\"reg_data\", JSON.stringify(data));\r\n }\r\n\r\n}\r\n\r\n\r\n","// /**\r\n// * 资源遍历清理,效率还可以\r\n// * 1.加载时候不进行清理\r\n// * 3.白名单的不清理\r\n// */\r\n\r\nimport { _decorator, Component, assetManager, sys, SpriteFrame, NodePool, Asset, director, TextAsset, AudioClip, AudioSource } from 'cc';\r\nconst { ccclass, property } = _decorator;\r\n\r\nimport { GameManager } from \"../../modules/GameManager\";\r\nimport GameConst from \"../common/GameConst\";\r\nimport Utils from \"../utils/Utils\";\r\nimport { Logger } from '../../../core/common/log/Logger';\r\n\r\n@ccclass('ResClean')\r\nexport default class ResClean extends Component {\r\n private static _instance: ResClean\r\n releaseDelay: number = 10000//ms\r\n private whiteWinList = [\r\n ]\r\n private whitePrefab: { url: string, bundle: string }[] = [\r\n { url: 'prefabs/BusyLoading', bundle: \"resources\" },\r\n // { url: 'MsgHints', bundle: \"prefabs\" },\r\n // { url: 'game/equip/BagEquipItem', bundle: \"prefabs\" },\r\n // { url: 'game/equip/EquipItemCombine', bundle: \"prefabs\" },\r\n // { url: 'game/equip/EquipItem', bundle: \"prefabs\" },\r\n // { url: 'common/CoinPre', bundle: \"prefabs\" },\r\n // { url: 'common/GemPre', bundle: \"prefabs\" },\r\n // { url: 'common/PowerPre', bundle: \"prefabs\" },\r\n // { url: 'common/PowerExp', bundle: \"prefabs\" },\r\n // { url: 'common/WaterMelonPre', bundle: \"prefabs\" },\r\n // { url: 'common/BattleLoading', bundle: \"prefabs\" },\r\n // { url: 'game/GuildMgr', bundle: \"prefabs\" },\r\n // { url: 'bg_tiehua', bundle: \"prefabs\" },\r\n ]\r\n public static get ins() {\r\n return ResClean._instance\r\n }\r\n onLoad() {\r\n ResClean._instance = this\r\n if (sys.os == sys.OS.IOS)\r\n this.schedule(this.checkDelete.bind(this), 10)\r\n\r\n window['ResClean'] = this;\r\n }\r\n private checkDelete() {\r\n sys.garbageCollect()\r\n }\r\n\r\n //从白名单移除\r\n private removeFromWhiteList(name: string) {\r\n for (let i = 0; i < this.whiteWinList.length; i++) {\r\n if (this.whiteWinList[i] == name) {\r\n this.whiteWinList.splice(i, 1)\r\n break\r\n }\r\n }\r\n }\r\n\r\n //添加到白名单\r\n private addToWhiteList(name: string) {\r\n if (this.whiteWinList.indexOf(name) == -1)\r\n this.whiteWinList.push(name)\r\n }\r\n\r\n //----------------------------新的暴力释放 ------------------------------\r\n private visitAsset(asset, deps) {\r\n\r\n // Skip assets generated programmatically or by user (e.g. label texture)\r\n if (!asset._uuid) {\r\n if (asset instanceof SpriteFrame) {\r\n if (asset['_original']) { // 动态合图\r\n const texture = asset['_original']._texture;\r\n texture && this.visitAsset(texture, deps);\r\n } else {\r\n const texture = asset.texture;\r\n texture && this.visitAsset(texture, deps);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const key = asset._uuid\r\n if (key == 'bf5930a8-3781-4a87-8500-0aac2f1243b8') {\r\n // Logger.logView('check')\r\n }\r\n\r\n //deps[key] = true;\r\n deps.set(key, true)\r\n this.parseDepends(key, deps);\r\n }\r\n\r\n private parseDepends(key, deps) {\r\n deps.set(key, true)\r\n let depends = assetManager.dependUtil.getDeps(key);\r\n for (let i = 0, l = depends.length; i < l; i++) {\r\n var dependAsset = assetManager.assets.get(depends[i]);\r\n if (dependAsset) {\r\n //@ts-ignore\r\n let uuid = dependAsset._uuid;\r\n if (!deps.has(uuid)) {\r\n deps.set(uuid, true)\r\n this.parseDepends(uuid, deps);\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n private visitComponent(comp, deps) {\r\n var props = Object.getOwnPropertyNames(comp);\r\n for (let i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n if (propName === 'node' || propName === '__eventTargets') continue;\r\n var value = comp[propName];\r\n if (typeof value === 'object' && value) {\r\n if (value instanceof NodePool) {\r\n this.visitNodePool(value, deps);\r\n }\r\n else if (Array.isArray(value)) {\r\n\r\n for (let j = 0; j < value.length; j++) {\r\n let val = value[j];\r\n if (val instanceof Asset) {\r\n this.visitAsset(val, deps);\r\n }\r\n }\r\n\r\n }\r\n else if (!value.constructor || value.constructor === Object) {\r\n let keys = Object.getOwnPropertyNames(value);\r\n for (let j = 0; j < keys.length; j++) {\r\n let val = value[keys[j]];\r\n if (val instanceof Asset) {\r\n this.visitAsset(val, deps);\r\n }\r\n }\r\n }\r\n else if (value instanceof Asset) {\r\n this.visitAsset(value, deps);\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n private visitNode(node, deps) {\r\n if (!node.isValid) return;\r\n\r\n for (let i = 0; i < node._components.length; i++) {\r\n this.visitComponent(node._components[i], deps);\r\n }\r\n\r\n\r\n for (let i = 0; i < node._children.length; i++) {\r\n this.visitNode(node._children[i], deps);\r\n\r\n }\r\n }\r\n\r\n private visitNodePool(nodePool, excludeMap) {\r\n const pool = nodePool._pool as Array;\r\n for (let j = 0; j < pool.length; j++) {\r\n const node = pool[j];\r\n this.visitNode(node, excludeMap);\r\n }\r\n }\r\n\r\n // tryClean(prefabName) {\r\n // this.scheduleOnce(() => {\r\n // this.clean(false)\r\n // }, 0.02)\r\n // }\r\n\r\n clean(cleanAudio: boolean = false, force: boolean = false) {\r\n return;\r\n //加载中不清理\r\n for (const key in Utils.loadingCount) {\r\n const element = Utils.loadingCount[key];\r\n if (element > 0) {\r\n Logger.logView(\"加载中不清理:\"+ Utils.loadingCount)\r\n return;\r\n }\r\n }\r\n\r\n //战斗中不清理,资源有缓存,手动管理\r\n if (GameManager.Instance().fms.CurrentStateName == \"GameBattleState\") {\r\n if (!force) {\r\n Logger.logView(\"战斗中不清了资源\")\r\n return\r\n }\r\n }\r\n\r\n Logger.logView('清理')\r\n\r\n let startTime = performance.now()\r\n //排除内置资源\r\n let excludeMap: Map = new Map();\r\n // TODO 被启用了。还没找到替代方案\r\n // let effectAssets = assetManager.builtins.getBuiltin('effect') as any;\r\n // let material = assetManager.builtins.getBuiltin('material') as any;\r\n // effectAssets.forEach((asset, key) => {\r\n // excludeMap.set(asset._uuid, true)\r\n // })\r\n\r\n // material.forEach((asset, key) => {\r\n // excludeMap.set(asset._uuid, true)\r\n // })\r\n\r\n excludeMap.set(\"ea6b8f32-3b73-4540-b448-183552f2db1f\", true)\r\n excludeMap.set(\"b72fa47c-a938-4191-bfec-9a1b8a806783\", true)\r\n excludeMap.set(\"3d1260d2-13b0-4054-a0d5-36eabc6bba8b\", true)\r\n\r\n // 排除场景引用的资源\r\n const nodeList = director.getScene().children;\r\n for (let i = 0; i < nodeList.length; i++) {\r\n this.visitNode(nodeList[i], excludeMap);\r\n }\r\n //排除白名单\r\n // 白名单\r\n if (!force) {\r\n for (const key of this.whiteWinList) {\r\n let wininfo = GameConst.winPath[key];\r\n let url = wininfo.path + wininfo.name;\r\n // Logger.logView(url)\r\n let bundle = assetManager.getBundle(wininfo.bundle);\r\n if (bundle) {\r\n const asset = bundle.get(url)\r\n if (asset) {\r\n this.visitAsset(asset, excludeMap);\r\n }\r\n }\r\n }\r\n\r\n //白名单 预制体\r\n for (const key of this.whitePrefab) {\r\n let bundle = assetManager.getBundle(key.bundle);\r\n if (bundle) {\r\n const asset = bundle.get(key.url)\r\n if (asset) {\r\n this.visitAsset(asset, excludeMap);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //排除战斗缓存资源\r\n // Logger.logView(\"战斗缓存资源\", Utils.resCache)\r\n for (const bundlename in Utils.resCache) {\r\n var resobj = Utils.resCache[bundlename]\r\n let bundle = assetManager.getBundle(bundlename);\r\n if (bundle) {\r\n for (const url in resobj) {\r\n const asset = bundle.get(url)\r\n if (asset) {\r\n this.visitAsset(asset, excludeMap);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //总资源\r\n const releaseList = [];\r\n let all = assetManager.assets\r\n all.forEach((value, key) => {\r\n //@ts-ignore\r\n if (!excludeMap.has(value._uuid)) {\r\n //本游戏排除音效,配置资源\r\n if (value instanceof TextAsset) {\r\n\r\n } else if ((value instanceof AudioClip) && !cleanAudio) {\r\n\r\n } else if (value.nativeUrl.indexOf('.mp4') != -1) {\r\n\r\n } else {\r\n releaseList.push(value)\r\n }\r\n }\r\n })\r\n\r\n for (let i = 0; i < releaseList.length; i++) {\r\n const asset = releaseList[i];\r\n this.free(asset, excludeMap)\r\n\r\n }\r\n if (releaseList.length > 0) {\r\n\r\n }\r\n Logger.logView('释放资源耗时:', Math.ceil(performance.now() - startTime) + ' ms'+ '显存:'+ Utils.getTexGPUMemory().toFixed(2) + ' MB'+ '当前资源数量:'+ assetManager.assets.count)//\r\n\r\n if (sys.os == sys.OS.IOS)\r\n sys.garbageCollect()\r\n\r\n\r\n return true\r\n }\r\n\r\n private free(asset, excludeMap) {\r\n if (excludeMap.has(asset._uuid)) return\r\n assetManager.assets.remove(asset._uuid);\r\n var depends = assetManager.dependUtil.getDeps(asset._uuid);\r\n for (let i = 0, l = depends.length; i < l; i++) {\r\n var dependAsset = assetManager.assets.get(depends[i]);\r\n if (dependAsset) {\r\n this.free(dependAsset, excludeMap);\r\n }\r\n }\r\n // Logger.logView('资源释放',asset)\r\n asset.destroy();\r\n //@ts-ignore\r\n cc.assetManager.dependUtil.remove(asset._uuid)\r\n // cc.assetManager.dependUtil.remove(asset._uuid);\r\n }\r\n\r\n //清理视频\r\n // private cleanVideoRes() {\r\n // let all = cc.assetManager.assets\r\n // all.forEach((value, key) => {\r\n // if (value.nativeUrl.indexOf('.mp4') != -1) {\r\n // //@ts-ignore\r\n // cc.assetManager.assets.remove(value._uuid);\r\n // // Logger.logView('清理视频');\r\n // }\r\n // }\r\n // )\r\n // }\r\n\r\n cleanAudioRes() {\r\n let all = assetManager.assets\r\n all.forEach((value, key) => {\r\n if (value.nativeUrl.indexOf('.mp3') != -1) {\r\n //@ts-ignore\r\n //Logger.logView('音效', value)\r\n assetManager.assets.remove(value.uuid);\r\n }\r\n }\r\n )\r\n\r\n // TODO 被移除了\r\n // audioEngine.uncacheAll()\r\n }\r\n\r\n cleanAll() {\r\n let startTime = performance.now()\r\n this.clean(true, true)\r\n Logger.logView('释放资源耗时:', Math.ceil(performance.now() - startTime) + ' ms'+ '显存:'+ Utils.getTexGPUMemory().toFixed(2) + ' MB'+ '当前资源数量:'+ assetManager.assets.count)//\r\n }\r\n\r\n //获取依赖的资源\r\n private getDepRes(url: string, bundleName = 'resources') {\r\n let bundle = assetManager.getBundle(bundleName)\r\n let excludeMap: Map = new Map()\r\n const asset = bundle.get(url)\r\n if (asset) {\r\n this.visitAsset(asset, excludeMap);\r\n }\r\n return excludeMap\r\n }\r\n}","// import ResAutoRelease from \"./ResAutoRelease\"\n/**\n *资源使用接口 ,本游戏暂时只用resources bundle\n *chenbo\n */\n\nimport { _decorator, Asset, assetManager, Texture2D, Node, instantiate, warn, log } from 'cc';\nconst { ccclass, property } = _decorator;\n\nimport GameConst from \"../common/GameConst\";\nimport { Logger } from '../../../core/common/log/Logger';\nimport { AssetManager } from 'cc';\nimport { JsonAsset } from 'cc';\nimport { Sprite } from 'cc';\nimport { Prefab } from 'cc';\nimport { UiRole } from '../../role/UiRole';\nimport GameEntry from '../../modules/GameEntry';\nimport { Vec3 } from 'cc';\nimport { Vec2 } from 'cc';\n\n@ccclass('ResHelper')\nexport default class ResHelper {\n private static battleSpineList = {}\n public static loadingCount: number = 0\n /**\n * 实例化一个预制或者节点,为了保证资源被正确引用计数,请使用此接口代替cc.instantiate\n * @param prefab\n */\n static instantiate(prefab) {\n var node: Node = instantiate(prefab)\n // ResHelper.setAutoRelease(node, prefab)\n return node\n }\n /** 全局默认加载的资源包名 */\n static defaultBundleName: string = \"resources\";\n //游戏中的加载统一用这个\n static load(url: string, type: typeof Asset, callback: (err: Error, res: Asset) => void, delay: boolean = false, bundleName=\"resources\") {\n let bundle = assetManager.getBundle(bundleName)\n if (!bundle) {\n warn('未加载bundle', bundleName)\n return\n }\n if (bundle.get(url, type) && !delay) {\n callback(null, bundle.get(url, type))\n return\n }\n\n ResHelper.loadingCount++\n bundle.load(url, type, (error: Error, assets: Asset) => {\n ResHelper.loadingCount--\n if (error) {\n log(error)\n callback(error, null)\n return\n }\n\n callback && callback(null, assets)\n })\n }\n static loadAny(url: string, type: typeof Asset, callback: (err: Error, res: Asset) => void, bundleName=\"resources\") {\n let bundle = assetManager.getBundle(bundleName)\n if (!bundle) {\n warn('未加载bundle', bundleName)\n return\n }\n if (bundle.get(url, type)) {\n callback(null, bundle.get(url, type))\n return\n }\n\n ResHelper.loadingCount++\n bundle.load(url, type, (error: Error, assets: Asset) => {\n ResHelper.loadingCount--\n if (error) {\n log(error)\n callback(error, null)\n return\n }\n\n callback && callback(null, assets)\n })\n }\n static get(url: string, type: typeof Asset , bundleName=\"resources\"){\n let bundle = assetManager.getBundle(bundleName)\n if (!bundle) {\n warn('未加载bundle', bundleName)\n return\n }\n if (bundle.get(url, type)) {\n return bundle.get(url, type);\n }\n ResHelper.loadingCount++\n bundle.load(url, type, (error: Error, assets: Asset) => {\n ResHelper.loadingCount--\n if (error) {\n warn(error)\n return\n }\n Logger.logView(\"bundle中加载\"+url+\"完成,结果+\"+assets)\n return assets\n })\n }\n \n\n /**\n * 通过相对文件夹路径删除所有文件夹中资源\n * @param path 资源文件夹路径\n * @param bundleName 远程资源包名\n */\n static releaseDir(path: string, bundleName?: string) {\n if (bundleName == null) bundleName = this.defaultBundleName;\n\n var bundle: AssetManager.Bundle | null = assetManager.getBundle(bundleName);\n if (bundle) {\n var infos = bundle.getDirWithPath(path);\n if (infos) {\n infos.map((info) => {\n this.releasePrefabtDepsRecursively(info.uuid);\n });\n }\n if (path == \"\" && bundleName != \"resources\") {\n assetManager.removeBundle(bundle);\n }\n }\n }\n \n /** 释放预制依赖资源 */\n static releasePrefabtDepsRecursively(uuid: string) {\n var asset = assetManager.assets.get(uuid)!;\n assetManager.releaseAsset(asset);\n }\n static clean() {\n }\n static getTexGPUMemory() {\n let textureMem = 0;\n // let list=[]\n let assets = assetManager.assets\n assets.forEach((asset, key) => {\n if (asset && asset instanceof Texture2D) {\n // 显存估计量\n const bytes = asset.getPixelFormat() == Texture2D.PixelFormat.RGBA8888 ? 4 : 3;\n let total = (asset.width * asset.height * bytes)\n textureMem += total;\n }\n })\n return textureMem / (1024 * 1024);\n }\n /**\n * 从资源缓存中找到预制资源名并创建一个显示对象\n * @param path 资源路径\n */\n static createPrefabNode(path: string): Node {\n var p: Prefab = ResHelper.get(path, Prefab)! as Prefab;\n var n = instantiate(p);\n return n;\n }\n\n \n public static getGebulin(gebolinId:number=101 , parent:Node , pos:Vec3 = new Vec3(0,0,0),scale:Vec3 = new Vec3(0,0)):UiRole{\n let node = instantiate(GameEntry.Inst.mapView.uiRole);\n let view: UiRole = node.getComponent(UiRole);\n view.init(gebolinId);\n view.node.position = pos;\n view.node.scale = scale;\n parent.addChild(view.node);\n return view;\n }\n\n /**获得新的士兵显示展示界面 */\n public static getShowGebulin(gebolinId:number , parent:Node , pos:Vec3 = new Vec3(0,0,0),scale:Vec3 = new Vec3(0,0)):UiRole{\n let node = instantiate(GameEntry.Inst.mapView.uiRole);\n let view: UiRole = node.getComponent(UiRole);\n view.initShow(gebolinId);\n view.node.position = pos;\n view.node.scale = scale;\n parent.addChild(view.node);\n return view;\n }\n}\n","export default class RoadNode {\r\n private _px: number;//像素坐标x轴\r\n private _py: number;//像素坐标y轴\r\n private _cx: number;//世界坐标x轴\r\n private _cy: number;//世界坐标y轴\r\n private _dx: number;//直角坐标x轴\r\n private _dy: number;//直角坐标y轴\r\n private _value: number = 0;//节点的值\r\n private _f: number = 0; //路点的f值\r\n private _g: number = 0; //路点的g值\t\r\n private _h: number = 0; //路点的h值\r\n private _parent: RoadNode = null; //路点的父节点\r\n\r\n\r\n //-------------二堆叉存储结构-----------------\r\n private _treeParent: RoadNode = null; //二堆叉结构的父节点\r\n\r\n private _left: RoadNode = null; //二堆叉结构的左子节点\r\n\r\n private _right: RoadNode = null; //二堆叉结构的右子节点\r\n\r\n private _openTag: number = 0; //是否在开启列表标记\r\n\r\n private _closeTag: number = 0; //是否在关闭列表标记\r\n\r\n /**\r\n * 重置二叉堆存储信息\r\n */\r\n public resetTree() {\r\n this._treeParent = null;\r\n this._left = null;\r\n this._right = null;\r\n }\r\n\r\n public toString(): String {\r\n return \"路点像素坐标:(\" + this._px + \",\" + this._py + \"), \" +\r\n \"路点世界坐标:(\" + this._cx + \",\" + this._cy + \"), \" +\r\n \"路点平面直角坐标:(\" + this._dx + \",\" + this._dy + \")\";\r\n }\r\n\r\n public get px(): number {\r\n return this._px;\r\n }\r\n\r\n public set px(value: number) {\r\n this._px = value;\r\n }\r\n\r\n public get py(): number {\r\n return this._py;\r\n }\r\n\r\n public set py(value: number) {\r\n this._py = value;\r\n }\r\n\r\n public get cx(): number {\r\n return this._cx;\r\n }\r\n\r\n public set cx(value: number) {\r\n this._cx = value;\r\n }\r\n\r\n public get cy(): number {\r\n return this._cy;\r\n }\r\n\r\n public set cy(value: number) {\r\n this._cy = value;\r\n }\r\n\r\n public get dx(): number {\r\n return this._dx;\r\n }\r\n\r\n public set dx(value: number) {\r\n this._dx = value;\r\n }\r\n\r\n public get dy(): number {\r\n return this._dy;\r\n }\r\n\r\n public set dy(value: number) {\r\n this._dy = value;\r\n }\r\n\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(val: number) {\r\n this._value = val;\r\n }\r\n\r\n public get f(): number {\r\n return this._f;\r\n }\r\n\r\n public set f(value: number) {\r\n this._f = value;\r\n }\r\n\r\n public get g(): number {\r\n return this._g;\r\n }\r\n\r\n public set g(value: number) {\r\n this._g = value;\r\n }\r\n\r\n public get h(): number {\r\n return this._h;\r\n }\r\n\r\n public set h(value: number) {\r\n this._h = value;\r\n }\r\n\r\n public get parent(): RoadNode {\r\n return this._parent;\r\n }\r\n\r\n public set parent(value: RoadNode) {\r\n this._parent = value;\r\n }\r\n\r\n\r\n //-------------二堆叉存储结构-----------------\r\n\r\n /**\r\n * 二堆叉结构的父节点\r\n */\r\n public get treeParent(): RoadNode {\r\n return this._treeParent;\r\n }\r\n\r\n public set treeParent(value: RoadNode) {\r\n this._treeParent = value;\r\n }\r\n\r\n /**\r\n * 二堆叉结构的左子节点\r\n */\r\n public get left(): RoadNode {\r\n return this._left;\r\n }\r\n\r\n public set left(value: RoadNode) {\r\n this._left = value;\r\n }\r\n\r\n /**\r\n * 二堆叉结构的右子节点\r\n */\r\n public get right(): RoadNode {\r\n return this._right;\r\n }\r\n\r\n public set right(value: RoadNode) {\r\n this._right = value;\r\n }\r\n\r\n /**\r\n * 是否在开启列表标记\r\n */\r\n public get openTag(): number {\r\n return this._openTag;\r\n }\r\n\r\n public set openTag(value: number) {\r\n this._openTag = value;\r\n }\r\n\r\n /**\r\n * 是否在关闭列表标记\r\n */\r\n public get closeTag(): number {\r\n return this._closeTag;\r\n }\r\n\r\n public set closeTag(value: number) {\r\n this._closeTag = value;\r\n }\r\n}\r\n","/*\r\n * @Author: dgflash\r\n * @Date: 2021-08-09 16:43:23\r\n * @LastEditTime: 2021-08-09 18:32:54\r\n * @LastEditors: Please set LastEditors\r\n * @Description: 地形类型\r\n * @FilePath: \\Game\\assets\\script\\core\\libs\\map\\road\\RoadType.ts\r\n */\r\nexport enum RoadType {\r\n /** 标准路 */\r\n Road = 0,\r\n /** 障碍物 */\r\n Obstacle = 1,\r\n /** 班透明路 */\r\n RoadTransparent = 2,\r\n /** 隐藏点 */\r\n Hidden = 3\r\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { AllRoleTypeEnum, RoleTypeEnum, SkillEType } from \"../enum/Enum\";\r\nimport { Vec3 } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport Charactor, { CharactorDirection, CharactorState } from \"../map/charactor/Charactor\";\r\nimport { ICharactorClip } from \"../map/charactor/ICharactorClip\";\r\nimport { Color } from \"cc\";\r\nimport { EventTouch } from \"cc\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { RoleModleComp } from \"./RoleModle\";\r\nimport { GebolInAiEnum, GebolInAttTypeEnum, GebolinView } from \"./GebolinView\";\r\nimport { ISkillReport } from \"../skill/SkillEnum\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { BossView } from \"./BossView\";\r\nimport { Vec3Util } from \"../core/utils/Vec3Util\";\r\nimport { SkillIntervalComp } from \"../skill/SkillInterval\";\r\nimport { Node } from \"cc\";\r\nimport { sp } from \"cc\";\r\nimport { GebolinModle } from \"./GebolinModle\";\r\nimport { BossModle } from \"./BossModle\";\r\nimport { CollisionType, GameCollision2D } from \"../skill/GameCollision2D\";\r\nimport { SkillCasting } from \"../skill/SkillCasting\";\r\nimport { HeroView } from \"./HeroView\";\r\nimport { HeroModle } from \"./HeroModle\";\r\nimport { Model, ModelPoxy } from \"../modules/game/proxy/ModelPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { MapModelComp } from \"../map/MapModel\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { Buff } from \"../modules/game/proxy/BuffPoxy\";\r\nimport { send2client } from \"../core/WebSocket/WebSocketMgr\";\r\nimport { c1601, p_bat_army, p_bat_hero } from \"../proto/proto\";\r\nimport { SkillEffect } from \"../modules/game/proxy/SkillEffectProxy\";\r\nimport { tween } from \"cc\";\r\nimport { Pass, PassPoxy } from \"../modules/game/proxy/PassPoxy\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { assetManager } from \"cc\";\r\nimport { Prefab } from \"cc\";\r\nimport { MapItem } from \"../item/GoldItemComp\";\r\nimport { MapGoldEffViewComp } from \"../item/MapGoldEffViewComp\";\r\nimport { instantiate } from \"cc\";\r\nimport { UITransform } from \"cc\";\r\nimport WindowManager, { UILayer } from \"../core/manager/WindowManager\";\r\nimport { BuffItemViewComp } from \"../buff/BuffItemViewComp\";\r\nimport { BuffItem } from \"../buff/BuffItem\";\r\nimport { SoundManager } from \"../core/utils/SoundManager\";\r\nimport { SoundPoxy } from \"../modules/game/proxy/SoundPoxy\";\r\n\r\n\r\n\r\nconst { ccclass , property} = _decorator;\r\n@ccclass('BaseRole')\r\nexport class BaseRole extends GameCollision2D implements ICharactorClip{\r\n @property(Node)\r\n skeleton :Node = null;\r\n public modle!: RoleModleComp;\r\n @property(ProgressBar)\r\n hpPro : ProgressBar = null;\r\n @property(Label)\r\n Label_guaka : Label = null;\r\n @property(Prefab)\r\n mapGoldEff:Prefab = null;\r\n @property(Node)\r\n buffNode:Node = null;\r\n @property(Node)\r\n footBuffNode:Node = null;\r\n @property(Node)\r\n headBuffNode:Node = null;\r\n @property(Node)\r\n shadow:Node = null;\r\n \r\n private _gebolinMapType: GebolinMapType = GebolinMapType.PveBoss;\r\n public get gebolinMapType(): GebolinMapType {\r\n return this._gebolinMapType;\r\n }\r\n public set gebolinMapType(value: GebolinMapType) {\r\n this._gebolinMapType = value;\r\n }\r\n\r\n /** 施放技能事件 */\r\n onAttack: Function = null!;\r\n /** 受到攻击事件 */\r\n onHit: Function = null!;\r\n \r\n public charactor!: Charactor;\r\n\r\n private _isBoss: boolean = false;\r\n public get isBoss(): boolean {\r\n return this._isBoss;\r\n }\r\n public set isBoss(value: boolean) {\r\n this._isBoss = value;\r\n }\r\n\r\n /**id*/\r\n private _roleId: string = \"\";\r\n public get roleId(): string {\r\n return this._roleId;\r\n }\r\n public set roleId(value: string) {\r\n this._roleId = value;\r\n }\r\n /**是否死亡*/\r\n private _isDie: boolean = false;\r\n public get isDie(): boolean {\r\n return this._isDie;\r\n }\r\n public set isDie(value: boolean) {\r\n this._isDie = value;\r\n }\r\n /**技能*/\r\n private _skill: Skill;\r\n public get skill(): Skill {\r\n return this._skill;\r\n }\r\n public set skill(value: Skill) {\r\n this._skill = value;\r\n }\r\n /**name*/\r\n private _roleName: string = \"\";\r\n public get roleName(): string {\r\n return this._roleName;\r\n }\r\n public set roleName(value: string) {\r\n this._roleName = value;\r\n }\r\n /**速度*/\r\n private _speed: number = 200;\r\n public get speed(): number {\r\n return this._speed;\r\n }\r\n public set speed(value: number) {\r\n this._speed = value;\r\n }\r\n /**关系*/\r\n private _friendType: AllRoleTypeEnum = AllRoleTypeEnum.Friend;\r\n public get friendType(): AllRoleTypeEnum {\r\n return this._friendType;\r\n }\r\n public set friendType(value: AllRoleTypeEnum) {\r\n this._friendType = value;\r\n }\r\n /**阵营*/\r\n private _RoleType: RoleTypeEnum = RoleTypeEnum.GeBuLin;\r\n public get RoleType(): RoleTypeEnum {\r\n return this._RoleType;\r\n }\r\n public set RoleType(value: RoleTypeEnum) {\r\n this._RoleType = value;\r\n }\r\n /**近战远程*/\r\n private _gebolinAttType: GebolInAttTypeEnum = GebolInAttTypeEnum.Nil;\r\n public get gebolinAttType(): GebolInAttTypeEnum {\r\n return this._gebolinAttType;\r\n }\r\n public set gebolinAttType(value: GebolInAttTypeEnum) {\r\n this._gebolinAttType = value;\r\n }\r\n\r\n /**资源地址*/\r\n private _reSources: string = \"prefabs/Gebulin\";\r\n public get reSources(): string {\r\n return this._reSources;\r\n }\r\n public set reSources(value: string) {\r\n this._reSources = value;\r\n }\r\n /**spine地址*/\r\n private _spineRes: string = \"spine/c_s_goblin_archer\";\r\n public get spineRes(): string {\r\n return this._spineRes;\r\n }\r\n public set spineRes(value: string) {\r\n this._spineRes = value;\r\n }\r\n\r\n private _skillIn1: SkillIntervalComp;\r\n public get skillIn1(): SkillIntervalComp {\r\n return this._skillIn1;\r\n }\r\n public set skillIn1(value: SkillIntervalComp) {\r\n this._skillIn1 = value;\r\n }\r\n private _skillIn2: SkillIntervalComp;\r\n public get skillIn2(): SkillIntervalComp {\r\n return this._skillIn2;\r\n }\r\n public set skillIn2(value: SkillIntervalComp) {\r\n this._skillIn2 = value;\r\n }\r\n //sc:SkillCasting ,target: BaseRole | Vec3, skill: Skill\r\n private attackData:AttackData;\r\n private isOpen:boolean = false;\r\n isAttackOver:boolean = true;\r\n\r\n /**0=朝向左 1=朝向右*/\r\n private _fangxiang: number = 0;\r\n public get fangxiang(): number {\r\n return this._fangxiang;\r\n }\r\n public set fangxiang(value: number) {\r\n this._fangxiang = value;\r\n }\r\n \r\n\r\n rewardArr:Array = [];\r\n private addSpineEvnet:boolean = false;\r\n onLoad(): void {\r\n super.onLoad();\r\n }\r\n\r\n init(mapType:GebolinMapType = GebolinMapType.PveBoss){\r\n this.addComponent(Charactor);\r\n this.charactor = this.getComponent(Charactor);\r\n this.charactor.clip = this;\r\n this.charactor.sceneMap = GameEntry.Inst.mapView.nowScene;\r\n this.charactor.pos = this.node.position;\r\n this.charactor.updateZIndex();\r\n this.charactor.mapType = mapType;\r\n this.type = CollisionType.Role;\r\n this.isAttackOver = true;\r\n setTimeout(() => {\r\n this.spineEvent();\r\n }, 10);\r\n }\r\n private spineEvent(){\r\n this.addSpineEvnet = true;\r\n if(this.skeleton){\r\n this.skeleton.getComponent(sp.Skeleton).setEventListener((track , event:sp.spine.Event)=>{\r\n // Logger.logView(\"event name ==>\" + event.data.name);\r\n if(event.data.name == \"event_goblin_attack\"){\r\n if(this.attackData.sc.caster == this.attackData.sc.target){\r\n this.attackData.sc.target = this.attackData.target;\r\n }\r\n this.attackData.sc.onCasting();\r\n this.play(this.attackData.sc.srs);\r\n\r\n if(this.RoleType == RoleTypeEnum.Monster){\r\n let index:number = this.attackData.skill.SkillModel.table.ay_effects.indexOf(\"20001\")\r\n if(index >= 0){\r\n this.showJituiEff();\r\n }\r\n EventManager.Inst.event(EventType.SHOW_SKILL_ACTION);\r\n }\r\n }\r\n })\r\n this.skeleton.getComponent(sp.Skeleton)!.setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case \"goblin_dead\":\r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n if(this.RoleType == RoleTypeEnum.Monster){\r\n this.changeNewBoss();\r\n }\r\n }\r\n this.desTory();\r\n break;\r\n case \"goblin_behit\":\r\n this.goblin_wait();\r\n break;\r\n case \"goblin_attack\":\r\n this.goblin_wait();\r\n this.isAttackOver = true;\r\n if(this.attackData.target instanceof BaseRole){\r\n if(this.attackData.skill.SkillModel.table.isNomAttack){\r\n if(this.attackData.target.RoleType == RoleTypeEnum.GeBuLin){\r\n this.attackData.target.showHit(this.attackData.skill);\r\n }else if(this.attackData.sc.caster.RoleType == RoleTypeEnum.GeBuLin){\r\n if(this.attackData.sc.caster.gebolinAttType == GebolInAttTypeEnum.JinZhan){\r\n this.attackData.target.showHit(this.attackData.skill);\r\n }\r\n }else if(this.attackData.sc.caster.RoleType == RoleTypeEnum.Hero){\r\n if(this.attackData.skill.SkillModel.table.bulletmodel == \"\" || this.attackData.skill.SkillModel.table.bulletmodel == null){\r\n this.attackData.target.showHit(this.attackData.skill);\r\n }\r\n }\r\n }else{\r\n /**无弹道技能攻击在这里会当做普通攻击特殊处理*/\r\n if(this.RoleType == RoleTypeEnum.Monster){\r\n }\r\n if(this.RoleType == RoleTypeEnum.Hero){\r\n if(this.attackData.skill.SkillModel.table.bulletmodel == \"\" || this.attackData.skill.SkillModel.table.bulletmodel == null){\r\n this.attackData.target.showHit(this.attackData.skill);\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n showJituiEff(){\r\n\r\n }\r\n setDirection(value: CharactorDirection): void {\r\n }\r\n setAlpha(value: number): void {\r\n }\r\n\r\n setPos(value: Vec3): void {\r\n this.node.position = value;\r\n }\r\n checkTouch(event: EventTouch): boolean {\r\n return false;\r\n }\r\n setState(value: CharactorState): void {\r\n switch (value) {\r\n case CharactorState.Idle:\r\n this.goblin_wait();\r\n break;\r\n case CharactorState.Run:\r\n this.goblin_walk();\r\n break;\r\n }\r\n }\r\n\r\n moveTo(point:Vec3){\r\n\r\n }\r\n\r\n playAni(aniName:string){\r\n\r\n }\r\n\r\n changeSkin(lib:GebolInAiEnum){\r\n \r\n }\r\n async showHit(skill:Skill){\r\n \r\n }\r\n showUpdata(skillIn:SkillIntervalComp , isNomAtt=true){\r\n if(isNomAtt){\r\n this.skillIn1 = skillIn;\r\n }else{\r\n this.skillIn2 = skillIn;\r\n }\r\n }\r\n update(dt){\r\n if(this.modle){\r\n this.modle.updateChangBuff();\r\n }\r\n }\r\n /** 受击动作 */\r\n goblin_Hit() {\r\n if(this.isDie){\r\n return;\r\n }\r\n if(this.isAttackOver){\r\n if(this && this.node && this.skeleton && this.skeleton.getComponent(sp.Skeleton)){\r\n this.skeleton.getComponent(sp.Skeleton)!.setAnimation(0 , \"goblin_behit\" , true)\r\n }\r\n }\r\n }\r\n /** 待机动作 */\r\n goblin_wait() {\r\n if(this.isDie){\r\n return;\r\n }\r\n\r\n if(this.skeleton && this.skeleton.getComponent(sp.Skeleton) && this.skeleton.getComponent(sp.Skeleton).skeletonData){\r\n if(this.skeleton.getComponent(sp.Skeleton).findAnimation(\"goblin_wait\")){\r\n this.skeleton.getComponent(sp.Skeleton).setAnimation(0 , \"goblin_wait\" , true)\r\n }else{\r\n console.log(\"not find\")\r\n }\r\n }else{\r\n Logger.logNet(\"err forme goblin_wait : \" + this.skeleton.getComponent(sp.Skeleton) + \"----\" + this.skeleton.getComponent(sp.Skeleton).skeletonData)\r\n }\r\n }\r\n /** 攻击动作 */\r\n goblin_attack(sc:SkillCasting ,target: BaseRole | Vec3, skill: Skill) {\r\n if(this.isDie){\r\n return;\r\n }\r\n this.attackData = new AttackData();\r\n this.attackData.sc = sc;\r\n this.attackData.target = target;\r\n this.attackData.skill = skill;\r\n let track = this.skeleton.getComponent(sp.Skeleton).setAnimation(0 , \"goblin_attack\" , false);\r\n }\r\n /** 死亡动作 */\r\n goblin_dead() {\r\n if(this.isDie){\r\n return;\r\n }\r\n this.skeleton.getComponent(sp.Skeleton)!.setAnimation(0 , \"goblin_dead\" , false)\r\n this.die();\r\n }\r\n /**移动*/\r\n goblin_walk(){\r\n if(this.isDie){\r\n return;\r\n }\r\n this.skeleton.getComponent(sp.Skeleton)!.setAnimation(0 , \"goblin_walk\" , true)\r\n }\r\n /**释放技能*/\r\n goblin_skill(){\r\n if(this.isDie){\r\n return;\r\n }\r\n this.skeleton.getComponent(sp.Skeleton)!.setAnimation(0 , \"goblin_skill\" , true)\r\n }\r\n /** 开始播放技能动画 */\r\n play(isrs: ISkillReport[]) {\r\n // 单次攻击逻辑,多次连击类技能自行扩展解析战报逻辑\r\n while (isrs.length > 0) {\r\n let isr = isrs.shift();\r\n // 技能动画配置中有自定义技能动画则选用,否则使用默认技能动画\r\n let animator = isr.skill.SkillModel.animator;\r\n animator.isr = isr;\r\n animator.casting();\r\n\r\n if(isr.skill.SkillModel.casting.caster.RoleType == RoleTypeEnum.Hero){\r\n if(!isr.skill.SkillModel.table.isNomAttack){\r\n SoundManager.getInstance().playEffectMusic(SoundPoxy.Inst.getGuideById(isr.skill.SkillModel.table.atkSound).name);\r\n }\r\n }\r\n if(isr.skill.SkillModel.casting.caster.RoleType == RoleTypeEnum.Monster){\r\n SoundManager.getInstance().playEffectMusic(SoundPoxy.Inst.getGuideById(isr.skill.SkillModel.table.atkSound).name);\r\n }\r\n\r\n\r\n\r\n }\r\n }\r\n showHP(hp:number , max:number){\r\n \r\n }\r\n die(){\r\n GameEntry.Inst.mapView.gebolinMap.forEach((gebolin,key)=>{\r\n if(this.gebolinMapType ==gebolin.gebolinMapType && gebolin.AiType == GebolInAiEnum.Fight){\r\n GameModleComp.getInstance().overGebolinNum++;\r\n }\r\n })\r\n this.clearBuff();\r\n this.isDie = true;\r\n if(this.gebolinMapType == GebolinMapType.PveBoss){\r\n if(this.RoleType == RoleTypeEnum.Monster){\r\n var c1601: c1601 = {\r\n passId:GameModleComp.getInstance().selectGuankaId,\r\n monsterId:(this.modle as BossModle).monster.id,\r\n isKill:1,\r\n heroMy:[],//this.getMyHero(GebolinMapType.PveBoss),\r\n armyMy:[],//this.getMyGebolin(GebolinMapType.PveBoss),\r\n bossTar: [],//GameEntry.Inst.mapView.nowBoss.p_bat_boss],\r\n startTime: 0,//new Date().getDate(),\r\n inArmyNum: 0,//GameModleComp.getInstance().nowGebolinNum, \r\n newArmyNum: 0,//GameModleComp.getInstance().newGebolinNum, \r\n outArmyNUm: 0,//GameModleComp.getInstance().overGebolinNum, \r\n deadArmyNum: 0//GameModleComp.getInstance().dieGebolinNum, \r\n };\r\n send2client(\"c1601\",c1601);\r\n GameModleComp.getInstance().heroFight = []; \r\n GameModleComp.getInstance().dieGebolin = []; \r\n GameModleComp.getInstance().newGebolinNum = 0;\r\n GameModleComp.getInstance().nowGebolinNum = 0;\r\n GameModleComp.getInstance().overGebolinNum = 0;\r\n GameModleComp.getInstance().dieGebolinNum = 0;\r\n GameEntry.Inst.mapView.gebolinMap.forEach((key,value)=>{\r\n key.p_bat_army = {};\r\n })\r\n this.showBossReward();\r\n }\r\n if(this.RoleType == RoleTypeEnum.Hero){\r\n GameModleComp.getInstance().fuhuoMap.set((this.modle as HeroModle).hero.id , GameModleComp.getInstance().fuhuoTime);\r\n }\r\n }else if(this.gebolinMapType == GebolinMapType.PveCopy){\r\n if(this.RoleType == RoleTypeEnum.Monster){\r\n //TODO : 我需要在这里给服务器发送副本BOSS战斗结束 需要数据 战斗击杀血量,副本ID,副本登记,monsterID \r\n setTimeout(() => {\r\n EventManager.Inst.event(EventType.COPY_MONSTER_DEAD);\r\n }, 2500);\r\n }\r\n }\r\n }\r\n getMyGebolin(type:GebolinMapType):Array{\r\n let armyArr:Array = [];\r\n GameEntry.Inst.mapView.gebolinMap.forEach((gebolin, key) => {\r\n if(gebolin.gebolinMapType == type){\r\n if(gebolin.p_bat_army.armyType){\r\n armyArr.push(gebolin.p_bat_army);\r\n }\r\n }\r\n });\r\n for(let i = 0 ; i < GameModleComp.getInstance().dieGebolin.length ; i++){\r\n if(GameModleComp.getInstance().dieGebolin[i].armyType){\r\n armyArr.push(GameModleComp.getInstance().dieGebolin[i]);\r\n }\r\n }\r\n return armyArr;\r\n }\r\n getMyHero(type:GebolinMapType):Array{\r\n if(type == GebolinMapType.PveBoss){\r\n return GameModleComp.getInstance().heroFight;\r\n }else if(type == GebolinMapType.PveCopy){\r\n return GameModleComp.getInstance().copyHeroFight;\r\n }\r\n return [];\r\n }\r\n private showBossReward(){\r\n let num:number;\r\n for(let i = 0 ; i < this.rewardArr.length ; i++){\r\n if(this.rewardArr[i].id == 1001){\r\n num = this.rewardArr[i].num;\r\n }\r\n }\r\n let max:number = Math.ceil(num/100);\r\n if(max > 20){\r\n max = 20;\r\n }\r\n for(let i = 0 ; i < max; i++){\r\n let eff:MapGoldEffViewComp = instantiate(this.mapGoldEff).getComponent(MapGoldEffViewComp);\r\n let _x:number = Math.random()*100 - 50;\r\n let _y:number = Math.random()*20-10;\r\n\r\n let layer = WindowManager.Instance().getLayer(UILayer.地图特效);\r\n\r\n /**角色对象的局部坐标*/\r\n let posV3:Vec3 = this.node.position;\r\n /**角色对象的map摄像机下本地坐标转世界坐标 */\r\n let wordPoint:Vec3 = GameEntry.Inst.mapView.nowScene.heroLayer.getComponent(UITransform).convertToWorldSpaceAR(posV3);\r\n /**世界坐标转屏幕坐标*/\r\n let screenPoint:Vec3 = GameEntry.Inst.mapView.nowScene.mapCamera.worldToScreen(wordPoint);\r\n /**世界坐标转屏幕坐标*/\r\n let uiWordPoint:Vec3 = GameEntry.Inst.mainCamera.screenToWorld(screenPoint);\r\n /**屏幕坐标转局部坐标*/\r\n let addPoint:Vec3 = layer.getComponent(UITransform).convertToNodeSpaceAR(uiWordPoint);\r\n /***偏移量*/\r\n let effPos:Vec3 = new Vec3(addPoint.x + _x ,addPoint.y + _y , 1);\r\n eff.node.position = effPos;\r\n layer.addChild(eff.node);\r\n\r\n\r\n let targetPoint:Vec3 = MapModelComp.getInstance().goldPosInUi;\r\n\r\n eff.playAni();\r\n setTimeout(() => {\r\n tween(eff.node).to(1.5,{position : targetPoint , scale:new Vec3(0.4,0.4,1)}).call(()=>{\r\n eff.reset();\r\n }).start();\r\n }, 400);\r\n }\r\n }\r\n /**\r\n * 攻击目标动作\r\n * @param target 攻击\r\n */\r\n attack(sc:SkillCasting ,target: BaseRole | Vec3, skill: Skill) {\r\n this.isAttackOver = false;\r\n }\r\n changeNewBoss(){\r\n if(GameModleComp.getInstance().isKillBossFail){\r\n MapModelComp.getInstance().mapMonsterIndex++;\r\n if(MapModelComp.getInstance().mapMonsterIndex >= 4){\r\n MapModelComp.getInstance().mapMonsterIndex = 0;\r\n }\r\n GameEntry.Inst.mapView.loadBoss();\r\n }else{\r\n MapModelComp.getInstance().mapMonsterIndex++;\r\n for(let i = 1 ; i < 4 ; i++){\r\n let changePass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId+i)\r\n if(changePass.jumpmap){\r\n let map:Maps = MapPoxy.Inst.getMapById(changePass.mapId);\r\n let b = assetManager.getBundle(\"mapRes\");\r\n if(map.mapSource != GameModleComp.getInstance().loadResource){\r\n map.mapSource = GameModleComp.getInstance().loadResource\r\n b.loadDir(\"map/\"+map.mapSource, (err, assets)=> {\r\n Logger.logView(\"切换地图 map/\"+map.mapSource + \"初始化完成\");\r\n });\r\n }\r\n }\r\n }\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n if(Number(pass.jumpmap) == 1 && this.isBoss){\r\n GameModleComp.getInstance().showNewGuanqia();\r\n }else{\r\n if(MapModelComp.getInstance().mapMonsterIndex==4){\r\n EventManager.Inst.event(EventType.BOSS_IN_MAP);\r\n setTimeout(() => {\r\n GameEntry.Inst.mapView.loadBoss();\r\n GameEntry.Inst.mapView.changeNewBuild();\r\n EventManager.Inst.event(EventType.TO_KILL_BOSS_UI);\r\n }, GameModleComp.getInstance().bossInTime);\r\n }else{\r\n if(MapModelComp.getInstance().mapMonsterIndex > 4){\r\n MapModelComp.getInstance().getMapList();\r\n MapModelComp.getInstance().mapMonsterIndex=0;\r\n }\r\n GameEntry.Inst.mapView.loadBoss();\r\n GameEntry.Inst.mapView.changeNewBuild();\r\n EventManager.Inst.event(EventType.KILL_MONSTER_OK_UI);\r\n }\r\n }\r\n }\r\n }\r\n private myBuffMap:Map = new Map();\r\n\r\n /**buff状态添加 */\r\n onBuffAdd(buff:BuffItem){\r\n let buffView:BuffItemViewComp = instantiate(GameEntry.Inst.mapView.buffItem).getComponent(BuffItemViewComp);\r\n buffView.init(buff);\r\n if(buff.type == SkillEType.BingDong){\r\n this.footBuffNode.addChild(buffView.node);\r\n }else if(buff.type == SkillEType.XuanYun){\r\n this.headBuffNode.addChild(buffView.node);\r\n }else{\r\n this.buffNode.addChild(buffView.node);\r\n }\r\n this.myBuffMap.set(buff.type , buffView);\r\n }\r\n /**buff状态改变 需要在这里修改展示*/\r\n onBuffChange(removeTypeArr:Array){\r\n for(let i = 0 ; i < removeTypeArr.length ; i++){\r\n let buffView:BuffItemViewComp = this.myBuffMap.get(removeTypeArr[i]);\r\n if(buffView){\r\n buffView.desTory();\r\n this.myBuffMap.delete(removeTypeArr[i])\r\n }\r\n }\r\n }\r\n /**效果击退*/\r\n showJiTui(skillEff:SkillEffect){\r\n\r\n }\r\n\r\n clearBuff(){\r\n this.myBuffMap.forEach(p => {\r\n if(p){\r\n p.desTory();\r\n }\r\n });\r\n this.myBuffMap = new Map();\r\n }\r\n desTory(){\r\n this.isAttackOver = true;\r\n if(this.node&&this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n this.node.destroy();\r\n }\r\n}\r\n\r\nexport class AttackData{\r\n sc : SkillCasting\r\n target : BaseRole | Vec3\r\n skill : Skill\r\n}\r\nexport enum GebolinMapType{\r\n Nil,\r\n /**关卡场景*/\r\n PveBoss,\r\n /**对战副本*/\r\n PvP,\r\n /**pve副本*/\r\n PveCopy,\r\n /**洞穴副本*/\r\n PveCave,\r\n EndValue\r\n}","import { Logger } from \"../../core/common/log/Logger\";\r\nimport { DataProxy } from \"../AutoStorages/DataProxy\";\r\nimport { BuffItem } from \"../buff/BuffItem\";\r\nimport { AttType, RoleTypeEnum, SkillEType } from \"../enum/Enum\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { Buff } from \"../modules/game/proxy/BuffPoxy\";\r\nimport { SkillEffect, SkillEffectProxy } from \"../modules/game/proxy/SkillEffectProxy\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { p_bat_army, p_bat_boss, p_bat_hero } from \"../proto/proto\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { BaseRole, GebolinMapType } from \"../role/Role\";\r\nimport { RolePierceDamage } from \"./RolePierceDamage\";\r\nimport { Skill } from \"./Skill\";\r\nimport { SkillCfgRecord } from \"./SkillEnum\";\r\nimport { DamageType, EffectDamage } from \"./SkillInterface\";\r\n\r\n/** 角色攻击流程计算 */\r\nexport class RoleAttack {\r\n /** 普通攻击伤害计算\r\n * @param type 是否是普通攻击\r\n */\r\n static normal(caster: BaseRole, target: BaseRole, skill: Skill, parms?: SkillCfgRecord, type: number = 0): EffectDamage {\r\n if(!target){\r\n return;\r\n }\r\n if(!target.modle){\r\n return;\r\n }\r\n if(!target.modle.skills){\r\n return;\r\n }\r\n target.modle.skills.forEach((skill: Skill) => {\r\n if (skill && skill.SkillModel) {\r\n let sc = skill.SkillModel.casting;\r\n sc.caster = target;\r\n sc.target = target;\r\n sc.skill = skill;\r\n sc.onHits();\r\n }\r\n });\r\n let effect = new EffectDamage();\r\n let targetModel = target.modle;\r\n /**是否命中*/\r\n let isHit: boolean = false;\r\n if(!this.getIsHit){\r\n Logger.logView(\"can't found getIsHit function\")\r\n }\r\n isHit = this.getIsHit(caster , target);\r\n // Logger.logView(caster, \"当前是否命中:\" + isHit);\r\n if (!isHit) {\r\n effect.hp = targetModel.attributes.get(AttType.hpValue).value;\r\n effect.hpMax = targetModel.attributes.get(AttType.HpMax).value;\r\n effect.damageType = DamageType.Block;\r\n return effect;\r\n }\r\n let baseDamage: number = RolePierceDamage.getBaseDamage(caster, target, parms);\r\n // Logger.logView(caster, \"当前基础伤害:\" + baseDamage);\r\n let isCrit: boolean = false;\r\n if (type == 0) {\r\n isCrit = RoleAttack.getIsCrit(caster , target);\r\n /**是否暴击*/\r\n if (isCrit) {\r\n effect.damageType = DamageType.Critical;\r\n let bsAdd:number = caster.modle.attributes.get(AttType.baoJiHurtRateAdd).value/GameModleComp.getInstance().maxValue;\r\n let nBs:number = caster.modle.attributes.get(AttType.baoJiHurtRate).value/GameModleComp.getInstance().maxValue;\r\n let bs:number = nBs*(1+bsAdd);\r\n baseDamage = baseDamage*bs;\r\n // Logger.logView(caster, \"当前攻击暴击伤害:\" + baseDamage);\r\n }\r\n if (parms) {\r\n if (parms.fixedge) {\r\n baseDamage += parms.fixedge;\r\n }\r\n }\r\n effect.iskill = 0;\r\n }else if(type==1){\r\n effect.iskill = 1;\r\n let arr:Array = skill.SkillModel.table.ay_effects;\r\n for(let i = 0 ; i < arr.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(arr[i]));\r\n if(temp.eType == SkillEType.ShangHai){\r\n let value:number = temp.value/GameModleComp.getInstance().maxValue;\r\n baseDamage = baseDamage*value\r\n }\r\n if(temp.eType == SkillEType.XuanYun){\r\n let buff:BuffItem = new BuffItem(target , temp);\r\n target.modle.addBuff(buff);\r\n }\r\n if(temp.eType == SkillEType.BingDong){\r\n let buff:BuffItem = new BuffItem(target , temp);\r\n target.modle.addBuff(buff);\r\n }\r\n if(temp.eType == SkillEType.GongSuJia){\r\n let buff:BuffItem = new BuffItem(target , temp);\r\n target.modle.addBuff(buff);\r\n }\r\n if(temp.eType == SkillEType.GongSuJian){\r\n let buff:BuffItem = new BuffItem(target , temp);\r\n target.modle.addBuff(buff);\r\n }\r\n if(temp.eType == SkillEType.BaoJiJia){\r\n let buff:BuffItem = new BuffItem(target , temp);\r\n target.modle.addBuff(buff);\r\n }\r\n if(temp.eType == SkillEType.BaoShangJia){\r\n let buff:BuffItem = new BuffItem(target , temp);\r\n target.modle.addBuff(buff);\r\n }\r\n if(temp.eType == SkillEType.JiTui){\r\n target.showJiTui(temp);\r\n }\r\n }\r\n let shangjia:number = caster.modle.attributes.get(AttType.skillHurtRate).value/GameModleComp.getInstance().maxValue;\r\n baseDamage = baseDamage + baseDamage*(shangjia/GameModleComp.getInstance().maxValue);\r\n }\r\n let cbd = Math.ceil(baseDamage);\r\n if (cbd <= 0) {\r\n cbd = 1;\r\n }\r\n\r\n effect.value = Number(cbd) * -1;\r\n effect.isnormal = type;\r\n\r\n caster.modle.skills.forEach((sk) => {\r\n if (sk && sk.SkillModel) {\r\n sk.SkillModel.casting.caster = caster;\r\n sk.SkillModel.casting.target = target;\r\n sk.SkillModel.casting.onDamage(effect.value);\r\n }\r\n })\r\n\r\n if(caster.RoleType == RoleTypeEnum.GeBuLin){\r\n let data:p_bat_army = (caster as GebolinView).p_bat_army;\r\n if(isCrit){\r\n if(data.hurtBj){\r\n if(cbd > data.hurtBj){\r\n data.hurtBj = cbd;\r\n }\r\n }else{\r\n data.hurtBj = cbd;\r\n }\r\n data.bjNum = data.bjNum?data.bjNum+1:1;\r\n }else{\r\n if(data.hurt){\r\n if(cbd > data.hurt){\r\n data.hurt = cbd;\r\n }\r\n }else{\r\n data.hurt = cbd;\r\n }\r\n if(isHit){\r\n data.atkNum = data.atkNum ? data.atkNum+1 : 1;\r\n }\r\n }\r\n data.allNum = data.allNum ? data.allNum +1 : 1;\r\n data.hurtAll= data.hurtAll ? data.hurtAll+cbd : cbd;\r\n let behit:number = (target as BossView).p_bat_boss.beHurtAll;\r\n (target as BossView).p_bat_boss.beHurtAll = behit ? behit + cbd : cbd;\r\n }else if(caster.RoleType == RoleTypeEnum.Hero){\r\n let heroView:HeroView = caster as HeroView;\r\n let hero:p_bat_hero = null;\r\n let fightList:Array = caster.gebolinMapType == GebolinMapType.PveBoss ? GameModleComp.getInstance().heroFight : GameModleComp.getInstance().copyHeroFight;\r\n for(let i = 0 ; i < fightList.length ; i++){\r\n if(fightList[i].heroUID == heroView.pId){\r\n hero = fightList[i];\r\n }\r\n }\r\n if(!hero){\r\n hero = {};\r\n if(caster.gebolinMapType == GebolinMapType.PveBoss){\r\n GameModleComp.getInstance().heroFight.push(hero);\r\n }else{\r\n GameModleComp.getInstance().copyHeroFight.push(hero);\r\n }\r\n }\r\n hero.heroUID = heroView.pId;\r\n if(type==0){\r\n if(isCrit){\r\n if(hero.hurtBj){\r\n if(cbd > hero.hurtBj){\r\n hero.hurtBj = cbd;\r\n }\r\n }else{\r\n hero.hurtBj = cbd;\r\n }\r\n if(isHit){\r\n hero.bjNum = hero.bjNum ? hero.bjNum+1 : 1;\r\n }\r\n }else{\r\n if(hero.hurt){\r\n if(cbd > hero.hurt){\r\n hero.hurt = cbd;\r\n }\r\n }else{\r\n hero.hurt = cbd;\r\n }\r\n if(isHit){\r\n hero.atkNum = hero.atkNum ? hero.atkNum+1 : 1;\r\n }\r\n }\r\n hero.allNum = hero.allNum ? hero.allNum+1 : 1;\r\n hero.hurtAll = hero.hurtAll ? hero.hurtAll+cbd : cbd;\r\n }else{\r\n if(hero.hurtSkill){\r\n if(cbd > hero.hurtSkill){\r\n hero.hurtSkill = cbd;\r\n }\r\n }else{\r\n hero.hurtSkill = cbd;\r\n }\r\n hero.hurtBjSkill = 0;\r\n hero.skillNum = hero.skillNum ? hero.skillNum+1 : 1;\r\n hero.skillBjNum=0;\r\n hero.skillNumAll = hero.skillNumAll ? hero.skillNumAll+1 : 1;\r\n hero.skillHurtAll = hero.skillHurtAll ? hero.skillHurtAll+cbd : cbd;\r\n hero.allNum = hero.allNum ? hero.allNum+1 : 1;\r\n }\r\n if(target instanceof (BossView)){\r\n target.p_bat_boss.beHurtAll = target.p_bat_boss.beHurtAll ? target.p_bat_boss.beHurtAll + cbd : cbd;\r\n }\r\n }else if(caster.RoleType == RoleTypeEnum.Monster){\r\n let data:p_bat_boss = GameEntry.Inst.mapView.nowBoss.p_bat_boss;\r\n if(data.hurtSkill){\r\n if(cbd > data.hurtSkill){\r\n data.hurtSkill = cbd;\r\n }else{\r\n data.hurtSkill = cbd;\r\n }\r\n }\r\n data.hurtBjSkill = 0;\r\n if(isHit){\r\n data.skillNum = data.skillNum ? data.skillNum+1 : 1;\r\n }\r\n data.skillBjNum = 0;\r\n data.skillNumAll = data.skillNumAll ? data.skillNumAll+1 : 1;\r\n data.skillHurtAll = data.skillHurtAll ? data.skillHurtAll + cbd : cbd;\r\n\r\n if(target instanceof (GebolinView)){\r\n target.p_bat_army.beHurtAll = target.p_bat_army.beHurtAll ? target.p_bat_army.beHurtAll + cbd : cbd;\r\n }\r\n if(target instanceof (HeroView)){\r\n let heroView:HeroView = target;\r\n let hero:p_bat_hero = null;\r\n let fightList:Array = caster.gebolinMapType == GebolinMapType.PveBoss ? GameModleComp.getInstance().heroFight : GameModleComp.getInstance().copyHeroFight;\r\n for(let i = 0 ; i < fightList.length ; i++){\r\n if(fightList[i].heroUID == heroView.pId){\r\n hero = fightList[i];\r\n }\r\n }\r\n if(!hero){\r\n hero = {};\r\n if(caster.gebolinMapType == GebolinMapType.PveBoss){\r\n GameModleComp.getInstance().heroFight.push(hero);\r\n }else{\r\n GameModleComp.getInstance().copyHeroFight.push(hero);\r\n }\r\n }\r\n hero.heroUID = heroView.pId;\r\n hero.beHurtAll = hero.beHurtAll ? hero.beHurtAll + cbd : cbd;\r\n }\r\n }\r\n\r\n return effect;\r\n }\r\n /**获取是否暴击*/\r\n private static getIsCrit(caster: BaseRole , target:BaseRole): boolean {\r\n let nCb:number = caster.modle.attributes.get(AttType.baoJiRate).value;\r\n let aCb:number = caster.modle.attributes.get(AttType.baoJiRateAdd).value\r\n let cB:number = nCb*(1+aCb/GameModleComp.getInstance().maxValue);\r\n let tK:number = target.modle.attributes.get(AttType.deBaoJiRate).value;\r\n if(cB >= tK){\r\n let mathNum: number = Math.random()*GameModleComp.getInstance().maxValue;\r\n return cB >= mathNum;\r\n }\r\n return false;\r\n let sM:number = cB+GameModleComp.getInstance().maxValue-tK;\r\n let mathNum: number = Math.random()*GameModleComp.getInstance().maxValue;\r\n return sM <= mathNum;\r\n }\r\n private static getIsHit(caster:BaseRole , target:BaseRole){\r\n if(caster.modle.attributes == null){\r\n return false;\r\n }\r\n let cM:number = caster.modle.attributes.get(AttType.mingZhongRate).value;\r\n let tS:number = target.modle.attributes.get(AttType.deShanBiRate).value;\r\n if(cM >= tS){\r\n return true;\r\n }\r\n let sM:number = cM+GameModleComp.getInstance().maxValue-tS;\r\n let mathNum: number = Math.random()*GameModleComp.getInstance().maxValue;\r\n return sM <= mathNum;\r\n }\r\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Skill } from \"../skill/Skill\";\r\nimport { BaseRole } from \"./Role\";\r\nimport { RoleNumericMap } from \"../att/RoleNumericMap\";\r\nimport { GebolInAttTypeEnum } from \"./GebolinView\";\r\nimport { AttType, RoleTypeEnum, SkillEType } from \"../enum/Enum\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { Buff } from \"../modules/game/proxy/BuffPoxy\";\r\nimport { BuffItem } from \"../buff/BuffItem\";\r\nimport { SkillEtype } from \"../skill/SkillInterface\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('RoleModle')\r\nexport class RoleModleComp extends Component{\r\n private _skills: Map = new Map();\r\n public get skills(): Map {\r\n return this._skills;\r\n }\r\n public set skills(value: Map) {\r\n this._skills = value;\r\n }\r\n \r\n /**角色对象buff*/\r\n private _buffs: Array = [];\r\n public get buffs(): Array {\r\n return this._buffs;\r\n }\r\n public set buffs(value: Array) {\r\n this._buffs = value;\r\n }\r\n speed:number = 200;\r\n public role:BaseRole;\r\n /** 提供 VM 组件使用的数据 */\r\n vm: any = {};\r\n /** 角色属性 */\r\n attributes: RoleNumericMap = new RoleNumericMap(this.vm);\r\n init(){\r\n this.initAtt();\r\n }\r\n private initAtt(){\r\n // for(let i = AttType.None ; i < AttType.EndValue ; i++){\r\n // this.attributes.get(i).value = 0;\r\n // }\r\n // this.attributes.get(AttType.HpMax).value = this.attributes.get(AttType.XueLiang).value;\r\n }\r\n addRoleSkill(skid: number) {\r\n \r\n }\r\n\r\n addBuff(buff:BuffItem){\r\n if(buff.type == SkillEType.BingDong || buff.type == SkillEType.XuanYun){\r\n for(let i = 0 ; i < this.buffs.length ; i++){\r\n if(this.buffs[i].type == buff.type){\r\n this.buffs[i] = buff;\r\n return;\r\n }\r\n }\r\n }\r\n this.buffs.push(buff);\r\n if(buff.type == SkillEType.GongSuJia){\r\n this.attributes.setArr(AttType.atkSpeedAdd , Number(buff.value));\r\n }else if(buff.type == SkillEType.GongSuJian){\r\n this.attributes.setArr(AttType.atkSpeedAdd , Number(buff.value)*-1);\r\n }else if(buff.type == SkillEType.BaoJiJia){\r\n this.attributes.setArr(AttType.baoJiRateAdd , Number(buff.value));\r\n }else if(buff.type == SkillEType.BaoShangJia){\r\n this.attributes.setArr(AttType.baoJiHurtRateAdd , Number(buff.value));\r\n }\r\n this.role.onBuffAdd(buff);\r\n }\r\n /**每帧更新buff状态*/\r\n updateChangBuff(){\r\n if(this.buffs.length){\r\n let removeArr:Array = [];\r\n let removeTypeArr:Array = [];\r\n let time:number = new Date().getTime();\r\n let buff:BuffItem;\r\n for(let i = 0 ; i < this.buffs.length ; i++){\r\n buff = this.buffs[i];\r\n if((time - buff.createTime)/1000 >= buff.time){\r\n if(buff.type == SkillEType.GongSuJia){\r\n this.attributes.setArr(AttType.atkSpeedAdd , Number(buff.value)*-1);\r\n }else if(buff.type == SkillEType.GongSuJian){\r\n this.attributes.setArr(AttType.atkSpeedAdd , Number(buff.value));\r\n }else if(buff.type == SkillEType.BaoJiJia){\r\n this.attributes.setArr(AttType.baoJiRateAdd , Number(buff.value)*-1);\r\n }else if(buff.type == SkillEType.BaoShangJia){\r\n this.attributes.setArr(AttType.baoJiHurtRateAdd , Number(buff.value)*-1);\r\n }\r\n removeArr.push(i);\r\n removeTypeArr.push(buff.type);\r\n }\r\n }\r\n this.role.onBuffChange(removeTypeArr);\r\n if(removeArr.length){\r\n for(let i = 0 ; i < removeArr.length ; i++){\r\n this.buffs.splice(i , 1);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * 批量设置角色属性\r\n * @param role 目标角色\r\n * @param data 属性数据\r\n */\r\n addAttributes(data:string , isChange:boolean = false){\r\n \r\n }\r\n}","/*\r\n * @Author: NysGame\r\n * @Date: 2022-01-20 18:20:32\r\n * @LastEditors: NysGame\r\n * @LastEditTime: 2022-02-09 13:11:39\r\n */\r\n\r\nimport { AttType } from \"../enum/Enum\";\r\nimport { RoleNumericMap } from \"./RoleNumericMap\";\r\n\r\n/** 影响角色属性的模块 */\r\nexport enum RoleModuleType {\r\n /** 初始默认属性 */\r\n Base,\r\n /** 装备附加属性 */\r\n Equip,\r\n /** 修饰器附加属性 */\r\n Decorator,\r\n /** 技能附加属性 */\r\n Skill\r\n}\r\n\r\n\r\n/** \r\n * 角色属性对象\r\n * 1、不同模块设置对应的属性值\r\n * 2、任意模块的属性值修改时,自动角色属性更新后的数值和\r\n */\r\nexport class RoleNumeric {\r\n /** 数值更新事件 */\r\n onUpdate: Function = null!\r\n\r\n /** 属性类型 */\r\n type: AttType = null!;\r\n\r\n /** 各模块附加值求和总数值 */\r\n private _cn: number = 0;\r\n set value(value: number) {\r\n if(!AttType[this.type]){\r\n return;\r\n }\r\n if (!isNaN(value)){\r\n this._cn = value;\r\n }\r\n else\r\n console.warn(`修改属性值 NaN - ${value}`);\r\n }\r\n get value(): number {\r\n return this._cn;\r\n }\r\n\r\n /** 属性值集合 */\r\n protected attributes: RoleNumericMap;\r\n /** 分组不同模块数值 */\r\n protected values: Map = new Map();\r\n\r\n constructor(type: AttType, attributes: RoleNumericMap) {\r\n this.type = type;\r\n this.attributes = attributes;\r\n\r\n // 设置初始值\r\n var rmt = RoleModuleType;\r\n for (var key in rmt) {\r\n var k = Number(key);\r\n if (k > -1) this.values.set(k, 0);\r\n }\r\n }\r\n\r\n /** 获取指定模块属性值 */\r\n protected getValue(module: RoleModuleType) {\r\n return this.values.get(module);\r\n }\r\n\r\n /** 设置指定模块属性值 */\r\n protected setValue(module: RoleModuleType, value: number) {\r\n this.values.set(module, value);\r\n this.update();\r\n }\r\n\r\n protected update() {\r\n var result = 0;\r\n this.values.forEach(value => {\r\n result += value;\r\n });\r\n this.value = result;\r\n\r\n this.onUpdate && this.onUpdate(this);\r\n }\r\n\r\n reset() {\r\n this.values.clear();\r\n this.update();\r\n }\r\n\r\n /** 角色基础属性 */\r\n get base(): number {\r\n return this.getValue(RoleModuleType.Base)!;\r\n }\r\n set base(value: number) {\r\n this.setValue(RoleModuleType.Base, value);\r\n }\r\n\r\n /** 角色装备属性 */\r\n get equip(): number {\r\n return this.getValue(RoleModuleType.Equip)!;\r\n }\r\n set equip(value: number) {\r\n this.setValue(RoleModuleType.Equip, value);\r\n }\r\n\r\n /** 修饰器属性 */\r\n get decorator(): number {\r\n return this.getValue(RoleModuleType.Decorator)!;\r\n }\r\n set decorator(value: number) {\r\n this.setValue(RoleModuleType.Decorator, value);\r\n }\r\n\r\n /** 技能附加属性 */\r\n get skill(): number {\r\n return this.getValue(RoleModuleType.Skill)!;\r\n }\r\n set skill(value: number) {\r\n this.setValue(RoleModuleType.Skill, value);\r\n }\r\n}","/*\r\n * @Author: NysGame\r\n * @Date: 2022-01-21 09:33:44\r\n * @LastEditors: NysGame\r\n * @LastEditTime: 2022-02-09 12:16:28\r\n */\r\nimport { AttType } from \"../enum/Enum\";\r\nimport { RoleNumeric } from \"./RoleNumeric\";\r\n\r\n/** 角色数值装饰器 */\r\nexport class RoleNumericDecorator {\r\n /** 属性类型 */\r\n attribute: AttType = null!;\r\n /** 属性数值 */\r\n value: number = 0;\r\n}\r\n\r\n/** 所有模块角色属性集合 */\r\nexport class RoleNumericMap {\r\n /** 角色属性 */\r\n private attributes: Map = new Map();\r\n /** 角色属性修饰器 */\r\n private decorators: Map = new Map();\r\n /** VM组件数据 */\r\n private vm: any = null!;\r\n constructor(vm: any) {\r\n this.vm = vm;\r\n }\r\n /** 添加属性修饰器 */\r\n addDecorator(rnd: RoleNumericDecorator) {\r\n this.decorators.set(rnd, rnd.value);\r\n var rn = this.get(rnd.attribute);\r\n rn.decorator += rnd.value;\r\n }\r\n /** 移除属性修饰器 */\r\n removeDecorator(rnd: RoleNumericDecorator) {\r\n this.decorators.delete(rnd);\r\n var rn = this.get(rnd.attribute);\r\n rn.decorator -= rnd.value;\r\n }\r\n /** 获取角色属性 */\r\n get(type: AttType): RoleNumeric {\r\n var attr = this.attributes.get(type);\r\n if (attr == null) {\r\n switch (type) {\r\n default:\r\n attr = new RoleNumeric(type, this);\r\n break;\r\n }\r\n this.attributes.set(type, attr);\r\n\r\n attr.onUpdate = (rn: RoleNumeric) => {\r\n this.vm[rn.type] = rn.value;\r\n };\r\n }\r\n return attr;\r\n }\r\n /**\r\n * 设置角色属性\r\n * 需要默认初初始化以外的任何时候只能在这里设置角色属性 避免属性设置混乱\r\n */\r\n setArr(arrType, num) {\r\n let arr = arrType;\r\n this.get(arr).value += num;\r\n if(arrType == AttType.hpValue ){\r\n let max:number = this.get(AttType.HpMax).value;\r\n let now:number = this.get(AttType.hpValue).value;\r\n if(now >= max){\r\n this.get(AttType.hpValue).value = max;\r\n }\r\n if(now <= 0){\r\n this.get(AttType.hpValue).value = 0;\r\n }\r\n }\r\n }\r\n forEach(callbackfn: (value: RoleNumeric, key: AttType, map: Map) => void, thisArg?: any): void {\r\n this.attributes.forEach(callbackfn, thisArg);\r\n }\r\n /** 重置属性值为零 */\r\n reset() {\r\n this.decorators.clear();\r\n this.attributes.forEach((value: RoleNumeric, key: AttType, map: Map) => {\r\n value.reset();\r\n });\r\n }\r\n}","\r\nimport { AttType } from \"../enum/Enum\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { SkillCfgRecord } from \"./SkillEnum\";\r\n\r\n/** 角色穿透伤害计算流程 */\r\nexport class RolePierceDamage {\r\n\r\n /**获取基础伤害*/\r\n static getBaseDamage(caster: BaseRole, target: BaseRole, parms?: SkillCfgRecord): number {\r\n parms.fixedge = 0;\r\n var addValue = 0;\r\n let gongji:number = caster.modle.attributes.get(AttType.atkValue).value;\r\n let gongjia:number = caster.modle.attributes.get(AttType.atkRate).value\r\n let allGong:number = gongji + gongji*(gongjia / GameModleComp.getInstance().maxValue);\r\n\r\n let fang:number = target.modle.attributes.get(AttType.defValue).value;\r\n let fangjia:number = target.modle.attributes.get(AttType.defRate).value\r\n let allFang:number = fang + fang*(fangjia / GameModleComp.getInstance().maxValue);\r\n\r\n let shangjia:number = caster.modle.attributes.get(AttType.hurtRate).value;//0\r\n let shangjian:number = target.modle.attributes.get(AttType.deHurtRate).value;//1900\r\n let allShang:number = (shangjia - shangjian)/GameModleComp.getInstance().maxValue ;//-0.19 0.81\r\n\r\n let allValue = (allGong - allFang)*(1 + allShang)*GameModleComp.getInstance().miulAtk;\r\n\r\n addValue = allValue > 0 ? allValue : 0\r\n \r\n return parms.fixedge + addValue;\r\n }\r\n}\r\n","/*\r\n * @Author: NysGame\r\n * @Date: 2022-04-07 14:40:59\r\n * @LastEditors: NysGame\r\n * @LastEditTime: 2022-09-15 17:20:36\r\n */\r\nimport { Component, NodePool, Vec3, _decorator, tween } from \"cc\";\r\nimport { ISkillReportHit } from \"../skill/SkillEnum\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { DamageType, EffectDamage, EffectRecovery } from \"../skill/SkillInterface\";\r\nimport { RandomUtil } from \"../core/utils/RandomUtil\";\r\nimport { DamageLabelViewComp } from \"./DamageLabelViewComp\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { RoleTypeEnum } from \"../enum/Enum\";\r\nimport { MainTitle, MainTitlePoxy } from \"../modules/game/proxy/MainTitlePoxy\";\r\nimport { off } from \"process\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n\r\n/** 受击生命提示(防生命提示重叠效果) */\r\n@ccclass('RoleViewHitHpPrompt')\r\nexport class RoleViewHitHpPrompt extends Component {\r\n /** 生命提示动画数据 */\r\n hpTips: ISkillReportHit[] = [];\r\n\r\n private onoff: boolean = true;\r\n\r\n private hitPools: NodePool;\r\n\r\n addHit(obj: ISkillReportHit) {\r\n this.hpTips.push(obj);\r\n }\r\n\r\n init() {\r\n this.hitPools = new NodePool();\r\n for (let index = 0; index < 100; index++) {\r\n let hit = ResHelper.createPrefabNode(\"prefabs/HpPrompt\");\r\n this.hitPools.put(hit);\r\n }\r\n }\r\n\r\n update(dt: number) {\r\n if (this.onoff && this.hpTips.length > 0) {\r\n var hit = this.hpTips.shift();\r\n if ((hit.effect as EffectDamage).damageType != null) {\r\n if ((hit.effect as EffectDamage).damageType == DamageType.Critical) {\r\n this.showHit(hit);\r\n } else {\r\n this.showHit(hit);\r\n }\r\n }\r\n if ((hit.effect as EffectDamage).recvover) {\r\n this.showHit(hit);\r\n }\r\n // if ((hit.effect as EffectRecovery).value) {\r\n // this.showHit(hit);\r\n // }\r\n }\r\n }\r\n /**\r\n * 暴击\r\n * @param labelN \r\n * @param num \r\n */\r\n showHit(hit: ISkillReportHit) {\r\n var target = hit.target;\r\n let rand: Array = RandomUtil.insideUnitCircle;\r\n let node = null;\r\n if (this.hitPools.size() > 0)\r\n node = this.hitPools.get();\r\n else {\r\n node = ResHelper.createPrefabNode(\"prefabs/HpPrompt\");\r\n }\r\n let view: DamageLabelViewComp = node.getComponent(DamageLabelViewComp);\r\n let xAdd:number = (target as BaseRole).RoleType == RoleTypeEnum.Hero || (target as BaseRole).RoleType == RoleTypeEnum.GeBuLin ? 0 : 100;\r\n let yAdd:number = (target as BaseRole).RoleType == RoleTypeEnum.Hero || (target as BaseRole).RoleType == RoleTypeEnum.GeBuLin ? 0 : 100;\r\n let pos1: Vec3 = new Vec3(rand[0]*20+xAdd, rand[1] * 40 + yAdd, 1);\r\n if (target instanceof BossView) {\r\n if (target && target && target.node) {\r\n //target.MonsterView!.node!.addChild(node);\r\n let pos: Vec3 = target.charactor.pos;\r\n let maintitle:MainTitle = MainTitlePoxy.Inst.getTitleById(target.isBoss ? 1 : 2);\r\n let off:Vec3 = new Vec3(0,0,0)\r\n if(maintitle.ay_hurt && maintitle.ay_hurt.length){\r\n off = new Vec3(Number(maintitle.ay_hurt[0]) , Number(maintitle.ay_hurt[1]) , 1);\r\n }\r\n view.node.position = new Vec3(pos.x + off.x, pos.y + off.y, 1);\r\n GameEntry.Inst.mapView.nowScene.restLayer.addChild(node);\r\n target.changeHp((hit.effect as EffectDamage).value)\r\n }\r\n }else if (target instanceof GebolinView) {\r\n if (target && target && target.node) {\r\n let pos: Vec3 = target.charactor.pos;\r\n let off:Vec3 = new Vec3(0,0,0)\r\n let maintitle:MainTitle = MainTitlePoxy.Inst.getTitleById(4);\r\n if(maintitle.ay_hurt && maintitle.ay_hurt.length){\r\n off = new Vec3(Number(maintitle.ay_hurt[0]) , Number(maintitle.ay_hurt[1]) , 1);\r\n }\r\n view.node.position = new Vec3(pos.x + off.x, pos.y + off.y, 1);\r\n GameEntry.Inst.mapView.nowScene.restLayer.addChild(node);\r\n target.changeHp((hit.effect as EffectDamage).value)\r\n }\r\n }else if (target instanceof HeroView) {\r\n if (target && target && target.node) {\r\n let pos: Vec3 = target.charactor.pos;\r\n let off:Vec3 = new Vec3(0,0,0)\r\n let maintitle:MainTitle = MainTitlePoxy.Inst.getTitleById(3);\r\n if(maintitle.ay_hurt && maintitle.ay_hurt.length){\r\n off = new Vec3(Number(maintitle.ay_hurt[0]) , Number(maintitle.ay_hurt[1]) , 1);\r\n }\r\n view.node.position = new Vec3(pos.x + off.x, pos.y + off.y, 1);\r\n GameEntry.Inst.mapView.nowScene.restLayer.addChild(node);\r\n target.changeHp((hit.effect as EffectDamage).value)\r\n }\r\n }\r\n view.show(hit);\r\n tween(node)\r\n .delay(0.8)\r\n .call(() => {\r\n view.reset();\r\n this.hitPools.put(node);\r\n })\r\n .start();\r\n }\r\n}","import { _decorator, Component, Material, SpriteFrame,Widget,Sprite,UITransform } from 'cc';\nconst { ccclass, property, requireComponent, executeInEditMode, disallowMultiple, executionOrder } = _decorator;\n\n@ccclass('RotateMoveUV')\n@executeInEditMode\nexport default class RotateMoveUV extends Component {\n material: Material;\n spriteFrame: SpriteFrame;\n protected onLoad(): void {\n }\n \n protected onEnable(): void {\n this.getComponent(Widget).updateAlignment();\n this.material = this.getComponent(Sprite).getMaterialInstance(0);\n this.spriteFrame = this.getComponent(Sprite).spriteFrame;\n let { width, height } = this.spriteFrame.rect;\n this.material.setProperty('width', this.node.getComponent(UITransform).width / width * 0.6);\n this.material.setProperty('height', this.node.getComponent(UITransform).height / height * 0.6);\n }\n}","import { _decorator } from 'cc';\nimport { BusyNetBegin, BusyNetDone } from \"../../core/manager/BusyLoadingManager\";\nimport { HttpGame } from \"../../core/http/HttpGame\";\nimport { UserServer } from \"../game/serverlist/ServerListWin\";\nimport { NetCode, NetResult } from \"../NetManager\";\n\nexport class RouteServer {\n public static getServerList() {\n BusyNetBegin();\n return new Promise((resolve, reject) => {\n HttpGame.post(\"server/getServerList\", {}, (ret: NetResult) => {\n BusyNetDone();\n resolve(ret);\n })\n })\n }\n public static getCurServer() {\n return new Promise((resolve, reject) => {\n HttpGame.post(\"server/getServerList\", {}, (ret: NetResult) => {\n if (ret.code == NetCode.OK) {\n var user_servers = ret.data.user_servers as UserServer[];\n let info = user_servers.find(a => a.cur_server == 1)\n resolve(info)\n }\n })\n })\n }\n public static changeServer(server: number) {\n BusyNetBegin();\n return new Promise((resolve, reject) => {\n HttpGame.post(\"server/changeServer\", { server }, (ret: NetResult) => {\n BusyNetDone();\n resolve(ret);\n })\n })\n }\n}","import { _decorator } from 'cc';\nimport { BusyNetBegin, BusyNetDone } from \"../../core/manager/BusyLoadingManager\";\nimport { HttpGame } from \"../../core/http/HttpGame\";\nimport { NetCode, NetManager, NetResult } from \"../NetManager\";\n\nexport class RouteSystem {\n public static Notice(ver: string) {\n BusyNetBegin();\n return new Promise((resolve, reject) => {\n HttpGame.post(\"system/notice\", { ver }, (ret: NetResult) => {\n BusyNetDone();\n resolve(ret);\n })\n })\n }\n}","import { _decorator } from 'cc';\r\nimport GameConst from \"../../core/common/GameConst\";\r\nimport { BusyNetBegin, BusyNetDone } from \"../../core/manager/BusyLoadingManager\";\r\nimport WindowManager from \"../../core/manager/WindowManager\";\r\nimport {PlatMgr} from \"../../modules/sdk/PlatMgr\";\r\n\r\nexport class RouteUser {\r\n private static msgbox(ret) {\r\n // WindowManager.Instance().open(GameConst.winPath.MessageBox, {\r\n // showcancle: false,\r\n // content: ret.msg, callback: () => {\r\n // RouteUser._login(RouteUser.login_callback)\r\n // }\r\n // })\r\n }\r\n private static login_callback: Function = null;\r\n private static _login(callback: Function) {\r\n this.login_callback = callback;\r\n BusyNetBegin();\r\n PlatMgr.Instance().login(callback, RouteUser.msgbox)\r\n }\r\n \r\n public static token: string = \"\";\r\n public static login(callback: Function) {\r\n this._login(callback)\r\n }\r\n}\r\n\r\nwindow['RouteUser'] = window[\"wx\"] ? null : RouteUser","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator, Node } from \"cc\";\nimport { BoxData } from \"../common/Component\";\nimport { Label } from \"cc\";\nimport { director } from \"cc\";\nimport { RichText } from \"cc\";\nimport { ItemProxy } from \"../proxy/ItemProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { Button } from \"cc\";\nimport { Toggle } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('ServerListUI')\nexport default class ServerListUI extends BasePanel {\n\n\n//left\n@property(Node) Layout_left: Node = null;\nleft: Node = null;\nprefableft: Node = null;\n\n\n//right\n@property(Node) Layout_right: Node = null;\nright: Node = null;\nprefabright: Node = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n \n }\n \n}\n","import { _decorator, Node, instantiate, Label, EventTouch, UITransform, v3 } from 'cc';\nconst { ccclass, property } = _decorator;\n\nimport GameConst from \"../../../core/common/GameConst\";\nimport BasePanel from \"../../../core/component/BasePanel\";\nimport MsgHints from \"../../../core/component/MsgHints\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport { GamePreloadState } from \"../../fsm/gameFlow/GamePreloadState\";\nimport { GameManager } from \"../../GameManager\";\nimport { NetCode, NetResult } from \"../../NetManager\";\nimport { RouteServer } from \"../../routes/RouteServer\";\ntype GroupInfo = {\n name: string,\n list: {\n id: number\n parent_id: number\n platform: number\n server_name: string,\n status: number // 1: 火爆 2: 新服\n tag: string\n weight: number\n }[]\n}\nexport type UserServer = {\n cur_server: number\n last_login_day: number\n last_login_time: number\n level: number\n server: number\n server_name: string\n status: number\n userid: number\n}\n\n@ccclass('ServerListWin')\nexport default class ServerListWin extends BasePanel {\n onBtnClicked(e: any, name: string) {\n switch (name) {\n case \"btn_zj\":\n break;\n case \"btn_list\":\n break;\n case \"btn_close\":\n this.close(true);\n break;\n }\n }\n node_group: Node | null = null;\n node_servers: Node | null = null;\n server_list: GroupInfo[] = [];\n user_servers: UserServer[] = [];\n ServerItem: Node | null = null;\n ItemGroup: Node | null = null;\n\n onShow(data: any): void {\n RouteServer.getServerList().then((ret: NetResult) => {\n if (ret.code == NetCode.OK) {\n this.user_servers = ret.data.user_servers;\n this.server_list = ret.data.server_list;\n this.refreshGroups();\n this.refreshUserServers(null)\n }\n else {\n MsgHints.show(ret.msg)\n }\n })\n }\n\n groupid: number = 0;\n refreshGroups() {\n this.node_group.destroyAllChildren();\n let nodemain = instantiate(this.ItemGroup);\n nodemain.getChildByName(\"lbl_name\").getComponent(Label).string = \"最近登陆\"\n this.node_group.addChild(nodemain)\n nodemain.setPosition(v3(0));\n this.addClick(nodemain, \"refreshUserServers\")\n this.server_list.forEach(group => {\n let node = instantiate(this.ItemGroup);\n node.getChildByName(\"lbl_name\").getComponent(Label).string = group.name;\n this.node_group.addChild(node);\n node.setPosition(v3(0));\n this.addClick(node, \"onClickGroup\", group)\n })\n\n this.refreshGroupButton(nodemain);\n }\n refreshServers(group: GroupInfo) {\n this.node_servers.destroyAllChildren();\n group.list.forEach(server => {\n let node = instantiate(this.ServerItem);\n\n node.getChildByName(\"lbl_name\").getComponent(Label).string = server.server_name;\n\n if (this.hasData(server.id)) {\n var info = this.getUserServer(server.id)\n node.getChildByName(\"lbl_info\").getComponent(Label).string = \"用户等级:\" + info.level + \"级\" //+ \" 用户\" + info.userid;\n node.getChildByName(\"node_now\").active = info.userid == GameManager.Instance().user.Userid;\n node.getChildByName(\"node_empty\").active = false;\n } else {\n node.getChildByName(\"lbl_info\").getComponent(Label).string = \"\";\n node.getChildByName(\"node_now\").active = false;\n node.getChildByName(\"node_empty\").active = true;\n }\n\n node.getChildByName(\"node_良好\").active = server.status == 0;\n node.getChildByName(\"node_火爆\").active = server.status == 1;\n node.getChildByName(\"node_维护\").active = server.status == 3;\n node.getChildByName(\"node_new\").active = server.status == 2;\n\n\n this.node_servers.addChild(node);\n node.setPosition(v3(0));;\n this.addClick(node, \"onClickServer\", server)\n })\n }\n hasData(serverid: number) {\n return this.user_servers.find(server => {\n return server.server == serverid;\n })\n }\n getUserServer(serverid: number) {\n return this.user_servers.find(server => {\n return server.server == serverid;\n })\n }\n refreshGroupButton(node: Node) {\n this.node_group.children.forEach(child => {\n child.getChildByName(\"node_choose\").active = child == node;\n })\n }\n refreshUserServers(e: EventTouch) {\n this.node_servers.destroyAllChildren();\n this.user_servers.forEach(server => {\n let node = instantiate(this.ServerItem);\n node.setPosition(v3(0));\n node.getChildByName(\"lbl_name\").getComponent(Label).string = server.server_name;\n node.getChildByName(\"lbl_info\").getComponent(Label).string = \"用户等级:\" + server.level + \"级\" //+ \" 用户\" + server.userid;\n node.getChildByName(\"node_empty\").active = false;\n node.getChildByName(\"node_now\").active = server.cur_server == 1;\n\n\n node.getChildByName(\"node_良好\").active = server.status == 0;\n node.getChildByName(\"node_火爆\").active = server.status == 1;\n node.getChildByName(\"node_维护\").active = server.status == 3;\n node.getChildByName(\"node_new\").active = server.status == 2;\n\n //0: 流畅 1: 火爆 2: 新服 3: 维护\n\n this.node_servers.addChild(node);\n node.setPosition(v3(0));\n this.addClick(node, \"onClickServer\", server)\n })\n if (e)\n this.refreshGroupButton(e.currentTarget);\n }\n onClickGroup(e: EventTouch, group: GroupInfo) {\n this.refreshServers(group)\n this.refreshGroupButton(e.currentTarget);\n }\n onClickServer(e, group: UserServer) {\n //@ts-ignore\n var id = group.server || group.id;\n if (id == GameManager.Instance().user.Server) {\n MsgHints.show(\"您已经在【\" + group.server_name + \"】\")\n return\n }\n\n // WindowManager.Instance().open(GameConst.winPath.MessageBox, {\n // content: \"切换到 【\" + group.server_name + \"】?\", callback: (b: boolean) => {\n // if (b) {\n // //@ts-ignore\n // RouteServer.changeServer(group.server || group.id).then((ret: NetResult) => {\n // if (ret.code == NetCode.OK) {\n // GameManager.Instance().fms.ChangeState(GamePreloadState, true);\n // }\n // })\n // }\n // }\n // })\n }\n}","import { RichText } from \"cc\";\nimport BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator} from \"cc\";\nimport GameEntry from \"../../GameEntry\";\nimport { GameModleComp } from \"../../../game/GameModle\";\nimport { reconnect } from \"../../../core/WebSocket/WebSocketMgr\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { Logger } from \"../../../../core/common/log/Logger\";\nimport { Label } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('SeverCloseUI')\nexport default class SeverCloseUI extends BasePanel {\n @property(Label)\n label_1:Label = null;\n\n private labelArr:Array = [\n \".\",\n \"..\",\n \"...\",\n \"....\",\n ];\n private showIndex:number = 0;\n\n onLoad(){\n this.showLabel();\n }\n private showLabel(){\n this.schedule(()=>{\n if(this.showIndex >= this.labelArr.length){\n this.showIndex = 0;\n }\n this.label_1.string = GlobalFunction.GetMsg(10212) + this.labelArr[this.showIndex];\n this.showIndex++;\n Logger.logNet(\"reconnect----\")\n reconnect();\n },1)\n }\n\n onCloseClick(){\n GameEntry.Inst.container.removeAllChildren();\n GameEntry.Inst.mapView.desTory();\n GameModleComp.getInstance().restData();\n\n GameEntry.Inst.start();\n this.desTory();\n }\n\n desTory(){\n if(this && this.node && this.node.parent){\n this.unscheduleAllCallbacks();\n this.node.parent.removeChild(this.node);\n this.destroy();\n }\n }\n}\n","import { _decorator, TweenAction, v3 } from 'cc';\nconst { ccclass, property } = _decorator;\n\n@ccclass('Shake')\nexport class Shake extends TweenAction {\n private _initial_x: number = 0;\n private _initial_y: number = 0;\n private _strength_x: number = 0;\n private _strength_y: number = 0;\n /**\n * 创建抖动动画\n * @param {number} duration 动画持续时长\n * @param {number} strength_x 抖动幅度: x方向\n * @param {number} strength_y 抖动幅度: y方向\n * @returns {Shake}\n */\n public static create(duration: number, strength_x: number, strength_y: number): Shake {\n let act: Shake = new Shake(0, []);\n act.initWithDuration(duration);\n act.update_strength_xy( strength_x, strength_y);\n return act;\n }\n\n public initWithDuration (duration: number): boolean {\n TweenAction.prototype['initWithDuration '].apply(this, arguments);\n return true;\n }\n\n public update_strength_xy(strength_x: number, strength_y: number){\n this._strength_x = strength_x;\n this._strength_y = strength_y;\n }\n\n public fgRangeRand(min: number, max: number): number {\n let rnd: number = Math.random();\n return rnd * (max - min) + min;\n }\n\n public update(time: number): void {\n let randx = this.fgRangeRand(-this._strength_x, this._strength_x);\n let randy = this.fgRangeRand(-this._strength_y, this._strength_y);\n this.getTarget().setPosition(randx + this._initial_x, randy + this._initial_y);\n }\n\n public startWithTarget(target): void {\n TweenAction.prototype['startWithTarget'].apply(this, arguments);\n this._initial_x = target.position.x;\n this._initial_y = target.position.y;\n }\n public stop(): void {\n this.getTarget().setPosition(v3(this._initial_x, this._initial_y));\n TweenAction.prototype['stop'].apply(this);\n }\n}","import { _decorator, Component, Camera, Vec3, tween } from 'cc';\r\nimport GameEntry from '../../modules/GameEntry';\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('ShakeCamera')\r\nexport class ShakeCamera extends Component {\r\n @property(Camera)\r\n camera: Camera = null;\r\n\r\n private originalPosition: Vec3 = null;\r\n private originalPosition1: Vec3 = null;\r\n start() {\r\n // 保存原始位置\r\n }\r\n // 震屏效果\r\n shake(duration: number, intensity: number) {\r\n if(!this.originalPosition){\r\n this.originalPosition = GameEntry.Inst.container.position.clone();\r\n }\r\n if(!this.originalPosition1){\r\n this.originalPosition1 = GameEntry.Inst.mapView.nowScene.layer.position.clone();\r\n }\r\n let shakeDuration = duration;\r\n let shakeIntensity = intensity;\r\n tween(GameEntry.Inst.container.position)\r\n .to(shakeDuration, {\r\n x: this.originalPosition.x + (Math.random() - 0.5) * shakeIntensity,\r\n y: this.originalPosition.y + (Math.random() - 0.5) * shakeIntensity\r\n })\r\n .to(shakeDuration, {\r\n x: this.originalPosition.x + (Math.random() + 0.5) * shakeIntensity,\r\n y: this.originalPosition.y + (Math.random() + 0.5) * shakeIntensity\r\n })\r\n .to(shakeDuration, {\r\n x: this.originalPosition.x,\r\n y: this.originalPosition.y\r\n })\r\n .start();\r\n \r\n tween(GameEntry.Inst.mapView.nowScene.layer.position)\r\n .to(shakeDuration, {\r\n x: this.originalPosition1.x + (Math.random() - 0.5) * shakeIntensity,\r\n y: this.originalPosition1.y + (Math.random() - 0.5) * shakeIntensity\r\n })\r\n .to(shakeDuration, {\r\n x: this.originalPosition1.x + (Math.random() + 0.5) * shakeIntensity,\r\n y: this.originalPosition1.y + (Math.random() + 0.5) * shakeIntensity\r\n })\r\n .to(shakeDuration, {\r\n x: this.originalPosition1.x,\r\n y: this.originalPosition1.y\r\n })\r\n .start();\r\n }\r\n}","/**\r\n *

Byte 类提供用于优化读取、写入以及处理二进制数据的方法和属性。

\r\n *

Byte 类适用于需要在字节层访问数据的高级开发人员。

\r\n */\r\n\r\nimport { _decorator, sys } from 'cc';\r\nimport GameConst from \"../core/common/GameConst\";\r\n\r\nexport class SharedByteUtils {\r\n protected _d_: DataView;\r\n xd = true;\r\n buffer: any;\r\n shareBuff = false;\r\n type: 'sab' | 'normal';\r\n _pos_ = 0;\r\n\r\n public Lock(cb: Function) {\r\n if (this.type === 'sab' && this.buffer.lock != null) {\r\n this.buffer.lock(cb);\r\n }\r\n }\r\n\r\n public Unlock() {\r\n if (this.type === 'sab' && this.buffer.unlock != null) {\r\n this.buffer.unlock();\r\n }\r\n }\r\n\r\n public Close() {\r\n if (this.type == 'sab' && this.buffer['close'] != null) {\r\n this.buffer.close()\r\n }\r\n }\r\n\r\n public CreateByBuffer(buffer: any, type: 'sab' | 'normal') {\r\n this.buffer = buffer;\r\n this.type = type;\r\n switch (type) {\r\n case 'normal':\r\n this.shareBuff = false;\r\n this._d_ = new DataView(this.buffer, 0)\r\n break;\r\n case 'sab':\r\n this.shareBuff = true;\r\n this._d_ = new DataView(this.buffer.buffer, 0);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * 0 不用 1:安卓用 2:都用\r\n */\r\n public static UserSharedBuffType: number = 0;\r\n public UseShareBuffer() {\r\n switch (SharedByteUtils.UserSharedBuffType) {\r\n case 0:\r\n return false;\r\n case 1:\r\n if (sys.os == sys.OS.IOS) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n break;\r\n case 2:\r\n return true;\r\n }\r\n\r\n }\r\n\r\n public CreateByLen(len: number) {\r\n if (this.UseShareBuffer() && window['wx'] && window['wx']['createSharedArrayBuffer']) {\r\n try {\r\n this.buffer = window['wx']['createSharedArrayBuffer'](len);\r\n this._d_ = new DataView(this.buffer.buffer);\r\n this.shareBuff = true;\r\n this.type = 'sab';\r\n }\r\n catch (e) {\r\n this._d_ = null;\r\n console.error(e);\r\n }\r\n }\r\n if (this._d_ == null) {\r\n this.shareBuff = false;\r\n this.type = 'normal';\r\n this.buffer = new ArrayBuffer(len);\r\n this._d_ = new DataView(this.buffer);\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。\r\n * @return 单精度(32 位)浮点数。\r\n */\r\n getFloat32(): number {\r\n return this.readFloat32();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。\r\n * @return 单精度(32 位)浮点数。\r\n */\r\n readFloat32(): number {\r\n var v: number = this._d_.getFloat32(this._pos_, this.xd);\r\n this._pos_ += 4;\r\n return v;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。\r\n * @return 双精度(64 位)浮点数。\r\n */\r\n getFloat64(): number {\r\n return this.readFloat64();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。\r\n * @return 双精度(64 位)浮点数。\r\n */\r\n readFloat64(): number {\r\n var v: number = this._d_.getFloat64(this._pos_, this.xd);\r\n this._pos_ += 8;\r\n return v;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 单精度(32 位)浮点数。\r\n * @param\tvalue\t单精度(32 位)浮点数。\r\n */\r\n writeFloat32(value: number): void {\r\n this._d_.setFloat32(this._pos_, value, this.xd);\r\n this._pos_ += 4;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 双精度(64 位)浮点数。\r\n * @param\tvalue\t双精度(64 位)浮点数。\r\n */\r\n writeFloat64(value: number): void {\r\n this._d_.setFloat64(this._pos_, value, this.xd);\r\n this._pos_ += 8;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Int32 值。\r\n * @return Int32 值。\r\n */\r\n getInt32(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Int32 值。\r\n * @return Int32 值。\r\n */\r\n readInt32(): number {\r\n var float: number = this._d_.getInt32(this._pos_, this.xd);\r\n this._pos_ += 4;\r\n return float;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint32 值。\r\n * @return Uint32 值。\r\n */\r\n getUint32(): number {\r\n return this.readUint32();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint32 值。\r\n * @return Uint32 值。\r\n */\r\n readUint32(): number {\r\n var v: number = this._d_.getUint32(this._pos_, this.xd);\r\n this._pos_ += 4;\r\n return v;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Int32 值。\r\n * @param\tvalue\t需要写入的 Int32 值。\r\n */\r\n writeInt32(value: number): void {\r\n this._d_.setInt32(this._pos_, value, this.xd);\r\n this._pos_ += 4;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入 Uint32 值。\r\n * @param\tvalue\t需要写入的 Uint32 值。\r\n */\r\n writeUint32(value: number): void {\r\n this._d_.setUint32(this._pos_, value, this.xd);\r\n this._pos_ += 4;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Int16 值。\r\n * @return Int16 值。\r\n */\r\n getInt16(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Int16 值。\r\n * @return Int16 值。\r\n */\r\n readInt16(): number {\r\n var us: number = this._d_.getInt16(this._pos_, this.xd);\r\n this._pos_ += 2;\r\n return us;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint16 值。\r\n * @return Uint16 值。\r\n */\r\n getUint16(): number {\r\n return this.readUint16();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint16 值。\r\n * @return Uint16 值。\r\n */\r\n readUint16(): number {\r\n var us: number = this._d_.getUint16(this._pos_, this.xd);\r\n this._pos_ += 2;\r\n return us;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Uint16 值。\r\n * @param\tvalue\t需要写入的Uint16 值。\r\n */\r\n writeUint16(value: number): void {\r\n this._d_.setUint16(this._pos_, value, this.xd);\r\n this._pos_ += 2;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Int16 值。\r\n * @param\tvalue\t需要写入的 Int16 值。\r\n */\r\n writeInt16(value: number): void {\r\n this._d_.setInt16(this._pos_, value, this.xd);\r\n this._pos_ += 2;\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint8 值。\r\n * @return Uint8 值。\r\n */\r\n getUint8(): number {\r\n return this.readUint8();\r\n }\r\n\r\n /**\r\n * 从字节流的当前字节偏移量位置处读取一个 Uint8 值。\r\n * @return Uint8 值。\r\n */\r\n readUint8(): number {\r\n let u = this._d_.getUint8(this._pos_);\r\n this._pos_++\r\n return u;\r\n }\r\n\r\n /**\r\n * 在字节流的当前字节偏移量位置处写入指定的 Uint8 值。\r\n * @param\tvalue\t需要写入的 Uint8 值。\r\n */\r\n writeUint8(value: number): void {\r\n this._d_.setUint8(this._pos_, value);\r\n this._pos_++;\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint8 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint8 值。\r\n */\r\n //TODO:coverage\r\n _getUInt8(pos: number): number {\r\n return this._readUInt8(pos);\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint8 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint8 值。\r\n */\r\n //TODO:coverage\r\n _readUInt8(pos: number): number {\r\n return this._d_.getUint8(pos);\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint16 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint16 值。\r\n */\r\n //TODO:coverage\r\n _getUint16(pos: number): number {\r\n return this._readUint16(pos);\r\n }\r\n\r\n /**\r\n * @internal\r\n * 从字节流的指定字节偏移量位置处读取一个 Uint16 值。\r\n * @param\tpos\t字节读取位置。\r\n * @return Uint16 值。\r\n */\r\n //TODO:coverage\r\n _readUint16(pos: number): number {\r\n return this._d_.getUint16(pos, this.xd);\r\n }\r\n\r\n /**\r\n * 移动或返回 Byte 对象的读写指针的当前位置(以字节为单位)。下一次调用读取方法时将在此位置开始读取,或者下一次调用写入方法时将在此位置开始写入。\r\n */\r\n get pos(): number {\r\n return this._pos_;\r\n }\r\n\r\n set pos(value: number) {\r\n this._pos_ = value;\r\n }\r\n\r\n /**\r\n *

在字节流中写入一个字节。

\r\n *

使用参数的低 8 位。忽略高 24 位。

\r\n * @param\tvalue\r\n */\r\n writeByte(value: number): void {\r\n this._d_.setInt8(this._pos_, value);\r\n this._pos_ += 1;\r\n }\r\n\r\n /**\r\n *

从字节流中读取带符号的字节。

\r\n *

返回值的范围是从 -128 到 127。

\r\n * @return 介于 -128 和 127 之间的整数。\r\n */\r\n readByte(): number {\r\n return this._d_.getInt8(this._pos_++);\r\n }\r\n\r\n /**\r\n * @private\r\n * 从字节流中读取带符号的字节。\r\n */\r\n getByte(): number {\r\n return this.readByte();\r\n }\r\n}","/**\n * Shop config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { c1005, s1005, c1210, s1210, c1211, s1211, c1212, s1212, c1213, s1213, c1214, s1214, c1215, s1215, c1216, p_reward, p_limit_goods, p_frist_pay } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { PayInfoProxy } from \"./PayInfoProxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { BoxData } from \"../common/Component\";\nimport { Logger } from \"../../../../core/common/log/Logger\";\n@res_auto_bind()\nexport class ShopProxy {\n private static _inst: ShopProxy;\n public static get Inst(): ShopProxy {\n if (ShopProxy._inst == null) {\n ShopProxy._inst = new ShopProxy();\n }\n return ShopProxy._inst;\n }\n @res_assign(\"Shop\")\n public ShopoDataList: Shop[];\n public InitShopConfig() {\n\n if (this.ShopoDataList == null) {\n this.ShopoDataList = [];\n }\n let ShopDataConfig = ConfigManager.GetInstance().getValue(\"Shop\")\n for (var key in ShopDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Shop\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.ShopoDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取soldiers */\n public GetShopDataByID(goodID: number) {\n if (goodID == undefined) return undefined;\n if (this.ShopoDataList == null) {\n this.InitShopConfig();\n }\n let data: Shop = this.ShopoDataList.find(item => item.goodsId == goodID);\n if (data) {\n return data;\n }\n return null;\n }\n public GetShopTypePack(type: ShopGoodType) {\n let heroShopList: Shop[] = [];\n for (let i = 0; i < ShopProxy.Inst.ShopoDataList.length; i++) {\n let shopdata = ShopProxy.Inst.ShopoDataList[i];\n if (shopdata.shopType == type) {\n heroShopList.push(shopdata);\n }\n }\n return heroShopList;\n\n }\n\n public GetShopCoinIcon(type: ShopCoinType) {\n if (type == ShopCoinType.yuanbao) {\n\n return \"¥\"\n } else if (type == ShopCoinType.zuanshi) {\n\n return \"ui_icon_zuanshi\"\n }\n else if (type == ShopCoinType.jinbi) {\n\n return \"ui_icon_jinbi\"\n\n } else if (type == ShopCoinType.xingzuan) {\n\n return \"ui_icon_xingzuan\"\n }\n }\n\n public GetShopCoinValue(type: ShopCoinType, value: number) {\n if (type == ShopCoinType.yuanbao) {\n\n let payinfodata = PayInfoProxy.Inst.GetPayInfoDataByID(value);\n if (payinfodata) {\n if (GlobalFunction.LanguageIsChina()) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20079),payinfodata.costMoney);\n // return StringUtil.stringFormat( GlobalFunction.GetMsg(10001),payinfodata.costMoney);\n } else {\n return \"$\" + payinfodata.OScostMoney / 100;\n // return StringUtil.stringFormat( GlobalFunction.GetMsg(10001),payinfodata.OScostMoney);\n }\n }\n return \"\";\n } else{\n return value;\n\n }\n }\n /***==========================发送消息给服务器========================= */\n\n public SendC1005() {\n // 兵种装备商城信息 \n var c1005: c1005 = {};\n Logger.logNet(\"================Send1005===============:\");\n send2client(\"c1005\", c1005);\n }\n public SendC1210() {\n // 兵种装备商城信息 \n var c1210: c1210 = {};\n Logger.logNet(\"Send1210:\");\n send2client(\"c1210\", c1210);\n }\n\n public SendC1211(type: number) {\n // // 抽取类型:1-广告抽取,2-普通抽取;3-高级抽取\n Logger.logNet(\"Send1211:\");\n var c1211: c1211 = { type: type };\n send2client(\"c1211\", c1211);\n }\n\n public SendC1212(type: number) {\n // // type=1; // 商店类型,目前该类商店包含:4-英雄商店,5-村庄商店;6-仓库商店\n Logger.logNet(\"Send1212:\");\n var c1212: c1212 = { type: type };\n send2client(\"c1212\", c1212);\n }\n public SendC1213(type: number) {\n // // type=1; // 商店类型,目前该类商店包含:7day,8week\n Logger.logNet(\"Send1213:\");\n var c1213: c1213 = { type: type };\n send2client(\"c1213\", c1213);\n }\n\n\n public SendC1214(goodsId: number, num: number) {\n // // type=1; // 商店购买,充值类不能直接购买\n Logger.logNet(\"====================================Send1214==================:\" + goodsId + \" num===\" + num);\n var c1214: c1214 = { goodsId: goodsId, num: num };\n send2client(\"c1214\", c1214);\n }\n\n public SendC1215(payId: number) {\n // // type=1; // 支付拉起前检查能否购买该商品\n Logger.logNet(\"Send1215:==\" + payId);\n ShopProxy.Inst.ShopPayInfoId = payId;\n var c1215: c1215 = { payId: payId };\n send2client(\"c1215\", c1215);\n }\n\n public SendC1216(payId: number) {\n // // payId=1; // 模拟支付,内部测试版本点击直接购买,正式版本改协议不可用\n Logger.logNet(\"Send1216:\");\n var c1216: c1216 = { payId: payId };\n send2client(\"c1216\", c1216);\n }\n /***==========================服务器数据存储============================== */\n public SolderShopEquipIdMaps: Map = new Map();//服务器返回-士兵商城召唤的装备列表\n public SolderShopEquipIdList: number[];//服务器返回-士兵商城召唤的装备列表\n public SoldierShopServerData: s1210;//服务器返回-士兵装备shop\n\n public payInfoStartList: p_frist_pay[];//接收服务器传过来的商城星钻列表\n\n public payInfodiamondList: p_frist_pay[];//接收服务器传过来的商城钻石列表\n\n public GoodIdList: number[];//服务器返回-英雄村庄仓库商品id列表\n public isOnClickBuyHero :boolean;//是否点击购买了英雄礼包\n public GoodsServerList: p_limit_goods[];//服务器返回-限购商品列表7每日限购\n public ShopPayInfoId: number;//临时存储payid\n\n public shopGoodType: ShopGoodType;//臨時存儲類型\n\n\n}\n\nexport function do_s1005(s1005: s1005) {\n if (s1005 == undefined) return;\n Logger.logNet(\"============接收====S1005===============:\");\n if (ShopProxy.Inst.payInfoStartList == undefined) {\n ShopProxy.Inst.payInfoStartList = [];\n }\n if (ShopProxy.Inst.payInfodiamondList == undefined) {\n ShopProxy.Inst.payInfodiamondList = [];\n }\n\n ShopProxy.Inst.payInfoStartList.length = 0;\n ShopProxy.Inst.payInfoStartList = s1005.starPayInfo;\n ShopProxy.Inst.payInfoStartList.sort((a, b) => a.goodsId - b.goodsId);\n\n\n ShopProxy.Inst.payInfodiamondList.length = 0;\n ShopProxy.Inst.payInfodiamondList = s1005.dimondPayInfo;\n ShopProxy.Inst.payInfodiamondList.sort((a, b) => a.goodsId - b.goodsId);\n for(let i=0;i {\n // 这里的 this 指向 component\n ShopProxy.Inst.SendC1210();\n WindowManager.Instance().open(GameConst.winPath.SoldiersEquiptGetUI, null, true);\n // }, 1);\n }\n}\n\nexport function do_s1212(s1212: s1212) {\n if (s1212 == undefined) return;\n // Logger.logNet(\"=====================接收s1212=========================\" + s1212.goodsIds);\n ShopProxy.Inst.GoodIdList = s1212.goodsIds;\n if (ShopProxy.Inst.GoodIdList != null) {\n ShopProxy.Inst.GoodIdList.sort((a, b) => a - b);\n }\n //可购买的商品id列表,每个都只能购买一个\n EventManager.Inst.event(EventType.REFRESH_HEROSHOP_UI);\n}\n\nexport function do_s1213(s1213: s1213) {\n if (s1213 == undefined) return;\n Logger.logNet(\"=====================接收s1213=========================\");\n ShopProxy.Inst.GoodsServerList = s1213.goodsList;\n if(ShopProxy.Inst.GoodsServerList!=null){\n ShopProxy.Inst.GoodsServerList.sort((a,b)=>a.goodsId-b.goodsId);\n ShopProxy.Inst.GoodsServerList.sort((a,b)=>GlobalFunction.ConvertUndefinedToNumber(b.num)-GlobalFunction.ConvertUndefinedToNumber(a.num));\n }\n // // 限购商品基础结构\n // message p_limit_goods{\n // int32 goodsId=1; // 商品id\n // int32 num=2; // 可购买次数\n // }\n EventManager.Inst.event(EventType.REFRESH_LIMIT_UI);\n}\n\nexport function do_s1214(s1214: s1214) {\n if (s1214 == undefined) return;\n //商品购买结果:0-成功,1-失败\n Logger.logNet(\"=====================接收s1214=========================\" + s1214.result);\n if (s1214.result == undefined) {\n //购买完成之后后端会主动向前端推送1212\n\n if(s1214.rewards &&s1214.rewards.length>0)\n var data = new BoxData\n {\n data.rewards = s1214.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n}\n\nexport function do_s1215(s1215: s1215) {\n //// 0-可购买,1-不可购买\n Logger.logNet(\"=====================接收s1215=========================\" + s1215.result);\n if (s1215.result == undefined) {\n //ShopProxy.Inst.SendC1005();//判斷是不是首次充值\n ShopProxy.Inst.SendC1216(ShopProxy.Inst.ShopPayInfoId);\n }\n}\nexport class Shop {\n /** 商品 ID */\n goodsId: number;\n /** 商品名字 */\n lan_name: string;\n /** 商品图标*/\n icon: string;\n /** 折扣 */\n discount: number;\n /** 类型 */\n shopType: ShopGoodType;\n /** 活动id */\n activity: number;\n /** 活动类型 */\n activityType: number;\n /** 限购数量 */\n limitCount: number;\n /** 道具id */\n ay_goods: string[];\n /** 道具数量 */\n ay_goodsNum: string[];\n /** 花费类型 */\n coinType: string;\n /** 价格 */\n price: number;\n /** 刷新类型 */\n refreshType: number;\n}\nexport enum ShopGoodType {\n xingzhuan = 1,//星钻\n zhuanshi = 2,//钻石\n jinbi = 3,//金币\n yingxiong = 4,//英雄\n cunzhaung = 5,//村庄\n gongchang = 6,//工厂\n xiangouday = 7,//每日限购\n xiangouweek = 8//每周限购\n}\nexport enum ShopUiType {\n zhaohuan = 1,//召喚\n money = 2,//monet\n lasttime = 3,//last\n heros = 4,//英雄\n skin = 5,//skin\n\n\n}\n\nexport enum ShopCoinType {\n yuanbao = 1,//money\n zuanshi = 2,//钻石\n jinbi = 3,//金币\n xingzuan = 4,//星钻\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { ShopProxy } from \"../proxy/ShopProxy\";\nimport { SoldierEquipProxy, SoldiersShop } from \"../proxy/SoldierEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { Button } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('ShopSoldiersTipsUI') //商店召唤士兵装备界面\nexport default class ShopSoldiersTipsUI extends BasePanel {\n\n currentLv :number;\n SoldierShop: SoldiersShop;\n MaxLevel:number;\n numberlist :number[];\n @property(Node) Label_lv: Node | null = null;\n \n @property(Node) Layout_dec: Node | null = null;\n dec: Node | null = null;\n decPerfab: Node | null = null;\n\n @property(Button) Button_left: Button | null = null;\n @property(Button) Button_right: Button | null = null;\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_left\") {\n this.OnClickLeftBtn();\n\n }else if (name == \"Button_right\") {\n this.OnClickRightBtn();\n }\n }\n\n onShow(data: any): void {\n this.currentLv = ShopProxy.Inst.SoldierShopServerData.lv;\n this.MaxLevel = SoldierEquipProxy.Inst.SoldiersShopList.length;\n this.Button_right.node.active = this.currentLv!=this.MaxLevel;\n this.Button_left.node.active = this.currentLv>1;\n\n this.InItChouJiangLevel();\n }\n\nOnClickRightBtn(){\n \n this.currentLv++;\n \n this.Button_right.node.active = this.currentLv1;\n if(this.currentLv)\n this.InItChouJiangLevel();\n}\n\nOnClickLeftBtn(){\n this.currentLv--;\n this.Button_right.node.active = this.currentLv1;\n this.InItChouJiangLevel();\n}\n InItChouJiangLevel(){\n\n let currentLvLabel = this.Label_lv.getComponent(Label);\n this.decPerfab = this.dec;\n this.Layout_dec.removeAllChildren();\n let level = GlobalFunction.ConvertUndefinedToNumber(this.currentLv);\n currentLvLabel.string = level+\"\";\n if(this.numberlist==null){\n this.numberlist=[];\n }\n this.numberlist.length=0;\n this.SoldierShop = SoldierEquipProxy.Inst.GetSoldiersShopDataByLv(level);\n this.numberlist.push(this.SoldierShop.white);\n this.numberlist.push(this.SoldierShop.green);\n this.numberlist.push(this.SoldierShop.blue);\n this.numberlist.push(this.SoldierShop.purple);\n this.numberlist.push(this.SoldierShop.orange);\n this.numberlist.push(this.SoldierShop.red);\n\n\n // console.log(\"rechargeweekList.length====\"+rechargeweekList.length);\n for (let i = 0; i < this.numberlist.length; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.decPerfab);\n if (itemNode) {\n itemNode.parent = this.Layout_dec;\n let Sprite_list = itemNode.getChildByName(\"Sprite_decbg\").getComponent(Sprite);\n let Sprite_listicon = SoldierEquipProxy.Inst.GetSoldierEquipLvIconById((i+1));\n GlobalFunction.SetSpriteFrame(Sprite_list, Sprite_listicon);\n\n let Label_name = itemNode.getChildByName(\"Label_dec\").getComponent(Label);\n Label_name.string = SoldierEquipProxy.Inst.GetSoldierEquipUpNameById((i+1));\n\n let Label_bernum = itemNode.getChildByName(\"Label_decnum\").getComponent(Label);\n // Label_bernum.string = GlobalFunction.ConvertExtremelyNumber(SoldierEquipProxy.Inst.GetSoldierEquipUpPinZhiValueById((i + 1), level));\n Label_bernum.string = GlobalFunction.ConvertExtremelyNumber(this.numberlist[i]);\n \n }\n }\n\n }\n\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n clearRes() {\n }\n}\n","import { _decorator, Node } from 'cc';\nimport BasePanel from '../../../core/component/BasePanel';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { Label } from 'cc';\nimport { SoldierEquipProxy, SoldiersShop } from '../proxy/SoldierEquipProxy';\nimport { Shop, ShopCoinType, ShopGoodType, ShopProxy, ShopUiType } from '../proxy/ShopProxy';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { dataUser } from '../../gameData/dataUser';\nimport { Color } from 'cc';\nimport { ProgressBar } from 'cc';\nimport { Button } from 'cc';\nimport { sp } from 'cc';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { instantiate } from 'cc';\nimport { Sprite } from 'cc';\nimport { Vec3 } from 'cc';\nimport { CoinType, ItemProxy } from '../proxy/ItemProxy';\nimport { Component } from 'cc';\nimport { PayInfo, PayInfoProxy } from '../proxy/PayInfoProxy';\nimport { Toggle } from 'cc';\nimport { Layout } from 'cc';\nimport { titleStyle } from '../proxy/TitleProxy';\nimport { GameModleComp } from '../../../game/GameModle';\nimport { TimePoxy } from '../proxy/TimePoxy';\nimport { ScrollView } from 'cc';\nimport { FestivalTimeProxy } from '../proxy/FestivalTimeProxy';\nimport { BoxData } from '../common/Component';\nimport { CommonMsgProxy } from '../proxy/CommonMsgProxy';\nimport { FunctionProxy } from '../proxy/FunctionProxy';\nimport { SoundManager } from '../../../core/utils/SoundManager';\nimport { GuideManager } from '../guilde/GuideManager';\nimport { TaskProxy } from '../proxy/TaskProxy';\nconst { ccclass, property } = _decorator;\n@ccclass(\"ShopUI\")\nexport default class ShopUI extends BasePanel {\n\n\n Center: Node | null = null;\n Bottom: Node | null = null;\n @property(Node) Panle_soldiers: Node | null = null;\n @property(Node) Panle_heros: Node | null = null;\n @property(Node) Panle_money: Node | null = null;\n @property(Node) Panle_skin: Node | null = null;\n @property(Node) Panle_last: Node | null = null;\n\n @property(Toggle) Toggle_soldiers: Toggle | null = null;\n @property(Toggle) Toggle_heros: Toggle | null = null;\n @property(Toggle) Toggle_money: Toggle | null = null;\n @property(Toggle) Toggle_skin: Toggle | null = null;\n @property(Toggle) Toggle_lasttime: Toggle | null = null;\n\n\n\n ToggleNodes: Node[] | null = [];\n ToggleChildNodes: Toggle[] | null = [];\n shoptype: ShopGoodType;\n @property(Node) Panle_star: Node | null = null;\n @property(Node) Panle_diamond: Node | null = null;\n\n @property(Toggle) Toggle_star: Toggle | null = null;\n @property(Toggle) Toggle_diamond: Toggle | null = null;\n\n shopdaytype: ShopGoodType;\n ToggleOtherNodes: Node[] | null = [];\n @property(Node) Panle_day: Node | null = null;\n @property(Node) Panle_week: Node | null = null;\n\n index: number;\n PanleNodes: Node[] | null = [];\n PanleChildNodes: Toggle[] | null = [];\n shopuitype: ShopUiType;\n skeleton: sp.Skeleton;\n //士兵装备\n SoldierShop: SoldiersShop;\n\n @property(Button) Button_free: Button | null = null;//免費召喚\n @property(Button) Button_guanggao: Button | null = null;//视频召唤\n\n @property(Node) Label_guanggaonum: Node | null = null;//广告次数\n @property(Node) Label_guanggao: Node | null = null;//广告剩余次数\n @property(Node) Label_onenum: Node | null = null;//召唤一次次数\n @property(Node) Sprite_one: Node | null = null; // 召唤一次的货币类型\n @property(Node) Label_one: Node | null = null;//召唤一次消耗Sprite_one\n @property(Node) Label_tennum: Node | null = null;//召唤十次次数\n @property(Node) Sprite_ten: Node | null = null; // / 召唤十次的货币类型\n @property(Node) Label_ten: Node | null = null;//召唤十次消耗\n\n @property(Node) Label_soldierslv: Node | null = null;//等级\n @property(Node) Label_soldiers: Node | null = null;//进度条label\n @property(Node) ProgressBar_soldiers: Node | null = null;//进度条\n //抽奖动画\n @property(Node) soldierswait: Node | null = null;//待机动画\n @property(Node) soldiersopen: Node | null = null;//抽奖动画\n @property(Node) e_ui_shop_niudan_call_start: Node | null = null;//donghua\n Button_soldiers: Button | null = null;//视屏抽奖按钮\n\n //英雄提升\n HeroShopList: Shop[];\n @property(Node) Layout_heros: Node | null = null;\n heros: Node | null = null;\n prefabheros: Node | null = null;\n\n //充值 \n /**star */\n @property(Node) Layout_star: Node | null = null;\n star: Node | null = null;\n prefabstar: Node | null = null;\n\n /**钻石 */\n @property(Node) Layout_diamond: Node | null = null;\n diamond: Node | null = null;\n prefabdiamond: Node | null = null;\n\n /**金币 */\n @property(Node) Layout_gold: Node | null = null;\n gold: Node | null = null;\n prefabgold: Node | null = null;\n\n\n //限购\n @property(Node) Label_timeday: Node | null = null;\n @property(Node) Label_timeweek: Node | null = null;\n /**每天 */\n @property(Node) Layout_day: Node | null = null;\n day: Node | null = null;\n prefabday: Node | null = null;\n @property(Node) ScrollView_tujian: Node | null = null;\n\n timeDayCallback: any;\n timeWeekCallback: any;\n /**每周 */\n @property(Node) Layout_week: Node | null = null;\n week: Node | null = null;\n prefabweek: Node | null = null;\n\n @property(Button) Button_one : Button|null = null;\n @property(Button) Button_back : Button|null = null;\n\n onBtnClicked(e: any, name: string) {\n switch (name) {\n case 'Button_back':\n EventManager.Inst.event(EventType.guideEvent_10004, 10004);\n this.close(true)\n break;\n case 'Toggle_soldiers':\n this.showPanel(this.Panle_soldiers);\n break;\n case 'Toggle_heros':\n this.showPanel(this.Panle_heros);\n break;\n case 'Toggle_money':\n this.showPanel(this.Panle_money);\n break;\n case 'Toggle_skin':\n GlobalFunction.ShowBox5();\n // this.showPanel(this.Panle_skin);\n break;\n case 'Toggle_lasttime':\n this.showPanel(this.Panle_last);\n break;\n case \"Button_soldiers\": //详情\n WindowManager.Instance().open(GameConst.winPath.ShopSoldiersTipsUI, null, true);//装备品质展示界面\n break;\n case \"Button_advert\"://视屏召唤\n if (ShopProxy.Inst.SoldierShopServerData.adNum > 0) {\n this.index = 1;\n this.zhsoldier_Hit();\n }\n break;\n case \"Button_one\"://召唤1\n this.buySoldierEquip(2, ShopProxy.Inst.SoldierShopServerData.chouNum2, ShopProxy.Inst.SoldierShopServerData.chou2Dimond); \n EventManager.Inst.event(EventType.guideEvent_10002, 10002);\n break;\n case \"Button_ten\"://召唤10\n this.buySoldierEquip(3, ShopProxy.Inst.SoldierShopServerData.chouNum3, ShopProxy.Inst.SoldierShopServerData.chou3Dimond); \n break;\n case 'Toggle_star':\n this.showMoneyPanel(this.Panle_star, this.ToggleNodes);\n break;\n case 'Toggle_diamond':\n this.showMoneyPanel(this.Panle_diamond, this.ToggleNodes);\n break;\n // case 'Toggle_gold':\n // this.showMoneyPanel(this.Panle_gold, this.ToggleNodes);\n // break;\n\n case 'Toggle_day':\n this.shopdaytype = ShopGoodType.xiangouday;\n ShopProxy.Inst.SendC1213(ShopGoodType.xiangouday);//7.每日限购\n this.showMoneyPanel(this.Panle_day, this.ToggleOtherNodes);\n break;\n case 'Toggle_week':\n this.shopdaytype = ShopGoodType.xiangouweek;\n ShopProxy.Inst.SendC1213(ShopGoodType.xiangouweek);//8.每周限购\n this.showMoneyPanel(this.Panle_week, this.ToggleOtherNodes);\n break;\n }\n }\n\n start() {\n this.addEvent();\n ShopProxy.Inst.SendC1212(ShopGoodType.yingxiong);//獲取商店數值-目前该类商店包含:4-英雄商店,5-村庄商店;6-仓库商店\n ShopProxy.Inst.SendC1210();//兵种装备商城信息\n ShopProxy.Inst.SendC1005();//判斷是不是首次充值\n ShopProxy.Inst.SendC1213(ShopGoodType.xiangouday);//7.每日限购 8.每周限购\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.REFRESH_SOLDIERSHOP_UI, this, this.RefreshSoldierShopUi);\n EventManager.Inst.on(EventType.EXTRACT_SOLDIEREQUIP_RESULT, this, this.ExtractSoldierEquipResult);\n EventManager.Inst.on(EventType.REFRESH_HEROSHOP_UI, this, this.RefreshHeroShopUi);\n EventManager.Inst.on(EventType.REFRESH_RECHARGE_UI, this, this.RefreshRechargeShopUi);\n EventManager.Inst.on(EventType.REFRESH_LIMIT_UI, this, this.RefreshLimitShopUi);\n EventManager.Inst.on(EventType.GUIDE_TS_10001, this, this.on10001);\n EventManager.Inst.on(EventType.GUIDE_TS_10003, this, this.on10003);\n }\n private on10001(){\n if (GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_10002, [10002, this.Button_one.node])\n }\n }\n private on10003(){\n if (GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_10004, [10004, this.Button_back.node])\n }\n }\n\n //刷新士兵商城\n RefreshSoldierShopUi() {\n this.ShopSoldiersShop();\n // this.ShowShopLastPack();\n }\n /**士兵裝備抽取后刷新 */\n ExtractSoldierEquipResult() {\n if(this.soldierswait!=undefined &&this.soldiersopen!=undefined){\n this.soldierswait.active = true;\n this.soldiersopen.active = false;\n }\n }\n /**刷新英雄商店 */\n RefreshHeroShopUi() {\n this.Toggle_heros.node.active = ShopProxy.Inst.GoodIdList != undefined && ShopProxy.Inst.GoodIdList.length > 0;\n if (!this.Toggle_heros.node.active) {\n if( ShopProxy.Inst.isOnClickBuyHero){\n ShopProxy.Inst.isOnClickBuyHero=false;\n this.Toggle_soldiers.isChecked = true;\n this.showPanel(this.Panle_soldiers);\n }\n\n } else {\n this.ShowShopHeroPack();\n }\n\n }\n /**刷新充值商店 */\n RefreshRechargeShopUi() {\n this.ShowShopRechargePack();\n }\n /**刷新限購商店 */\n RefreshLimitShopUi() {\n this.ShowShopLastPack();\n this.Center.active = true;\n this.Bottom.active = true;\n }\n showPanel(node: Node) {\n for (let i = 0; i < this.PanleNodes.length; ++i) {\n if (node.name == this.PanleNodes[i].name) {\n if (!this.PanleNodes[i].active) {\n this.PanleNodes[i].active = true;\n GlobalFunction.OpenTitlePoup(this.node.name, node.name);\n }\n } else {\n this.PanleNodes[i].active = false;\n }\n }\n }\n showMoneyPanel(node: Node, togglenode: Node[]) {\n for (let i = 0; i < togglenode.length; ++i) {\n if (node.name == togglenode[i].name) {\n if (!togglenode[i].active) {\n togglenode[i].active = true;\n }\n } else {\n togglenode[i].active = false;\n }\n }\n }\n showToggle(node: Toggle, togglenode: Toggle[]) {\n for (let i = 0; i < togglenode.length; ++i) {\n if (node.name == togglenode[i].name) {\n if (!togglenode[i].isChecked) {\n togglenode[i].isChecked = true;\n }\n } else {\n togglenode[i].isChecked = false;\n }\n }\n }\n\n /**进游戏初始化 */\n onShow(data: any) {\n\n // if (!this.Center.active) {\n // this.Center.active = false;\n // }\n // if (!this.Bottom.active) {\n // this.Bottom.active = false;\n // }\n this.shopuitype = data == undefined ? ShopUiType.zhaohuan : data;\n if (this.PanleNodes.length == 0) {\n this.PanleNodes.push(this.Panle_soldiers);\n this.PanleNodes.push(this.Panle_money);\n this.PanleNodes.push(this.Panle_last);\n this.PanleNodes.push(this.Panle_heros);\n this.PanleNodes.push(this.Panle_skin);\n }\n\n if (this.PanleChildNodes.length == 0) {\n this.PanleChildNodes.push(this.Toggle_soldiers);\n this.PanleChildNodes.push(this.Toggle_money);\n this.PanleChildNodes.push(this.Toggle_lasttime);\n this.PanleChildNodes.push(this.Toggle_heros);\n this.PanleChildNodes.push(this.Toggle_skin);\n\n }\n let datahero =FunctionProxy.Inst.GetFunctionDataByID(2);\n if(datahero){\n this.Toggle_heros.node.active = (dataUser.Instance().passId+1)>=datahero.level;\n if((dataUser.Instance().passId+1)>=datahero.level){\n this.showPanel(this.PanleNodes[this.shopuitype - 1]);\n this.showToggle(this.PanleChildNodes[this.shopuitype - 1], this.PanleChildNodes);\n }else{\n this.showPanel(this.Panle_money);\n this.showToggle(this.Toggle_money, this.PanleChildNodes);\n }\n }\n\n\n\n\n\n\n this.shoptype = ShopProxy.Inst.shopGoodType == undefined ? ShopGoodType.xingzhuan : ShopProxy.Inst.shopGoodType;\n this.ToggleNodes = [];\n if (this.ToggleNodes.length == 0) {\n this.ToggleNodes.push(this.Panle_star);\n this.ToggleNodes.push(this.Panle_diamond);\n // this.ToggleNodes.push(this.Panle_gold);\n }\n this.showMoneyPanel(this.ToggleNodes[this.shoptype - 1], this.ToggleNodes);\n\n\n\n if (this.ToggleChildNodes.length == 0) {\n this.ToggleChildNodes.push(this.Toggle_star);\n this.ToggleChildNodes.push(this.Toggle_diamond);\n // this.ToggleChildNodes.push(this.Toggle_gold);\n }\n this.showToggle(this.ToggleChildNodes[this.shoptype - 1], this.ToggleChildNodes);\n\n\n\n this.shopdaytype = ShopGoodType.xiangouday;\n if (this.ToggleOtherNodes.length == 0) {\n this.ToggleOtherNodes.push(this.Panle_day);\n this.ToggleOtherNodes.push(this.Panle_week);\n }\n this.showMoneyPanel(this.ToggleOtherNodes[this.shopdaytype - ShopGoodType.xiangouday], this.ToggleOtherNodes);\n\n\n\n GlobalFunction.OpenTitlePoup(this.node.name, this.PanleNodes[this.shopuitype - 1].name);\n this.skeleton = this.e_ui_shop_niudan_call_start.getComponent(sp.Skeleton);\n\n this.ShowDayDownTime();\n this.ShowWeekDownTime();\n\n if(TaskProxy.Inst.CurrentTaskId == 103){\n GuideManager.getInstance().guideTaskId = 103;\n TaskProxy.Inst.CurrentTaskId = 0;\n }\n GuideManager.getInstance().showGuide();\n }\n\n\n /**士兵商城 */\n ShopSoldiersShop() {\n this.Label_guanggaonum.getComponent(Label).string = StringUtil.stringFormat(GlobalFunction.GetMsg(20075), GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.chouNum1));\n this.Label_guanggao.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.adNum) + \"/\" + GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.adNumMax);\n this.Label_onenum.getComponent(Label).string = StringUtil.stringFormat(GlobalFunction.GetMsg(20075), GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.chouNum2));\n this.Label_tennum.getComponent(Label).string = StringUtil.stringFormat(GlobalFunction.GetMsg(20075), GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.chouNum3));\n this.Label_ten.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.chouNum3) + \"\";\n if (dataUser.Instance().call < ShopProxy.Inst.SoldierShopServerData.chouNum2) {\n GlobalFunction.SetSpriteFrame(this.Sprite_one.getComponent(Sprite), \"ui_icon_zuanshi\");\n this.Label_one.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.chou2Dimond) + \"\";\n if(dataUser.Instance().diamond < ShopProxy.Inst.SoldierShopServerData.chou2Dimond){\n this.Label_one.getComponent(Label).color = Color.GRAY;\n }\n else{\n this.Label_ten.getComponent(Label).color = new Color(251, 249, 51, 255);\n }\n } else {\n this.Label_one.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.chouNum2) + \"\";\n this.Label_one.getComponent(Label).color = new Color(251, 249, 51, 255);\n }\n\n if (dataUser.Instance().call < ShopProxy.Inst.SoldierShopServerData.chouNum3) {\n GlobalFunction.SetSpriteFrame(this.Sprite_ten.getComponent(Sprite), \"ui_icon_zuanshi\");\n this.Label_ten.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.chou3Dimond) + \"\";\n if(dataUser.Instance().diamond < ShopProxy.Inst.SoldierShopServerData.chou3Dimond){\n this.Label_ten.getComponent(Label).color = Color.GRAY;\n }\n else{\n this.Label_ten.getComponent(Label).color = new Color(251, 249, 51, 255);\n }\n } else {\n this.Label_ten.getComponent(Label).color = new Color(251, 249, 51, 255);\n }\n let level = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.lv);\n\n if (ShopProxy.Inst.SoldierShopServerData.adNum == undefined) {\n this.Label_guanggao.getComponent(Label).color = Color.GRAY;\n } else {\n this.Label_guanggao.getComponent(Label).color = new Color(251, 249, 51, 255);\n }\n\n this.SoldierShop = SoldierEquipProxy.Inst.GetSoldiersShopDataByLv(level);\n if (this.SoldierShop != undefined) {\n let fenmuExp = this.SoldierShop.upNum;\n this.Label_soldiers.getComponent(Label).string = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.exp) + \"/\" + fenmuExp;\n this.ProgressBar_soldiers.getComponent(ProgressBar).progress = GlobalFunction.ConvertUndefinedToNumber(ShopProxy.Inst.SoldierShopServerData.exp) / fenmuExp;\n }\n this.Label_soldierslv.getComponent(Label).string = GlobalFunction.ShowLV(level);\n }\n\n /**英雄商城 */\n ShowShopHeroPack() {\n if (ShopProxy.Inst.GoodIdList != null && ShopProxy.Inst.GoodIdList.length > 0) {\n if (this.HeroShopList == null) {\n this.HeroShopList = [];\n }\n this.HeroShopList.length = 0;\n let heroShopList = ShopProxy.Inst.GetShopTypePack(ShopGoodType.yingxiong);\n for (let i = 0; i < ShopProxy.Inst.GoodIdList.length; ++i) {\n let goodid = ShopProxy.Inst.GoodIdList[i];\n let shopdata = heroShopList.find(item => item.goodsId == goodid);\n this.HeroShopList.push(shopdata);\n }\n this.prefabheros = this.heros;\n this.Layout_heros.removeAllChildren();\n for (let i = 0; i < this.HeroShopList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabheros);\n if (itemNode) {\n itemNode.parent = this.Layout_heros;\n let shopHeroData: Shop = this.HeroShopList[i];\n let Label_herosname = itemNode.getChildByName(\"Label_herosname\").getComponent(Label);\n Label_herosname.string = shopHeroData.lan_name;\n let Sprite_herosbg = itemNode.getChildByName(\"Sprite_herosbg\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herosbg, shopHeroData.icon);\n let Label_herosdouble = itemNode.getChildByName(\"Label_herosdouble\").getComponent(Label);\n Label_herosdouble.string = GlobalFunction.ConvertExtremelyNumber(shopHeroData.discount);\n //layout\n let Layout_herositem = itemNode.getChildByName(\"Layout_herositem\");\n let herositem = Layout_herositem.getChildByName(\"herositem\");\n let prefabitem = herositem;\n Layout_herositem.removeAllChildren();\n for (let t = 0; t < shopHeroData.ay_goods.length; t++) {\n let itemNode = instantiate(prefabitem);\n if (itemNode) {\n itemNode.parent = Layout_herositem;\n let Button_herositem = itemNode.getChildByName(\"Button_herositem\");\n let googid = shopHeroData.ay_goods[t];\n let itemdata = ItemProxy.Inst.GetItemDataByID(parseInt(googid));\n let Sprite_herositemkuang = Button_herositem.getChildByName(\"Sprite_herositemkuang\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_herositem = Button_herositem.getChildByName(\"Sprite_herositem\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositem, itemdata.icon);\n let Label_herositem = Button_herositem.getChildByName(\"Label_herositem\").getComponent(Label);\n Label_herositem.string = shopHeroData.ay_goodsNum[t];\n this.bindClickItemEvent(Button_herositem, Number(googid));\n }\n }\n\n let Button_herosbuy = itemNode.getChildByName(\"Button_herosbuy\");\n let Label_herosbuy = Button_herosbuy.getChildByName(\"Label_herosbuy\").getComponent(Label);\n Label_herosbuy.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType), shopHeroData.price) + \"\";\n this.bindClickHeroBuyEvent(Button_herosbuy, shopHeroData.goodsId);\n }\n }\n } else {\n this.Layout_heros.removeAllChildren();\n }\n\n //this.Layout_heros.position = new Vec3(this.Layout_heros.position.x, -(this.Layout_heros.position.y));\n }\n\n /**充值商城 */\n ShowShopRechargePack() {\n\n //星钻\n let rechargeXingzuanList = ShopProxy.Inst.GetShopTypePack(ShopGoodType.xingzhuan);\n let rechargezuanshiList = ShopProxy.Inst.GetShopTypePack(ShopGoodType.zhuanshi);\n if (this.Layout_star.children.length == 1) {\n this.prefabstar = this.star;\n this.Layout_star.removeAllChildren();\n for (let i = 0; i < rechargeXingzuanList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabstar);\n if (itemNode) {\n itemNode.parent = this.Layout_star;\n let shopHeroData: Shop = rechargeXingzuanList[i];\n\n let Button_star = itemNode.getChildByName(\"Button_star\");\n\n let Label_starbuy = Button_star.getChildByName(\"Label_starbuy\").getComponent(Label);\n Label_starbuy.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType), shopHeroData.price) + \"\";\n\n let Label_star = Button_star.getChildByName(\"Label_star\").getComponent(Label);\n Label_star.string = shopHeroData.ay_goodsNum[0];\n let Sprite_herosbg = Button_star.getChildByName(\"Sprite_star\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herosbg, shopHeroData.icon);\n\n let Sprite_double = Button_star.getChildByName(\"Sprite_double\");\n let Label_double = Sprite_double.getChildByName(\"Label_double\").getComponent(Label);\n let payinfodata = PayInfoProxy.Inst.GetPayInfoDataByID(shopHeroData.price);\n Sprite_double.active = ShopProxy.Inst.payInfoStartList[i].payed != 1;\n Label_double.string = payinfodata.firstNum + \"\";\n this.bindClickXingZuanBuyEvent(Button_star, payinfodata.id);\n }\n }\n // GlobalFunction.InItLayoutPostion(this.Layout_star.getComponent(Layout));\n //钻石\n this.prefabdiamond = this.diamond;\n this.Layout_diamond.removeAllChildren();\n for (let i = 0; i < rechargezuanshiList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdiamond);\n if (itemNode) {\n itemNode.parent = this.Layout_diamond;\n let shopHeroData: Shop = rechargezuanshiList[i];\n\n let Button_diamond = itemNode.getChildByName(\"Button_diamond\");\n // let Sprite_diamondbuy = Button_diamond.getChildByName(\"Sprite_diamondbuy\").getComponent(Sprite);\n // GlobalFunction.SetSpriteFrame(Sprite_herosbg,shopHeroData.icon);\n let Sprite_diamond = Button_diamond.getChildByName(\"Sprite_diamond\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_diamond, shopHeroData.icon);\n let Label_diamondbuy = Button_diamond.getChildByName(\"Label_diamondbuy\").getComponent(Label);\n Label_diamondbuy.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType), shopHeroData.price) + \"\";\n\n let Label_diamond = Button_diamond.getChildByName(\"Label_diamond\").getComponent(Label);\n Label_diamond.string = \"x\" + shopHeroData.ay_goodsNum[0];\n\n let payinfodata = PayInfoProxy.Inst.GetPayInfoDataByID(shopHeroData.price);\n\n let Sprite_double = Button_diamond.getChildByName(\"Sprite_double\");\n let Label_double = Sprite_double.getChildByName(\"Label_double\").getComponent(Label);\n\n Label_double.string = payinfodata.firstNum + \"\";\n Sprite_double.active = ShopProxy.Inst.payInfodiamondList[i].payed != 1;\n\n let Sprite_other = Button_diamond.getChildByName(\"Sprite_other\");\n let Label_other = Sprite_other.getChildByName(\"Label_other\").getComponent(Label);\n Label_other.string = payinfodata.otherNum + \"\";\n Sprite_other.active = ShopProxy.Inst.payInfodiamondList[i].payed == 1;\n this.bindClickDiamondEvent(Button_diamond, payinfodata.id);\n }\n }\n\n } else {\n\n //星钻\n for (let i = 0; i < rechargeXingzuanList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = this.Layout_star.children[i];\n if (itemNode) {\n let shopHeroData: Shop = rechargeXingzuanList[i];\n let Button_star = itemNode.getChildByName(\"Button_star\");\n let Label_starbuy = Button_star.getChildByName(\"Label_starbuy\").getComponent(Label);\n Label_starbuy.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType), shopHeroData.price) + \"\";\n let Label_star = Button_star.getChildByName(\"Label_star\").getComponent(Label);\n Label_star.string = shopHeroData.ay_goodsNum[0];\n let Sprite_herosbg = Button_star.getChildByName(\"Sprite_star\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herosbg, shopHeroData.icon);\n\n let Sprite_double = Button_star.getChildByName(\"Sprite_double\");\n let Label_double = Sprite_double.getChildByName(\"Label_double\").getComponent(Label);\n let payinfodata = PayInfoProxy.Inst.GetPayInfoDataByID(shopHeroData.price);\n Sprite_double.active = ShopProxy.Inst.payInfoStartList[i].payed != 1;\n Label_double.string = payinfodata.firstNum + \"\";\n }\n }\n\n //钻石\n for (let i = 0; i < rechargezuanshiList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = this.Layout_diamond.children[i];\n if (itemNode) {\n let shopHeroData: Shop = rechargezuanshiList[i];\n\n let Button_diamond = itemNode.getChildByName(\"Button_diamond\");\n let Sprite_diamond = Button_diamond.getChildByName(\"Sprite_diamond\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_diamond, shopHeroData.icon);\n let Label_diamondbuy = Button_diamond.getChildByName(\"Label_diamondbuy\").getComponent(Label);\n Label_diamondbuy.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType), shopHeroData.price) + \"\";\n\n let Label_diamond = Button_diamond.getChildByName(\"Label_diamond\").getComponent(Label);\n Label_diamond.string = \"x\" + shopHeroData.ay_goodsNum[0];\n\n let payinfodata = PayInfoProxy.Inst.GetPayInfoDataByID(shopHeroData.price);\n\n let Sprite_double = Button_diamond.getChildByName(\"Sprite_double\");\n let Label_double = Sprite_double.getChildByName(\"Label_double\").getComponent(Label);\n\n Label_double.string = payinfodata.firstNum + \"\";\n Sprite_double.active = ShopProxy.Inst.payInfodiamondList[i].payed != 1;\n\n let Sprite_other = Button_diamond.getChildByName(\"Sprite_other\");\n let Label_other = Sprite_other.getChildByName(\"Label_other\").getComponent(Label);\n Label_other.string = payinfodata.otherNum + \"\";\n Sprite_other.active = ShopProxy.Inst.payInfodiamondList[i].payed == 1;\n }\n }\n\n }\n }\n\n /**限购商城*/\n ShowShopLastPack() {\n\n if (this.shopdaytype == ShopGoodType.xiangouday) {\n let rechargedayList = ShopProxy.Inst.GetShopTypePack(ShopGoodType.xiangouday);\n this.prefabday = this.day;\n this.Layout_day.removeAllChildren();\n let indexCount =Math.ceil(ShopProxy.Inst.GoodsServerList.length/2);\n for (let i = 0; i < ShopProxy.Inst.GoodsServerList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabday);\n if (itemNode) {\n itemNode.parent = this.Layout_day;\n let p_limit_goods = ShopProxy.Inst.GoodsServerList[i];\n let shopHeroData: Shop = rechargedayList.find(item => item.goodsId == p_limit_goods.goodsId);\n\n // if(ShopProxy.Inst.GoodsServerList!=undefined &&ShopProxy.Inst.GoodsServerList.length>0){\n // p_limit_goods = ShopProxy.Inst.GoodsServerList.find(item=>item.goodsId==shopHeroData.goodsId);\n // }\n let Button_day = itemNode.getChildByName(\"Button_day\");\n let btnback = Button_day.getChildByName(\"Sprite\");\n let numberday = 0;\n if (p_limit_goods) {\n if (p_limit_goods.num == undefined) {\n Button_day.getComponent(Sprite).grayscale = true;\n btnback.getComponent(Sprite).grayscale = true;\n } else {\n numberday = p_limit_goods.num;\n }\n }\n let Label_dayname = itemNode.getChildByName(\"Label_dayname\").getComponent(Label);\n Label_dayname.string = shopHeroData.lan_name + \"\\n\" + \"(\" + numberday + \"/\" + shopHeroData.limitCount + \")\";;\n let Sprite_day = itemNode.getChildByName(\"Sprite_day\").getComponent(Sprite);\n\n let indexcode =0;\n for(let index =1;index<=indexCount;index++){\n if(i<=2*(index-1) || i<=(index-1)*2 +1){\n indexcode=index;\n break;\n }\n }\n if(indexcode%2==0){\n\n GlobalFunction.SetSpriteFrame(Sprite_day,'ui_sc_tbdb08');\n }else{\n GlobalFunction.SetSpriteFrame(Sprite_day,'ui_sc_tbdb04');\n }\n\n let Sprite_daydouble = itemNode.getChildByName(\"Sprite_daydouble\");\n let Label_daydouble = Sprite_daydouble.getChildByName(\"Label_daydouble\").getComponent(Label);\n Label_daydouble.string = GlobalFunction.ConvertExtremelyNumber(shopHeroData.discount);\n\n\n let dayget = Button_day.getChildByName(\"dayget\");\n let daynum = Button_day.getChildByName(\"daynum\");\n // let Label_daybuy = daynum.getChildByName(\"Label_daybuy\").getComponent(Label);\n // Label_daybuy.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType),shopHeroData.price)+\"\";\n // daynum.active=parseInt(shopHeroData.coinType)==1;\n daynum.active = false;\n dayget.active = false;\n\n let daydiamond = Button_day.getChildByName(\"daydiamond\");\n\n let Sprite_daydiamond = daydiamond.getChildByName(\"Sprite_daydiamond\").getComponent(Sprite);\n let Label_daydiamond = daydiamond.getChildByName(\"Label_daydiamond\").getComponent(Label);\n daydiamond.active = true;\n if (p_limit_goods) {\n // daynum.active = p_limit_goods.num==undefined;\n // daydiamond.active = p_limit_goods.num!=undefined;\n if (shopHeroData.price == 0) {\n dayget.active = true;\n daydiamond.active = false;\n Sprite_daydouble.active = false;\n }\n }\n GlobalFunction.SetSpriteFrame(Sprite_daydiamond, ShopProxy.Inst.GetShopCoinIcon(parseInt(shopHeroData.coinType)));\n Label_daydiamond.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType), shopHeroData.price) + \"\";\n\n //child \n let Layout_dayitem = itemNode.getChildByName(\"Layout_dayitem\");\n let dayitem = Layout_dayitem.getChildByName(\"dayitem\");\n let prefabitem = dayitem;\n Layout_dayitem.removeAllChildren();\n for (let t = 0; t < shopHeroData.ay_goods.length; t++) {\n let itemNode = instantiate(prefabitem);\n if (itemNode) {\n itemNode.parent = Layout_dayitem;\n let googid = shopHeroData.ay_goods[t];\n let itemdata = ItemProxy.Inst.GetItemDataByID(parseInt(googid));\n if (itemdata) {\n let Button_dayitem = itemNode.getChildByName(\"Button_dayitem\");\n let Sprite_herositemkuang = Button_dayitem.getChildByName(\"Sprite_dayitemkaung\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_herositem = Button_dayitem.getChildByName(\"Sprite_dayitem\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositem, itemdata.icon);\n let Label_herositem = Button_dayitem.getChildByName(\"Label_dayitem\").getComponent(Label);\n Label_herositem.string = shopHeroData.ay_goodsNum[t];\n\n this.bindClickItemEvent(Button_dayitem, Number(googid));\n }\n }\n }\n if (p_limit_goods) {\n if (p_limit_goods.num != undefined) {\n this.bindClickDayEvent(Button_day, shopHeroData.goodsId);\n }\n }\n }\n }\n this.Label_timeday.active = true;\n this.Label_timeweek.active = false;\n // this.ScrollView_tujian.getComponent(ScrollView).scrollToTop(0.1);\n }\n\n if (this.shopdaytype == ShopGoodType.xiangouweek) {\n let rechargeweekList = ShopProxy.Inst.GetShopTypePack(ShopGoodType.xiangouweek);\n this.prefabweek = this.week;\n this.Layout_week.removeAllChildren();\n for (let i = 0; i < ShopProxy.Inst.GoodsServerList.length; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabweek);\n if (itemNode) {\n itemNode.parent = this.Layout_week;\n let p_limit_goods = ShopProxy.Inst.GoodsServerList[i];\n let shopHeroData: Shop = rechargeweekList.find(item => item.goodsId == p_limit_goods.goodsId);\n let Button_week = itemNode.getChildByName(\"Button_week\");\n let btnback = Button_week.getChildByName(\"Sprite\");\n let num = 0;\n if (p_limit_goods) {\n if (p_limit_goods.num == undefined) {\n Button_week.getComponent(Sprite).grayscale = true;\n btnback.getComponent(Sprite).grayscale = true;\n } else {\n num = p_limit_goods.num;\n }\n }\n let Label_dayname = itemNode.getChildByName(\"Label_weekname\").getComponent(Label);\n Label_dayname.string = shopHeroData.lan_name + \"\\n\" + \"(\" + num + \"/\" + shopHeroData.limitCount + \")\";\n\n let Sprite_daydouble = itemNode.getChildByName(\"Sprite_weekdouble\");\n let Label_daydouble = Sprite_daydouble.getChildByName(\"Label_weekdouble\").getComponent(Label);\n Label_daydouble.string = GlobalFunction.ConvertExtremelyNumber(shopHeroData.discount);\n\n let weeknum = Button_week.getChildByName(\"weeknum\");\n // let Label_daybuy = weeknum.getChildByName(\"Label_weekbuy\").getComponent(Label);\n // Label_daybuy.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType),shopHeroData.price)+\"\";\n // weeknum.active=parseInt(shopHeroData.coinType)==1;\n weeknum.active = false;\n let weekdiamond = Button_week.getChildByName(\"weekdiamond\");\n let Sprite_daydiamond = weekdiamond.getChildByName(\"Sprite_weekdiamond\").getComponent(Sprite);\n let Label_daydiamond = weekdiamond.getChildByName(\"Label_weekdiamond\").getComponent(Label);\n weekdiamond.active = true;\n\n GlobalFunction.SetSpriteFrame(Sprite_daydiamond, ShopProxy.Inst.GetShopCoinIcon(parseInt(shopHeroData.coinType)));\n Label_daydiamond.string = ShopProxy.Inst.GetShopCoinValue(parseInt(shopHeroData.coinType), shopHeroData.price) + \"\";\n\n //child \n let Layout_weekitem = itemNode.getChildByName(\"Layout_weekitem\");\n let weekitem = Layout_weekitem.getChildByName(\"weekitem\");\n let prefabitem = weekitem;\n Layout_weekitem.removeAllChildren();\n for (let t = 0; t < shopHeroData.ay_goods.length; t++) {\n let itemNode = instantiate(prefabitem);\n if (itemNode) {\n itemNode.parent = Layout_weekitem;\n let googid = shopHeroData.ay_goods[t];\n let itemdata = ItemProxy.Inst.GetItemDataByID(parseInt(googid));\n let Button_weekitem = itemNode.getChildByName(\"Button_weekitem\");\n let Sprite_herositemkuang = Button_weekitem.getChildByName(\"Sprite_weekitemkaung\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositemkuang, ItemProxy.Inst.GetItemKuangByColor(itemdata.color));\n let Sprite_herositem = Button_weekitem.getChildByName(\"Sprite_weekitem\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_herositem, itemdata.icon);\n let Label_herositem = Button_weekitem.getChildByName(\"Label_weekitem\").getComponent(Label);\n Label_herositem.string = shopHeroData.ay_goodsNum[t];\n\n this.bindClickItemEvent(Button_weekitem, Number(googid));\n }\n }\n if (p_limit_goods) {\n if (p_limit_goods.num != undefined) {\n this.bindClickWeekEvent(Button_week, shopHeroData.goodsId);\n }\n }\n }\n }\n this.Label_timeday.active = false;\n this.Label_timeweek.active = true;\n\n }\n\n\n }\n\n\n ShowDayDownTime() {\n\n let currentTime = GameModleComp.getInstance().serverTime;\n const days = Math.floor(currentTime / (3600 * 24));\n let tomorrowtime = (days + 1) * (3600 * 24);\n let different = tomorrowtime - currentTime;\n this.Label_timeday.active = true;\n this.Label_timeweek.active = false;\n let timelabel = this.Label_timeday.getComponent(Label);\n if (different > 0) {\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n this.timeDayCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n\n } else {\n this.unschedule(this.timeDayCallback);\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n }\n }\n this.schedule(this.timeDayCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n }\n }\n\n ShowWeekDownTime() {\n var today = new Date();\n var dayOfWeek = today.getDay();\n if (dayOfWeek == 0) {\n dayOfWeek = 7\n }\n let currentTime = GameModleComp.getInstance().serverTime;\n const weeks = Math.floor(currentTime / (3600 * 24));\n let weektime = (weeks + (8 - dayOfWeek)) * (3600 * 24);\n this.Label_timeday.active = false;\n this.Label_timeweek.active = true;\n let timelabel = this.Label_timeweek.getComponent(Label);\n let different = weektime - currentTime;\n if (different > 0) {\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n this.timeWeekCallback = function (dt) {\n if (different > 0) {\n different--;\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n } else {\n this.unschedule(this.timeWeekCallback);\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(different);\n }\n }\n this.schedule(this.timeWeekCallback, 1.0);\n } else {\n timelabel.string = TimePoxy.Inst.ShowTimeLabelNumberAll(0);\n }\n\n }\n //抽獎動畫\n public zhsoldier_Hit() {\n SoundManager.getInstance().playEffectMusic(\"Capsule\");\n this.soldierswait.active = false;\n this.soldiersopen.active = true;\n this.skeleton.setAnimation(0, \"e_ui_shop_niudan_call_start\", false);\n this.skeleton.setCompleteListener((trackEntry) => {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n switch (name) {\n case \"e_ui_shop_niudan_call_start\":\n // this.skeleton.setAnimation(0, \"e_ui_shop_niudan_call_wait\", false);\n ShopProxy.Inst.SendC1211(this.index);\n break;\n default:\n break;\n }\n });\n }\n\n //购买 英雄提升禮包\n bindClickHeroBuyEvent(itemnode: Node, goodid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickHeroGood\";\n clickEventHandler.customEventData = goodid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickHeroGood(itemnode, heroGoodid) {\n let goodid = parseInt(heroGoodid)\n let shopdata = ShopProxy.Inst.GetShopDataByID(goodid);\n let key = this.node.name + this.Panle_heros.name;\n GlobalFunction.ShowNotEnougthNumber(shopdata.price, CoinType.xingzhuan, goodid, 1, key, () => { this.BuyHeroLiBao(goodid)}, () => { this.jumpShopPuop(ShopCoinType.xingzuan) });\n }\nBuyHeroLiBao(goodid :number){\n ShopProxy.Inst.isOnClickBuyHero=true;\n ShopProxy.Inst.SendC1214(goodid, 1);\n}\n //购买 每日限购禮包\n bindClickDayEvent(itemnode: Node, goodid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickDay\";\n clickEventHandler.customEventData = goodid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickDay(itemnode, heroGoodid) {\n let goodid = parseInt(heroGoodid)\n let shopdata = ShopProxy.Inst.GetShopDataByID(goodid);\n let key = this.node.name + this.Panle_day.name;\n if (shopdata.price == 0) {\n ShopProxy.Inst.SendC1214(goodid, 1);\n } else {\n GlobalFunction.ShowNotEnougthNumber(shopdata.price, CoinType.xingzhuan, goodid, 1, key, () => { ShopProxy.Inst.SendC1214(goodid, 1) }, () => { this.jumpShopPuop(ShopCoinType.xingzuan) });\n }\n }\n\n //购买 每周限购禮包\n bindClickWeekEvent(itemnode: Node, goodid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickWeek\";\n clickEventHandler.customEventData = goodid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickWeek(itemnode, heroGoodid) {\n let goodid = parseInt(heroGoodid)\n let shopdata = ShopProxy.Inst.GetShopDataByID(goodid);\n let key = this.node.name + this.Panle_week.name;\n GlobalFunction.ShowNotEnougthNumber(shopdata.price, CoinType.xingzhuan, goodid, 1, key, () => { ShopProxy.Inst.SendC1214(goodid, 1) }, () => { this.jumpShopPuop(ShopCoinType.xingzuan) });\n }\n //购买 星钻\n bindClickXingZuanBuyEvent(itemnode: Node, payid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickXingZuanGood\";\n clickEventHandler.customEventData = payid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickXingZuanGood(itemnode, payid) {\n let payId = parseInt(payid)\n ShopProxy.Inst.SendC1215(payId);\n\n this.scheduleOnce(function() {\n let msg = GlobalFunction.GetMsg(40097);\n let strings :string[] =[msg];\n CommonMsgProxy.Inst.ShowCommonMsg(1010,strings); \n }, 0.4);\n\n\n // let payinfodata = PayInfoProxy.Inst.GetPayInfoDataByID(payId);\n // let shopdata = ShopProxy.Inst.GetShopDataByID(payinfodata.goodsId);\n // let itemid =parseInt(shopdata.ay_goods[0]);\n // let key = this.node.name+this.Panle_diamond.name;\n // GlobalFunction.ShowNotEnougthNumber(shopdata.price,CoinType.xingzhuan,itemid,key,() => {ShopProxy.Inst.SendC1215(payId);},null);\n }\n\n //购买 钻石\n bindClickDiamondEvent(itemnode: Node, payId: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickDiamond\";\n clickEventHandler.customEventData = payId + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickDiamond(itemnode, payId) {\n\n let payid = parseInt(payId);\n ShopProxy.Inst.SendC1215(payId);\n\n this.scheduleOnce(function() {\n let msg = GlobalFunction.GetMsg(20076);\n let strings :string[] =[msg];\n CommonMsgProxy.Inst.ShowCommonMsg(1010,strings); \n }, 0.4);\n \n }\n\n // //购买 金币\n // bindClickGoldBuyEvent(itemnode: Node, goodid: number) {\n // var clickEventHandler = new Component.EventHandler();\n // //这个 node 节点是你的事件处理代码组件所属的节点\n // clickEventHandler.target = this.node;\n // //这个是代码文件名\n // clickEventHandler.component = this.node.name;\n // clickEventHandler.handler = \"CallOnclickGold\";\n // clickEventHandler.customEventData = goodid + \"\";\n // itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n // }\n\n // CallOnclickGold(itemnode, heroGoodid) {\n\n // let goodid = parseInt(heroGoodid)\n // let shopdata = ShopProxy.Inst.GetShopDataByID(goodid);\n // let itemnum = parseInt(shopdata.ay_goodsNum[0]);\n // let key = this.node.name + this.Panle_gold.name;\n // GlobalFunction.ShowNotEnougthNumber(shopdata.price, CoinType.zuanshi, goodid, itemnum, key, () => { ShopProxy.Inst.SendC1214(goodid, 1) }, () => { this.jumpShopPuop(ShopCoinType.zuanshi) });\n\n // }\n\n public jumpShopPuop(cointype: ShopCoinType) {\n\n if (!this.Toggle_money.isChecked) {\n this.showPanel(this.Panle_money);\n this.showToggle(this.Toggle_money, this.PanleChildNodes);\n }\n if (cointype == ShopCoinType.zuanshi) {\n this.showMoneyPanel(this.Panle_diamond, this.ToggleNodes);\n this.showToggle(this.Toggle_diamond, this.ToggleChildNodes);\n }\n // else if (cointype == ShopCoinType.jinbi) {\n\n // this.showMoneyPanel(this.Panle_gold, this.ToggleNodes);\n // this.showToggle(this.Toggle_gold, this.ToggleChildNodes);\n // } \n else if (cointype == ShopCoinType.xingzuan) {\n\n this.showMoneyPanel(this.Panle_star, this.ToggleNodes);\n this.showToggle(this.Toggle_star, this.ToggleChildNodes);\n }\n }\n\n //点击道具\n bindClickItemEvent(itemnode: Node, itemid: number) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickItem\";\n clickEventHandler.customEventData = itemid + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclickItem(itemnode, itemids) {\n let itemid = parseInt(itemids)\n WindowManager.Instance().open(GameConst.winPath.ItenDecUI, itemid, true);\n }\n\n\n\n\n CloseMainBuffUI() {\n WindowManager.Instance().removeWindow(GameConst.winPath.OfflineUI, true);\n }\n\n protected onDestroy(): void {\n\n }\n\n onHide(): void {\n this.PanleNodes = null;\n this.ToggleNodes = null;\n this.ToggleOtherNodes = null;\n\n this.Panle_soldiers.active = false;\n this.Panle_heros.active = false;\n this.Panle_money.active = false;\n this.Panle_skin.active = false;\n this.Panle_last.active = false;\n\n this.Panle_star.active = false;\n this.Panle_diamond.active = false;\n // this.Panle_gold.active = false;\n\n this.Panle_day.active = false;\n this.Panle_week.active = false;\n ShopProxy.Inst.shopGoodType = undefined;\n this.unschedule(this.timeDayCallback);\n this.unschedule(this.timeWeekCallback);\n this.CloseMainBuffUI();\n }\n\n clearRes() {\n\n }\n\n /**士兵装备购买*/\n buySoldierEquip(index:number, needCallNum:number, needDiamonNum:number) {\n this.index = index; \n if (dataUser.Instance().call >= needCallNum) {\n // this.index = index;\n this.zhsoldier_Hit();\n } else { // 召唤券不足,通知后端,并用钻石继续购买(先弹出提示再购买)\n\n let key = this.node.name + this.Panle_soldiers.name;\n GlobalFunction.NotEnouthCostNum(needDiamonNum,CoinType.zuanshi,key,()=>{this.ActionsChange(needDiamonNum,key)},()=>{this.ClosePoup()});\n // if(dataUser.Instance().diamond >= needDiamonNum){\n // var data = new BoxData\n // {\n // data.content = StringUtil.stringFormat(GlobalFunction.GetMsg(30010),needDiamonNum);\n // data.title = GlobalFunction.GetMsg(10005),\n // data.buttonNames = [GlobalFunction.GetMsg(20007),GlobalFunction.GetMsg(20008)],\n // data.actions = [() => {this.zhsoldier_Hit}],\n // data.key = key\n // };\n // GlobalFunction.ShowBox(data, BoxStyle.BoxStyle4);\n // }\n // else{ // 钻石不足,走钻石不足,弹出充值流程\n // CommonMsgProxy.Inst.ShowCommonMsg(1008, [GlobalFunction.GetMsg(20076)], () => { this.jumpShopPuop(ShopCoinType.zuanshi) },key); \n // }\n }\n }\n\n ActionsChange(needDiamonNum,key){ //钻石充足直接购买\n var data = new BoxData\n {\n data.content = StringUtil.stringFormat(GlobalFunction.GetMsg(30010),needDiamonNum);\n data.title = GlobalFunction.GetMsg(10005),\n data.buttonNames = [GlobalFunction.GetMsg(20007),GlobalFunction.GetMsg(20008)],\n data.actions = [() => {this.BuysChange()}],\n data.key = key+\"not\"\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle4);\n }\n BuysChange(){\n FestivalTimeProxy.Inst.SendC1031(4);\n this.zhsoldier_Hit();\n }\n\nClosePoup(){ //钻石不足,直接挑战购买钻石界面\n this.jumpShopPuop(ShopCoinType.zuanshi);\n}\n}","/**\n * SignDay,SignTotal config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport {c1022, s1022, c1023, s1023,c1024, s1024, p_reward } from '../../../proto/proto';\nimport {res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\n@res_auto_bind()\nexport class SignProxy {\n private static _inst: SignProxy;\n static SignProxy: any;\n public static get Inst(): SignProxy {\n if (SignProxy._inst == null) {\n SignProxy._inst = new SignProxy();\n }\n return SignProxy._inst;\n }\n @res_assign(\"SignDay\")\n public SignDayDataList: SignDay[];\n public InitSignDayConfig() {\n if (this.SignDayDataList == null) {\n this.SignDayDataList = [];\n }\n let SignDayDataConfig = ConfigManager.GetInstance().getValue(\"SignDay\")\n for (var key in SignDayDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SignDay\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SignDayDataList.push(item);\n }\n\n }\n }\n\n @res_assign(\"SignTotal\")\n public SignTotalDataList: SignTotal[];\n public InitSignTotalConfig() {\n if (this.SignTotalDataList == null) {\n this.SignTotalDataList = [];\n }\n let SignTotalDataConfig = ConfigManager.GetInstance().getValue(\"SignTotal\")\n for (var key in SignTotalDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SignTotal\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SignTotalDataList.push(item);\n }\n\n }\n }\n /***==========================服务器数据存储============================== */\n public SignDayaServerData :s1022;\n\n public SendC1022(){\n var c1022: c1022 = {};\n send2client(\"c1022\", c1022);\n }\n\n public SendC1023(){\n var c1023: c1023 = {};\n console.log(\"===================发送1023================获取签到奖励数据=\");\n send2client(\"c1023\", c1023);\n }\n\n\n public SendC1024() {\n var c1024: c1024 = {};\n send2client(\"c1024\", c1024);\n }\n}\n\n/**获取签到数据信息 */\nexport function do_s1022(s1022: s1022){\n // console.log(\"===================接收是s1022================获取签到奖励数据=\"+s1022);\n if(s1022!=undefined){\n SignProxy.Inst.SignDayaServerData =s1022; \n EventManager.Inst.event(EventType.UPDATE_SIGN_UI);\n }\n}\n\n/**签到 */\nexport function do_s1023(s1023: s1023){\n\n\n if(s1023.result==undefined){\n console.log(\"===================接收是s1023============签到成功========\");\n if(s1023.rewards==undefined)return;\n var data = new BoxData\n {\n data.rewards = s1023.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n}\n\n\n/**领取累计奖励 */\nexport function do_s1024(s1024: s1024){\n if(s1024.result==undefined){\n // console.log(\"===================接收是s1024============领取累计奖励成功========\");\n if(s1024.rewards==undefined)return;\n var data = new BoxData\n {\n data.rewards = s1024.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n}\n\n\nexport class SignDay{\n /** 天数 */\n day: number;\n /** 奖励列表 */\n kv_rewards: Map;\n}\nexport class SignTotal{\n /** 天数 */\n day: number;\n /** 奖励列表 */\n kv_rewards: Map;\n}\n// export enum payType {\n// yuanbao = 1,//充值购买元宝\n// zhufu = 2,//祝福\n// libao = 3,//礼包\n// yingxiong = 4,//英雄\n// cunzhaung = 5,//村庄\n// gongchang = 6,//工厂\n// xiangouday = 7,//每日限购\n// xiangouweek = 8//每周限购\n// }\n","import { _decorator } from 'cc';\nexport default class Singleton {\n static Instance(this: new () => T): T {\n if (!(this).instance) {\n (this).instance = new this();\n }\n return (this).instance;\n }\n}\n\n","import { Component } from \"cc\";\r\nimport { SkillModelComp } from \"./SkillModelComp\";\r\nimport { SkillIntervalComp } from \"./SkillInterval\";\r\n\r\nexport class Skill extends Component {\r\n // 数据层\r\n SkillModel!: SkillModelComp;\r\n skillInterval:SkillIntervalComp = null;\r\n init() {\r\n this.SkillModel = new SkillModelComp();\r\n }\r\n\r\n desTory() {\r\n this\r\n this.node.destroy();\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { EffectBallistic, ISkillReport, ISkillReportHit } from \"./SkillEnum\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { EffectSingleCase, IEffectParams } from \"./EffectSingleCase\";\r\nimport { BulletView } from \"./BulletView\";\r\nimport { EffectDamage, EffectRecovery, SkillEtype } from \"./SkillInterface\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { numberDump } from \"../../../@types/packages/scene/@types/cce/export/dump/types/number-dump\";\r\nimport { BulletZhiView } from \"./BulletZhiView\";\r\nimport { BulletTriggerEvent } from \"./BulletTriggerEvent\";\r\nimport { BulletYuanView } from \"./BulletYuanView\";\r\nimport { BulletXuLiTriggerEvent } from \"./BulletXuLiTriggerEvent\";\r\nimport { HeroView } from \"../role/HeroView\";\r\n\r\n/** \r\n * 技能战报动画逻辑\r\n * 设计思路:\r\n * 1、自定义技能动画逻辑与自定义效果计算逻辑分离是为了后续将计算逻辑直接复制到服务器做数值验证用 \r\n * 2、模板可实现自定义释放、弹道、受击、飘血提示动画\r\n */\r\nexport class SkillAnimator {\r\n /** 战报数据 */\r\n isr: ISkillReport;\r\n\r\n /** 施放动画(通用) */\r\n casting() {\r\n // Logger.logView(`【${this.isr.skill.SkillModel.table.id}】技能释放动画`);\r\n this.animCasting();\r\n }\r\n\r\n /** 施放者自身技能动画(多态) */\r\n protected animCasting() {\r\n this.onAttack();\r\n }\r\n\r\n /** \r\n * 攻击动画事件触发 \r\n * 1、有弹道动画优先播放\r\n * 2、无弹道触发目标受击流程\r\n */\r\n private onAttack() {\r\n // 弹道技能\r\n if (this.isr.skill.SkillModel.table.bulletmodel && this.isr.skill.SkillModel.table.bulletmodel.length > 0) {\r\n // Logger.logView(`【${this.isr.skill.SkillModel.table.bulletmodel}】技能弹道动画`);\r\n this.isr.hits.forEach(hit => {\r\n if (hit.target instanceof GebolinView)\r\n hit.target.onHit = this.onRoleHitList.bind(this, this.isr.hits);\r\n else if (hit.target instanceof BossView)\r\n hit.target.onHit = this.onRoleHitList.bind(this, this.isr.hits);\r\n else if(hit.target instanceof HeroView)\r\n hit.target.onHit = this.onRoleHitList.bind(this, this.isr.hits);\r\n });\r\n this.animBallistic();\r\n }\r\n // 瞬发技能\r\n else {\r\n let caster: BaseRole = this.isr.caster\r\n this.isr.hits.forEach(hit => {\r\n this.onRoleHit(hit, caster);\r\n });\r\n // this.animNone();\r\n }\r\n }\r\n /**瞬发技能*/\r\n protected async animNone(){\r\n this.isr.hits.forEach(async hit => {\r\n if (hit.effect instanceof EffectBallistic && !(hit.caster instanceof Vec3)){\r\n (hit.target as BaseRole).showHit(this.isr.skill);\r\n }\r\n })\r\n }\r\n /** 基础攻击 弹道动画(多态) */\r\n protected async animBallistic() {\r\n this.isr.hits.forEach(async hit => {\r\n if (hit.effect instanceof EffectBallistic && !(hit.caster instanceof Vec3)) {\r\n let scene = GameEntry.Inst.mapView.nowScene;\r\n let num = 1\r\n\r\n let _splitAngle: Array = [0];\r\n const len = Math.floor(num / 2);\r\n const a = 0;\r\n for (let i = 0; i < len; i++) {\r\n _splitAngle.push(-a * (i + 1));\r\n _splitAngle.push(a * (i + 1));\r\n }\r\n if (num && this.isr.skill.SkillModel && this.isr.skill.SkillModel.ballisticCls) {\r\n for (let i = 0; i < num; i++) {\r\n let rv = hit.caster.node;\r\n let test;\r\n if (rv.position) {\r\n let node = await EffectSingleCase.instance.loadAndShow(this.isr.skill.SkillModel.ballisticRes, scene.EffectLayer);\r\n if(this.isr.skill.SkillModel.table.frameEvent && this.isr.skill.SkillModel.table.frameEvent.length > 0){\r\n if(this.isr.skill.SkillModel.table.skillType == SkillEtype.Fang ){\r\n test = node.getComponent(BulletTriggerEvent);\r\n }\r\n if(this.isr.skill.SkillModel.table.skillType == SkillEtype.Yuan ){\r\n test = node.getComponent(BulletTriggerEvent);\r\n // test.init(this.isr.skill);\r\n }\r\n if(this.isr.skill.SkillModel.table.skillType == SkillEtype.Xuli ){\r\n test = node.getComponent(BulletXuLiTriggerEvent);\r\n // test.init(this.isr.skill);\r\n }\r\n }\r\n if (this.isr.skill.SkillModel && this.isr.skill.SkillModel.ballisticCls) {\r\n let comp =\r\n node.getComponent(this.isr.skill.SkillModel.ballisticCls) as BulletView ||\r\n node.addComponent(this.isr.skill.SkillModel.ballisticCls) as BulletView;\r\n comp.initBullet();\r\n comp.caster = this.isr.caster;\r\n comp.toRemoveYuan = false;\r\n comp.canCollision = true;\r\n comp.isPao = false;\r\n let tp: Vec3;\r\n if (hit.target instanceof Vec3) {\r\n tp = hit.target.clone();\r\n } else {\r\n let tv;\r\n if (hit.target instanceof GebolinView && hit.target) {\r\n tv = hit.target.node;\r\n } else if (hit.target instanceof BossView && hit.target) {\r\n tv = hit.target.node;\r\n } else {\r\n return;\r\n }\r\n tp = tv.position.clone();\r\n }\r\n let out: Vec3 = new Vec3();\r\n if (tp.x) {\r\n Vec3.rotateZ(out, tp, rv.position, _splitAngle[0])\r\n if (!(hit.target instanceof Vec3)) {\r\n comp.target = hit.target;\r\n comp.penetrate = 0;\r\n }\r\n comp.targetPos = this.getTarget(out,hit);//out;\r\n comp.skill = this.isr.skill;\r\n comp.speed = this.isr.skill.SkillModel.table.flySpeed;\r\n comp.distance = this.isr.skill.SkillModel.table.attackDistance;\r\n comp.rotate = \"1\";\r\n comp.onHit = this.onRoleHit.bind(this, hit);\r\n comp.launch(_splitAngle[i]);\r\n node.active = true;\r\n if(test){\r\n test.init(this.isr.skill);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n private getTarget(out: Vec3,hit: ISkillReportHit):Vec3{\r\n if(this.isr.skill.SkillModel.table.isNomAttack){\r\n return out;\r\n }\r\n if(this.isr.skill.SkillModel.getSkillAttType()==SkillEtype.Zhi){\r\n if(!(hit.caster instanceof Vec3) && !(hit.target instanceof Vec3)){\r\n var angle =Math.atan2(hit.target.node.position.y - hit.caster.node.position.y , hit.target.node.position.x - hit.caster.node.position.x);\r\n let x= hit.caster.node.position.x+ this.isr.skill.SkillModel.table.fanwei.x*100 * Math.cos(angle)\r\n let y= hit.caster.node.position.y + this.isr.skill.SkillModel.table.fanwei.x*100 * Math.sin(angle);\r\n return new Vec3(x , y , 0);\r\n }\r\n }\r\n if(this.isr.skill.SkillModel.getSkillAttType()==SkillEtype.Fang){\r\n return new Vec3((hit.target as BaseRole).node.position.x , (hit.target as BaseRole).node.position.y , 0);\r\n }\r\n if(this.isr.skill.SkillModel.getSkillAttType()==SkillEtype.Yuan){\r\n return new Vec3((hit.target as BaseRole).node.position.x , (hit.target as BaseRole).node.position.y , 0);\r\n }\r\n if(this.isr.skill.SkillModel.getSkillAttType()==SkillEtype.Xuli){\r\n if(!(hit.caster instanceof Vec3) && !(hit.target instanceof Vec3)){\r\n var angle =Math.atan2(hit.target.node.position.y - hit.caster.node.position.y , hit.target.node.position.x - hit.caster.node.position.x);\r\n let x= hit.caster.node.position.x+ this.isr.skill.SkillModel.table.fanwei.x*100 * Math.cos(angle)\r\n let y= hit.caster.node.position.y + this.isr.skill.SkillModel.table.fanwei.x*100 * Math.sin(angle);\r\n return new Vec3(x , y , 0);\r\n }\r\n }\r\n }\r\n\r\n onRoleHitList(hits: ISkillReportHit[]) {\r\n let caster: BaseRole = this.isr.caster\r\n hits.forEach(hit => {\r\n this.onRoleHit(hit, caster);\r\n });\r\n }\r\n\r\n /** 受击事件触发 */\r\n onRoleHit(hit: ISkillReportHit, caster: BaseRole) {\r\n if (hit && hit.effect && hit.effect instanceof EffectDamage) {\r\n this.onEffectDamage(hit, caster);\r\n }\r\n // else if (hit.effect instanceof EffectRecovery) {\r\n // this.onEffectRecovery(hit, caster);\r\n // }\r\n // else if (hit.effect instanceof this.onEffectBuff) {\r\n // // this.onEffectBuff(hit, caster);\r\n // }\r\n // else if (hit.effect instanceof this.onEffectTrap) {\r\n // this.onEffectTrap(hit, caster);\r\n // }\r\n }\r\n\r\n protected onEffectDamage(hit: ISkillReportHit, caster: BaseRole) {\r\n // 添加生命变化动画队列中\r\n if (hit.target instanceof BossView) {\r\n if (hit.target && GameEntry.Inst.mapView.nowScene.hpPrompt) {\r\n GameEntry.Inst.mapView.nowScene.hpPrompt.addHit(hit)\r\n // 死亡动作\r\n // hit.target.die();\r\n }\r\n } else if (hit.target instanceof GebolinView) {\r\n GameEntry.Inst.mapView.nowScene.hpPrompt.addHit(hit);\r\n // 死亡动作\r\n // hit.target.die();\r\n } else if (hit.target instanceof HeroView) {\r\n GameEntry.Inst.mapView.nowScene.hpPrompt.addHit(hit);\r\n // 死亡动作\r\n // hit.target.die();\r\n }\r\n }\r\n protected onEffectRecovery(hit: ISkillReportHit, caster: BaseRole) {\r\n // 受击特效\r\n // RoleEffect.skill(this.isr.skill, hit);\r\n // if (hit.target instanceof Monster) {\r\n // smc.nowScene.MapView.nowScene.hpPrompt.addHit(hit)\r\n // hit.target.MonsterModel.changeHp(hit);\r\n // // let mcfg = GameConfigManager.monsterCfg.getData(hit.target.MonsterModel.monsterCfgId);\r\n // // if (mcfg.type != 2) {\r\n // hit.target.monsterSpine.hit(hit.target);\r\n // // }\r\n // } else if (hit.target instanceof Role) {\r\n // // 添加生命变化动画队列中\r\n // // hit.target.RoleView.hpPrompt.addHit(hit);\r\n // smc.nowScene.MapView.nowScene.hpPrompt.addHit(hit);\r\n // hit.target.RoleModel.changeHp(hit);\r\n // }\r\n }\r\n\r\n protected onEffectBuff(hit: ISkillReportHit, caster: BaseRole) {\r\n // RoleHit.buff(hit, hit.effect as EffectBuff);\r\n // if (hit.target instanceof Monster) {\r\n // if (BuffAbility.moveNotAllowed(hit.target)) { \r\n // hit.target.MonsterView.strongIdle();\r\n // }\r\n // } else if (hit.effect && hit.effect instanceof EffectBuff && hit.effect.buff && hit.effect.buff.OpsModel && hit.effect.buff.OpsModel.casting) {\r\n // let tg = hit.effect.buff.OpsModel.casting.target;\r\n // if (tg instanceof Monster) {\r\n // if (BuffAbility.moveNotAllowed(tg)) { \r\n // tg.MonsterView.strongIdle();\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n protected onEffectTrap(hit: ISkillReportHit, caster: BaseRole) {\r\n // RoleHit.trap(hit, hit.effect as EffectTrap);\r\n // if (hit.target instanceof Monster) {\r\n // hit.target.monsterSpine.hit(hit.target);\r\n // }\r\n }\r\n}","import { Vec3 } from \"cc\";\r\nimport { Skill } from \"./Skill\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { ISkillReport, SkillCfgRecord } from \"./SkillEnum\";\r\nimport { BattleReport } from \"./BattleReport\";\r\nimport { SkillIntervalComp } from \"./SkillInterval\";\r\nimport { Operate } from \"./Operate\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { HeroView } from \"../role/HeroView\";\r\n\r\n/** \r\n * 技能施放流程 \r\n * 1、对象处理时能获取技能施放者与技能目标信息,技能目标可以是角色或地面坐标的范围技能\r\n * 2、对象处理时能获取战斗场景中所有角色信息、所有战斗环境信息,辅助技能效果验证\r\n * \r\n * 辅助计算工具\r\n * 1、伤害计算\r\n * 2、恢复计算\r\n * 3、死亡、复活流程处理\r\n * 4、属性叠加\r\n * 5、属性覆盖\r\n * 6、分类战报生成工具\r\n * 7、技能触发条件验证工具\r\n * \r\n * 技能自定义施放条件配置\r\n * \r\n * 技能自定义效果配置\r\n * \r\n */\r\nexport class SkillCasting {\r\n /** 当前施放的技能 */\r\n skill: Skill = null!;\r\n /** 技能发起者 */\r\n caster: BaseRole = null!;\r\n /** 玩家选中的技能释放目标或技能目标点 */\r\n target: BaseRole | Vec3 = null!;\r\n actionTarget: BaseRole | Vec3 = null!;\r\n\r\n adsorbVec3: Vec3 = null!;\r\n /** 技能释放生成的动画战报数据 */\r\n srs: ISkillReport[] = [];\r\n /** 获取当前等级的技能配置数据 */\r\n config() {\r\n }\r\n /** \r\n * 自动选目标(默认选施放者最近的一个目标) \r\n * @return 返回true为找到目标可以释放技能,返回false为没找到目标无法释放技能\r\n */\r\n autoSelectTarget(): boolean {\r\n return false\r\n }\r\n /** ----------技能事件---------- */\r\n /** 主动技能施放逻辑 */\r\n onCasting() {\r\n // 技能施放战报\r\n var sr = BattleReport.casting(this, this.target);\r\n if (this.skill.SkillModel.table.skillcd > 0) {\r\n }\r\n this.onAttack(sr);\r\n }\r\n /** 普通攻击时 */\r\n onAttack(sr: ISkillReport) {\r\n if (this.skill.SkillModel.table.isNomAttack) {\r\n if (this.target instanceof GebolinView || this.target instanceof BossView || this.target instanceof HeroView) {\r\n Operate.ops(this.caster, this.target, this.skill, 0, sr, null);\r\n }\r\n } else {\r\n Operate.ops(this.caster, this.target, this.skill, 0, sr, null);\r\n }\r\n }\r\n /** 学会后常驻 */\r\n onPassive() {\r\n let sr:ISkillReport = BattleReport.casting(this, this.caster);\r\n BattleReport.skill(sr, this.caster, null, this.caster);\r\n // 技能动画配置中有自定义技能动画则选用,否则使用默认技能动画\r\n var animator = this.skill.SkillModel.animator;\r\n animator.isr = sr;\r\n animator.casting();\r\n }\r\n /** 受击技能释放逻辑 */\r\n onHits() {\r\n }\r\n /** 单次伤害 */\r\n onDamage(value: number) {\r\n }\r\n\r\n}\r\n\r\n","/**\n * skill config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class SkillEffectProxy {\n private static _inst: SkillEffectProxy;\n public static get Inst(): SkillEffectProxy {\n if (SkillEffectProxy._inst == null) {\n SkillEffectProxy._inst = new SkillEffectProxy();\n }\n return SkillEffectProxy._inst;\n }\n @res_assign(\"SkillEffect\")\n public SkillDataList: SkillEffect[];\n public InitSkillsConfig() {\n\n if (!this.SkillDataList) {\n this.SkillDataList = [];\n }\n let SkillDataConfig = ConfigManager.GetInstance().getValue(\"SkillEffect\")\n for (var key in SkillDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SkillEffect\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SkillDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取item */\n public GetSkillEffByID(id: number) {\n if (this.SkillDataList == null) {\n this.InitSkillsConfig();\n }\n let data: SkillEffect = this.SkillDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n}\nexport class SkillEffect{\n /**效果id*/\n id: number; //技能id\n /**效果的类型*/\n eType :number;//名称\n /**数值类型 0:数值 1:百分比*/\n vType: number; //技能效果列表\n ay_value: string[]; //技能效果列表\n /**效果数值*/\n value: number; //描述1\n /**触发几率 0-100 百分比触发*/\n rate: string[]; //参数\n /*时间**/\n round: number; //攻击动作\n /**生效类型 0:all 1:敌方 2:友方*/\n ay_atkCond: Array; //击中动作\n ay_object:Array;\n\n}","import { Vec3 } from \"cc\";\r\nimport { Skill } from \"./Skill\";\r\nimport { EffectDamage, EffectRecovery } from \"./SkillInterface\";\r\nimport { BaseRole } from \"../role/Role\";\r\nimport { Buff } from \"../modules/game/proxy/BuffPoxy\";\r\n\r\n/** 受击效果 */\r\nexport type Effect = EffectDamage | EffectRecovery | EffectBallistic | EffectBuff;\r\n/** 受击特效位置类型 */\r\nexport enum HitPosType {\r\n /** 最上层(后续有需求在扩展) */\r\n UP = 1,\r\n /** 脚底(通过在角色模型身上定位posEffect节点的位置) */\r\n DOWN,\r\n /** 都有(角色模型默认中心点为脚下) */\r\n FIX\r\n}\r\nexport enum MOVETYPE {\r\n LINE,\r\n ANGER,\r\n}\r\n\r\n/** 持续状态类效果 */\r\nexport class EffectBuff {\r\n /** 是否为添加到目标身上(true为添加,false移除) */\r\n addto: boolean = true;\r\n /** BUFF效果 */\r\n buff: Buff = null!;\r\n}\r\n\r\n/** 技能施放战报 */\r\nexport interface ISkillReport {\r\n /** 技能施放者 */\r\n caster: BaseRole,\r\n /** 玩家选中目标玩家或技能释放点(范围技能或陷阱技能) */\r\n target?: BaseRole | Vec3,\r\n /** 使用的技能 */\r\n skill: Skill,\r\n /** 受击目标 */\r\n hits: ISkillReportHit[],\r\n}\r\n\r\n/** 技能施放后的受击战报 */\r\nexport interface ISkillReportHit {\r\n /** 受击目标 */\r\n target: BaseRole | Vec3;\r\n /** ]攻击目标 */\r\n caster?: BaseRole | Vec3;\r\n /** 技能效果 */\r\n effect: Effect;\r\n}\r\n/**技能配置数据*/\r\nexport class SkillCfgRecord {\r\n /**技能伤害倍率*/\r\n skilllier: number = 1;\r\n /**技能固伤*/\r\n fixedge: number = 0;\r\n /**伤害类型 1:ad 2:ap 3:真伤 4:自适应*/\r\n damagetype: number = 1;\r\n /**伤害基准*/\r\n injuline: number = 1;\r\n\r\n attrid?: number = 0;\r\n}\r\n\r\n/** 陷阱状态类效果 */\r\nexport class EffectBallistic {\r\n /** 技能施放者 */\r\n caster: BaseRole;\r\n /** 玩家选中目标玩家或技能释放点(范围技能或陷阱技能) */\r\n target?: BaseRole | Vec3;\r\n\r\n skill: Skill;\r\n\r\n speed: number;\r\n\r\n distance: number;\r\n\r\n rotate: string;\r\n}\r\n\r\n\r\n/** 伤害变化类型 */\r\nexport enum DamageType {\r\n /** 标准 */\r\n Normal,\r\n /** 招架 */\r\n Parry,\r\n /** 格挡 */\r\n Block,\r\n /** 偏斜 */\r\n Skew,\r\n /** 暴击 */\r\n Critical,\r\n /** 免伤 */\r\n immune\r\n}","import { Vec2 } from \"cc\";\r\n\r\n/** 伤害效果 */\r\nexport class EffectDamage {\r\n /** 生命上限 */\r\n hpMax: number = 0;\r\n /** 当前生命(为零时死亡) */\r\n hp: number = 0;\r\n /** 角色状态 */\r\n state: StateType = StateType.Alive;\r\n /** 伤害值(负为伤害,正为恢复) */\r\n value: number = 0;\r\n /**攻击类型*/\r\n damageType: DamageType = DamageType.Normal;\r\n\r\n recvover?: EffectRecovery;\r\n mpRecvover?: EffectMpRecovery;\r\n\r\n splash?: boolean = false;\r\n\r\n iskill: number = 0;\r\n /** 是否普通攻击(0:普攻 1:技能) */\r\n isnormal: number = 0;\r\n}\r\n/** 角色状态类型 */\r\nexport enum StateType {\r\n /** 存活 */\r\n Alive,\r\n /** 死亡 */\r\n Die,\r\n /** 复活 */\r\n Revive\r\n}\r\n\r\n/** 伤害变化类型 */\r\nexport enum DamageType {\r\n /** 标准 */\r\n Normal,\r\n /** 招架 */\r\n Parry,\r\n /** 格挡 */\r\n Block,\r\n /** 偏斜 */\r\n Skew,\r\n /** 暴击 */\r\n Critical,\r\n /** 免伤 */\r\n immune\r\n}\r\n\r\n/** 恢复生命效果 */\r\nexport class EffectRecovery {\r\n /** 生命上限 */\r\n hpMax: number = 0;\r\n /** 当前生命 */\r\n hp: number = 0;\r\n /** 回复生命 */\r\n value: number = 0;\r\n}\r\n/** 恢复生命效果 */\r\nexport class EffectMpRecovery {\r\n /** 生命上限 */\r\n mpMax: number = 0;\r\n /** 当前生命 */\r\n mp: number = 0;\r\n /** 回复生命 */\r\n value: number = 0;\r\n}\r\n/** 恢复生命效果 */\r\nexport class NomAttack {\r\n /**是否是普通攻击*/\r\n isNomAttack:boolean = true;\r\n /**ID*/\r\n id:number = 101;\r\n /** 攻击距离 */\r\n attackDistance: number = 0;\r\n /** 攻速 */\r\n attackSpeed: number = 0;\r\n /** 伤害范围 */\r\n attackRange: number = 0;\r\n /**移速*/\r\n move : number = 0;\r\n /**弹道模型*/\r\n bulletmodel:string = \"\";\r\n /**击中效果*/\r\n hitEffect : string = \"\";\r\n /**飞行速度*/\r\n flySpeed : number = 0;\r\n /**音效*/\r\n atkSound : number = 0;\r\n /**技能CD*/\r\n skillcd :number = 0;\r\n /**技能效果列表*/\r\n ay_effects : Array = [];\r\n /**技能类型 方 圆 直*/\r\n skillType : SkillEtype = SkillEtype.Normal;\r\n /**是否有回弹*/\r\n haveHuitan : boolean = false;\r\n /**攻击范围*/\r\n fanwei:Vec2 = new Vec2(0,0)\r\n /**生效类型 1:英雄 2士兵 3敌方*/\r\n shengxiao:Array = []\r\n /**生效范围 1:友方 2敌方 3全体*/\r\n shengxiaoFanwei:Array = []\r\n /**直线类技能回弹数量*/\r\n huitanNum:number = 0;\r\n /**帧事件名字*/\r\n frameEvent:string = \"\";\r\n /**0:直线 1:抛物线*/\r\n flyType : number = 0;\r\n}\r\nexport enum SkillEtype{\r\n Normal,\r\n CD=1,\r\n Not=2,\r\n Yuan=3,\r\n Not1 = 4,\r\n Fang=5,\r\n Zhi=6,\r\n HuiTan=7,\r\n Count=8,\r\n BuffCount=9,\r\n Xuli=10,\r\n BossDan = 201,\r\n BossYuan = 202,\r\n BossFnag = 203,\r\n EndValue,\r\n}","import { Component } from \"cc\";\r\nimport { SkillTimer } from \"./SkillTimer\";\r\nimport { Skill } from \"./Skill\";\r\n\r\n/** 技能CD 触发 */\r\nexport class SkillIntervalComp extends Component {\r\n _timerDuration: SkillTimer = new SkillTimer();\r\n _skill:Skill;\r\n\r\n /** 技能持续时间 */\r\n set duration(value: number) {\r\n value = value <= 0 ? 0.001 : value;\r\n //属性CD //\r\n this._timerDuration.step = value;\r\n this._timerDuration.reset();\r\n }\r\n\r\n get remainder(): number {\r\n return (this._timerDuration.step - this._timerDuration.elapsedTime);\r\n }\r\n\r\n get progress(): number {\r\n return this._timerDuration.progress;\r\n }\r\n\r\n update(dt){\r\n if(this._skill && this._skill.skillInterval){\r\n var bi = this._skill.skillInterval;\r\n if (bi._timerDuration.update(dt)) {\r\n if(this._skill.SkillModel.table.isNomAttack){\r\n this._skill.SkillModel.casting.caster.skillIn1 = null;\r\n }else{\r\n this._skill.SkillModel.casting.caster.skillIn2 = null;\r\n }\r\n this._skill.skillInterval = null;\r\n }\r\n }\r\n }\r\n\r\n reset(): void {\r\n this._timerDuration.reset();\r\n }\r\n}","import { Component } from \"cc\";\r\nimport { HitPosType } from \"./SkillEnum\";\r\nimport { BulletViewFollow } from \"./BulletViewFollow\";\r\nimport { BulletViewsTraightLine } from \"./BulletViewsTraightLine\";\r\nimport { SkillCasting } from \"./SkillCasting\";\r\nimport { SkillAnimator } from \"./SkillAnimator\";\r\nimport { NomAttack, SkillEtype } from \"./SkillInterface\";\r\nimport { GameConfigHelper } from \"../modules/game/GameConfigHelper\";\r\nimport { SoldierProxy, Soldiers } from \"../modules/game/proxy/SoldierProxy\";\r\nimport { Skill } from \"./Skill\";\r\nimport { SkillProxy, Skills } from \"../modules/game/proxy/SkillProxy\";\r\nimport { SkillEffect, SkillEffectProxy } from \"../modules/game/proxy/SkillEffectProxy\";\r\nimport { Vec2 } from \"cc\";\r\nimport { BulletZhiView } from \"./BulletZhiView\";\r\nimport { BulletZhiHuiView } from \"./BulletZhiHuiView\";\r\nimport { BulletFangView } from \"./BulletFangView\";\r\nimport { numberDump } from \"../../../@types/packages/scene/@types/cce/export/dump/types/number-dump\";\r\nimport { BulletYuanView } from \"./BulletYuanView\";\r\nimport { BulletXuliView } from \"./BulletXuliView\";\r\nimport { GebolinView } from \"../role/GebolinView\";\r\nimport { BossView } from \"../role/BossView\";\r\nimport { HeroView } from \"../role/HeroView\";\r\nimport { RoleTypeEnum } from \"../enum/Enum\";\r\nimport { Monster, MonsterPoxy } from \"../modules/game/proxy/MonsterPoxy\";\r\nimport { Hero, HeroProxy } from \"../modules/game/proxy/HeroProxy\";\r\nimport { BulletPaoView } from \"./BulletPaoView\";\r\nimport { SpineGmView } from \"../modules/game/mainui/SpineGmView\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { dataUser } from \"../modules/gameData/dataUser\";\r\nimport { dataBuff } from \"../modules/gameData/dataBuff\";\r\n\r\nexport class SkillModelComp extends Component {\r\n /** 技能编号 */\r\n public get id(): number {\r\n return this.table.id;\r\n }\r\n public set id(value: number) {\r\n this.casting = new SkillCasting();\r\n this.animator = new SkillAnimator();\r\n this.table = new NomAttack();\r\n this.table.id = value;\r\n }\r\n /** 技能策划配置表 */\r\n table: NomAttack;\r\n /** 技能数值逻辑对象 */\r\n casting: SkillCasting = null!;\r\n /** 技能动画逻辑对象 */\r\n animator: SkillAnimator = null!;\r\n /** 弹道动画资源 */\r\n get ballisticRes(): string {\r\n return `prefabs/skill/`+this.table.bulletmodel;\r\n }\r\n /** 受击资源 */\r\n get ballisticHitRes(): string {\r\n return `prefabs/skill/`+this.table.hitEffect;\r\n }\r\n\r\n /** \r\n * 飞弹动画类型 \r\n */\r\n get ballisticCls(): any {\r\n if(this.table.isNomAttack){\r\n if(GameModleComp.getInstance().openSpineGm){\r\n if(SpineGmView.isPaoWuXian){\r\n return BulletPaoView;\r\n }\r\n return BulletViewFollow;\r\n }else{\r\n if(this.table.flyType){\r\n return BulletPaoView;\r\n }\r\n return BulletViewFollow;\r\n }\r\n }else if(this.table.skillType == SkillEtype.Zhi){\r\n if(this.table.huitanNum){\r\n return BulletZhiHuiView;\r\n }else{\r\n return BulletZhiView;\r\n }\r\n }else if(this.table.skillType == SkillEtype.Fang){\r\n return BulletFangView;\r\n }else if(this.table.skillType == SkillEtype.Yuan){\r\n return BulletYuanView;\r\n }else if(this.table.skillType == SkillEtype.Xuli){\r\n return BulletXuliView;\r\n }\r\n }\r\n\r\n /** 受击动画资源 */\r\n get hitRes(): string {\r\n // if (this.table.layer > 0) {\r\n // let hitceids = this.table.hitceid.split(',');\r\n // return \"\";\r\n // // return `${smc.scene.MapModel.skillPath}/hit/${hitceids[this.table.layer - 1]}`;\r\n // }\r\n return \"\";\r\n // return `${smc.scene.MapModel.skillPath}/hit/${this.table.hitceid}`;\r\n }\r\n\r\n /**把普攻挂成技能*/\r\n showTable(isNomAtt:boolean = false , type:RoleTypeEnum ){\r\n if(isNomAtt){\r\n if(type == RoleTypeEnum.GeBuLin){\r\n let cfg:Soldiers = SoldierProxy.Inst.GetSoldiersDataByID(this.table.id);\r\n this.table.attackDistance = cfg.attackDistance*40;\r\n this.table.attackSpeed = cfg.attackSpeed;\r\n this.table.attackRange = cfg.attackRange;\r\n this.table.move = cfg.move;\r\n this.table.bulletmodel = cfg.bulletmodel;\r\n this.table.hitEffect = cfg.hitEffect;\r\n this.table.flySpeed = cfg.flySpeed;\r\n this.table.atkSound = cfg.atkSound;\r\n this.table.skillcd = cfg.attackSpeed;\r\n this.table.isNomAttack = isNomAtt;\r\n this.table.flyType = Number(cfg.flyType);\r\n }\r\n if(type == RoleTypeEnum.Hero){\r\n let cfg:Hero = HeroProxy.Inst.GetHeroDataByID(this.table.id);\r\n this.table.attackDistance = cfg.attackDistance*40;\r\n this.table.attackSpeed = cfg.attackSpeed;\r\n this.table.attackRange = 1;\r\n this.table.move = cfg.move;\r\n this.table.bulletmodel = cfg.bulletmodel;\r\n this.table.hitEffect = cfg.hitEffect;\r\n this.table.flySpeed = cfg.flySpeed;\r\n this.table.atkSound = 0;\r\n this.table.skillcd = cfg.attackSpeed;\r\n this.table.isNomAttack = isNomAtt;\r\n }\r\n if(type == RoleTypeEnum.Monster){\r\n // let cfg:Monster = MonsterPoxy.Inst.getMonsterById(this.table.id);\r\n // this.table.attackDistance = cfg.attackDistance*40;\r\n // this.table.attackSpeed = cfg.attackSpeed;\r\n // this.table.attackRange = cfg.attackRange;\r\n // this.table.move = 0;\r\n // this.table.bulletmodel = null;\r\n // this.table.hitEffect = cfg.hitEffect;\r\n // this.table.flySpeed = 0;\r\n // this.table.atkSound = 0;\r\n // this.table.skillcd = cfg.attackSpeed;\r\n // this.table.isNomAttack = isNomAtt;\r\n }\r\n }else{\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n this.table.attackSpeed = 150;\r\n this.table.attackRange = 4;\r\n this.table.move = 0;\r\n this.table.bulletmodel = cfg.bulletmodel;\r\n this.table.hitEffect = cfg.hitEffect;\r\n this.table.flySpeed = cfg.flySpeed;\r\n this.table.atkSound = cfg.atkSound;\r\n this.table.skillcd = this.getSkillCd();\r\n /**英雄存在全局技能CD缩减*/\r\n if(type == RoleTypeEnum.Hero){\r\n let cd1:number = this.getSkillCd()\r\n let cd:number = cd1 - (dataBuff.Instance().heroSkillCdSub/GameModleComp.getInstance().maxValue)*cd1;\r\n this.table.skillcd = cd >= 0 ? cd : 1;\r\n }\r\n this.table.isNomAttack = isNomAtt;\r\n this.table.ay_effects = cfg.ay_effects;\r\n this.table.skillType = this.getSkillAttType();\r\n this.table.haveHuitan = this.getSkillHaveHui();\r\n this.table.fanwei = this.getFanwei(this.table.skillType)\r\n this.table.shengxiao = this.getShengxiao(this.table.skillType)\r\n this.table.shengxiaoFanwei = this.shengxiaoFanwei(this.table.skillType)\r\n this.table.attackDistance = this.table.fanwei.x*40;\r\n this.table.huitanNum = this.getHuiTan();\r\n this.table.frameEvent = cfg.trigger;\r\n }\r\n }\r\n getHuiTan():number{\r\n if(this.table.skillType == SkillEtype.Zhi){\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n for(let i = 0 ; i < cfg.ay_effects.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(cfg.ay_effects[i]));\r\n if(temp.eType == SkillEtype.HuiTan){\r\n return temp.value;\r\n }\r\n }\r\n }\r\n return 0;\r\n }\r\n shengxiaoFanwei(key:SkillEtype):Array{\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n for(let i = 0 ; i < cfg.ay_effects.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(cfg.ay_effects[i]));\r\n if(temp.eType == key){\r\n let all = temp.ay_object;\r\n let arr:Array = [];\r\n for(let a = 0 ; a < all.length ; a++){\r\n arr[a] = Number(all[a]);\r\n }\r\n return arr;\r\n }\r\n }\r\n return null;\r\n }\r\n getShengxiao(key:SkillEtype):Array{\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n for(let i = 0 ; i < cfg.ay_effects.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(cfg.ay_effects[i]));\r\n if(temp.eType == key){\r\n let all = temp.ay_atkCond;\r\n let arr:Array = [];\r\n for(let a = 0 ; a < all.length ; a++){\r\n arr[a] = Number(all[a]);\r\n }\r\n return arr;\r\n }\r\n }\r\n return null;\r\n }\r\n getSkillCd():number{\r\n return this.getTypeByCfg(SkillEtype.CD);\r\n }\r\n getSkillAttType():SkillEtype{\r\n return this.getAttTypeByCfg();\r\n }\r\n getSkillHaveHui():boolean{\r\n return this.getHuitanByCfg(SkillEtype.HuiTan);\r\n }\r\n getFanwei(key:SkillEtype):Vec2{\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n for(let i = 0 ; i < cfg.ay_effects.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(cfg.ay_effects[i]));\r\n if(temp.eType == key){\r\n let all = temp.value;\r\n let v2:Vec2 = new Vec2();\r\n v2.x = all ? all : 0;\r\n v2.y = all ? all : 0;\r\n return v2;\r\n }\r\n }\r\n return new Vec2(0,0)\r\n }\r\n private getHuitanByCfg(key:SkillEtype):boolean{\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n for(let i = 0 ; i < cfg.ay_effects.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(cfg.ay_effects[i]));\r\n if(temp.eType == key){\r\n return true;\r\n }\r\n }\r\n return false\r\n }\r\n private getAttTypeByCfg():SkillEtype{\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n for(let i = 0 ; i < cfg.ay_effects.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(cfg.ay_effects[i]));\r\n if(temp.eType == SkillEtype.Fang){\r\n return SkillEtype.Fang;\r\n }\r\n if(temp.eType == SkillEtype.Yuan){\r\n return SkillEtype.Yuan;\r\n }\r\n if(temp.eType == SkillEtype.Zhi){\r\n return SkillEtype.Zhi;\r\n }\r\n if(temp.eType == SkillEtype.Xuli){\r\n return SkillEtype.Xuli;\r\n }\r\n if(temp.eType == SkillEtype.BossYuan){\r\n return SkillEtype.BossYuan;\r\n }\r\n if(temp.eType == SkillEtype.BossFnag){\r\n return SkillEtype.BossFnag;\r\n }\r\n }\r\n return SkillEtype.Normal;\r\n }\r\n private getTypeByCfg(key:SkillEtype):number{\r\n let cfg:Skills = SkillProxy.Inst.GetSkillDataByID(this.table.id);\r\n for(let i = 0 ; i < cfg.ay_effects.length ; i++){\r\n let temp:SkillEffect = SkillEffectProxy.Inst.GetSkillEffByID(Number(cfg.ay_effects[i]));\r\n if(temp.eType == key){\r\n return Number(temp.round);\r\n }\r\n }\r\n }\r\n\r\n getKillRes(lv: number = 1): string {\r\n return \"\";\r\n // return `${smc.scene.MapModel.skillPath}/hit/Skill_equip_9_026_Zhanlong`;\r\n }\r\n\r\n /** \r\n * 受击特效位置类型 \r\n */\r\n get hitPos(): HitPosType {\r\n return HitPosType.UP;\r\n }\r\n\r\n reset() {\r\n this.casting = null;\r\n /** 技能策划配置表 */\r\n this.table = null!;\r\n /** 技能数值逻辑对象 */\r\n this.casting = null!;\r\n /** 技能动画逻辑对象 */\r\n this.animator = null!;\r\n }\r\n}","/**\n * skill config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class SkillProxy {\n private static _inst: SkillProxy;\n public static get Inst(): SkillProxy {\n if (SkillProxy._inst == null) {\n SkillProxy._inst = new SkillProxy();\n }\n return SkillProxy._inst;\n }\n @res_assign(\"Skills\")\n public SkillDataList: Skills[];\n public InitSkillsConfig() {\n\n if (!this.SkillDataList) {\n this.SkillDataList = [];\n }\n let SkillDataConfig = ConfigManager.GetInstance().getValue(\"Skills\")\n for (var key in SkillDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Skills\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SkillDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取item */\n public GetSkillDataByID(id: number) {\n if (this.SkillDataList == null) {\n this.InitSkillsConfig();\n }\n let data: Skills = this.SkillDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n}\nexport class Skills{\n id: number; //技能id\n ay_effects: string[]; //技能效果列表\n lan_name :string;//名称\n lan_des: string; //描述1\n ay_params: string[]; //参数\n screen :number;//是否震屏\n bulletmodel: string; //攻击动作\n hitEffect: string; //击中动作\n icon: string; //图标\n /***飞行速度*/\n flySpeed : number;\n /**事件帧*/\n trigger : string;\n atkSound:number;\n}","/*\r\n * @Author: dgflash\r\n * @Date: 2023-01-19 11:09:38\r\n * @LastEditors: dgflash\r\n * @LastEditTime: 2023-01-19 14:28:05\r\n */\r\n\r\n/** \r\n * 定时跳动组件 \r\n * @example\r\n export class Test extends Component {\r\n // 创建一个定时跳动组件\r\n private timer: Timer = new Timer(1);\r\n\r\n update(dt: number) {\r\n if (this.timer.update(this.dt)) {\r\n console.log(每一秒触发一次);\r\n }\r\n }\r\n }\r\n */\r\n export class SkillTimer {\r\n callback: Function | null = null;\r\n \r\n private _elapsedTime: number = 0;\r\n \r\n get elapsedTime(): number {\r\n return this._elapsedTime;\r\n }\r\n \r\n private _step: number = -1;\r\n /** 触发间隔时间(秒) */\r\n get step(): number {\r\n return this._step;\r\n }\r\n set step(step: number) {\r\n this._step = step; // 每次修改时间\r\n this._elapsedTime = 0; // 逝去时间\r\n }\r\n \r\n get progress(): number {\r\n return this._elapsedTime / this._step;\r\n }\r\n \r\n constructor(step: number = 0) {\r\n this.step = step;\r\n }\r\n \r\n update(dt: number) {\r\n if (this.step <= 0) return false;\r\n \r\n this._elapsedTime += dt;\r\n \r\n if (this._elapsedTime >= this._step) {\r\n this._elapsedTime -= this._step;\r\n this.callback?.call(this);\r\n return true;\r\n }\r\n return false;\r\n }\r\n \r\n reset() {\r\n this._elapsedTime = 0;\r\n }\r\n \r\n stop() {\r\n this._elapsedTime = 0;\r\n this.step = -1;\r\n }\r\n }","import BasePanel from \"../../../core/component/BasePanel\";\nimport {_decorator,Node} from \"cc\";\nimport { Label } from \"cc\";\nimport { HeroProxy } from \"../proxy/HeroProxy\";\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\nimport { BuffPoxy } from \"../proxy/BuffPoxy\";\nimport { Vec3 } from \"cc\";\nimport { ClientRequest } from \"electron\";\nconst { ccclass, property } = _decorator;\n\n@ccclass(\"SkillUI\")\nexport default class SkillUI extends BasePanel {\n\n skillUiData :SkillUiData;\n @property(Node)Label_skill: Node | null = null;\n @property(Node)Panle_center: Node | null = null;\n \n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\"){\n this.close(true);\n }\n }\n onLoad(){\n }\n onShow(data: any): void {\n if(data ==undefined)return;\n this.skillUiData = data; \n let skilldec = this.Label_skill.getComponent(Label);\n skilldec.string = this.skillUiData.content;\n let center :Node = this.Panle_center;\n let postionx :number = this.skillUiData.node.position.x+100;\n let postiony :number = this.skillUiData.node.position.y+150;\n if(postionx>200){\n postionx=200;\n }\n let skilluipos :Vec3 = new Vec3(postionx,postiony,0);\n\n center.position=skilluipos;\n }\n}\nexport class SkillUiData {\n // /** id */\n content: string;\n // /** name */\n node: Node;\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { SoldiersEquip } from \"../proxy/SoldierEquipProxy\";\nconst { ccclass, property } = _decorator;\n@ccclass(\"SoldierEquipItem\")\nexport default class SoldierEquipItem extends BasePanel{\n @property(SoldiersEquip)SoldiersEquip :SoldiersEquip;\n}\n","/**\n * SoldiersEquip and SoldiersEquipUp config配置文件\n */\nimport { c1400, s1400, c1401, s1401, c1402, s1402, c1403, s1403, c1404, s1404, p_army_tuj, p_equip_lv } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { Prefab } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { GebolInTypeEnum } from \"../../../role/GebolinView\";\nimport { BuildType } from \"./BuildPoxy\";\nimport { size } from \"cc\";\nimport { HeroEquipColor } from \"./HeroEquipProxy\";\nimport { Logger } from \"../../../../core/common/log/Logger\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\n@res_auto_bind()\nexport class SoldierEquipProxy {\n private static _inst: SoldierEquipProxy;\n public static get Inst(): SoldierEquipProxy {\n if (SoldierEquipProxy._inst == null) {\n SoldierEquipProxy._inst = new SoldierEquipProxy();\n }\n return SoldierEquipProxy._inst;\n }\n /***==========================兵种武器 配置表 数据存储============================== */\n public SoldiersEquipMaps: Map = new Map();\n\n @res_assign(\"SoldiersEquip\") /***兵种武器数据配置表 */\n public InitSoldiersEquipConfig() {\n let SoldiersEquitConfig = ConfigManager.GetInstance().getValue(\"SoldiersEquip\")\n for (var key in SoldiersEquitConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SoldiersEquip\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n item.bigType = this.GetEquipBigType(item.type);\n item.smallType = this.GetEquipSmallType(item.type);\n this.SoldiersEquipMaps.set(item.id, item);\n }\n }\n }\n public GetEquipBigType(type: SoldiersEquipType) {\n let equipBigType = EquipBigType.EquipBigType0;\n if (type == SoldiersEquipType.equipType1 || type == SoldiersEquipType.equipType2 || type == SoldiersEquipType.equipType3) {\n equipBigType = EquipBigType.EquipBigType1;\n } else if (type == SoldiersEquipType.equipType4 || type == SoldiersEquipType.equipType5 || type == SoldiersEquipType.equipType6) {\n equipBigType = EquipBigType.EquipBigType2;\n } else if (type == SoldiersEquipType.equipType7 || type == SoldiersEquipType.equipType8 || type == SoldiersEquipType.equipType9) {\n equipBigType = EquipBigType.EquipBigType3;\n } else if (type == SoldiersEquipType.equipType10 || type == SoldiersEquipType.equipType11 || type == SoldiersEquipType.equipType12) {\n equipBigType = EquipBigType.EquipBigType4;\n }\n return equipBigType;\n }\n public GetEquipSmallType(type: SoldiersEquipType) {\n let equipSmallType = EquipSmallType.EquipSmallType0;\n if (type == SoldiersEquipType.equipType1 || type == SoldiersEquipType.equipType4 || type == SoldiersEquipType.equipType7 || type == SoldiersEquipType.equipType10) {\n equipSmallType = EquipSmallType.EquipSmallType1;\n } else if (type == SoldiersEquipType.equipType2 || type == SoldiersEquipType.equipType5 || type == SoldiersEquipType.equipType8 || type == SoldiersEquipType.equipType11) {\n equipSmallType = EquipSmallType.EquipSmallType2;\n } else if (type == SoldiersEquipType.equipType3 || type == SoldiersEquipType.equipType6 || type == SoldiersEquipType.equipType9 || type == SoldiersEquipType.equipType12) {\n equipSmallType = EquipSmallType.EquipSmallType3;\n }\n return equipSmallType;\n }\n /** 根据id获取soldiersEquip */\n public GetSoldiersEquipByID(id: number) {\n if (id == undefined) return undefined;\n if (this.SoldiersEquipMaps == null) {\n this.InitSoldiersEquipConfig();\n }\n let data: SoldiersEquip = this.SoldiersEquipMaps.get(id);\n if (data) {\n return data;\n }\n return null;\n }\n SoldiersEquipList: SoldiersEquip[] = [];\n public GetSoldiersEquipList(bigtype: SoldiersEquipType) {\n\n if (!this.SoldiersEquipList) {\n this.SoldiersEquipList = [];\n }\n this.SoldiersEquipList.length = 0;\n\n for (let v of this.SoldiersEquipMaps.values()) {\n if (v.bigType == this.GetEquipBigType(bigtype) && v.smallType == this.GetEquipSmallType(bigtype)) {\n this.SoldiersEquipList.push(v);;\n }\n }\n return this.SoldiersEquipList;\n }\n /** 根据color获取士兵裝備品质框 */\n public GetSoldierEquipKuang(color: number) {\n let colorpzdb = \"ui_pinzhi_bai\";\n if (color == undefined) return colorpzdb;\n switch (color) {\n case SoldiersEquipColorType.equipColorType1:\n colorpzdb = \"ui_pinzhi_bai\";\n break;\n case SoldiersEquipColorType.equipColorType2:\n colorpzdb = \"ui_pinzhi_lv\";\n break;\n case SoldiersEquipColorType.equipColorType3:\n colorpzdb = \"ui_pinzhi_lan\";\n break;\n case SoldiersEquipColorType.equipColorType4:\n colorpzdb = \"ui_pinzhi_zi\";\n break;\n case SoldiersEquipColorType.equipColorType5:\n colorpzdb = \"ui_pinzhi_cheng\";\n break;\n case SoldiersEquipColorType.equipColorType6:\n colorpzdb = \"ui_pinzhi_hong\";\n break;\n }\n return colorpzdb;\n }\n /** 根据装备类型获取裝備类型图标 */\n public GetSoldierEquipBiaoZhi(soldiertype: EquipBigType) {\n let colorpzdb = \"ui_shibing_lx_zhanshi\";\n switch (soldiertype) {\n case EquipBigType.EquipBigType1:\n colorpzdb = \"ui_shibing_lx_zhanshi\";\n break;\n case EquipBigType.EquipBigType2:\n colorpzdb = \"ui_shibing_lx_fashi\";\n break;\n case EquipBigType.EquipBigType3:\n colorpzdb = \"ui_shibing_lx_cike\";\n break;\n case EquipBigType.EquipBigType4:\n colorpzdb = \"ui_shibing_lx_paoshou\";\n break;\n }\n return colorpzdb;\n }\n /** 根据装备类型获取裝備类型图标 */\n public GetSoldierModel(soldiertype: EquipBigType) {\n let modelName = \"c_s_goblin_warrior\";\n switch (soldiertype) {\n case EquipBigType.EquipBigType1:\n modelName = \"c_s_goblin_warrior\";\n break;\n case EquipBigType.EquipBigType2:\n modelName = \"c_s_goblin_archer\";\n break;\n case EquipBigType.EquipBigType3:\n modelName = \"c_s_goblin_rogue\";\n break;\n case EquipBigType.EquipBigType4:\n modelName = \"c_s_goblin_wizard\";\n break;\n }\n return modelName;\n }\n\n public InitModelType(type: EquipBigType) {\n\n let gebulinid = 101;\n switch (type) {\n case 1:\n gebulinid = 101;\n break;\n case 2:\n gebulinid = 201;\n break;\n case 3:\n gebulinid = 301;\n break;\n case 4:\n gebulinid = 401;\n break;\n }\n return gebulinid;\n }\n // public SetSoldierEQuipModel(soldiertype: EquipBigType) {\n // let modelName = \"c_s_goblin_warrior\";\n // if(this.SoldierEquipServerData.wearWq!=undefined){\n // let wuqidata = this.GetSoldiersEquipByID(this.SoldierEquipServerData.wearWq);\n\n // Utils.loadResUIOnly(\"spine/soldier/\" + modelName, \"resources\", Prefab, (err: Error, res: Prefab) => {\n // if (!err) {\n // if (model.children.length > 0) {\n // return;\n // }\n // res.addRef();\n // let heronode: Node = instantiate(res)\n // if (heronode) {\n // heronode.layer = this.node.layer;\n // heronode.position = new Vec3(0, -35, 0);\n // heronode.setParent(model);\n // heronode.scale = new Vec3(1, 1);\n // }\n // }\n // });\n // }\n // if(this.SoldierEquipServerData.wearKj!=undefined){\n // let kaijiadata = this.GetSoldiersEquipByID(this.SoldierEquipServerData.wearKj);\n // }\n // if(this.SoldierEquipServerData.wearHat!=undefined){\n // let maozidata = this.GetSoldiersEquipByID(this.SoldierEquipServerData.wearHat);\n // }\n // }\n /***==========================兵种武器升级 配置表 数据存储============================== */\n public SoldiersEquipUpMaps: Map = new Map();\n\n @res_assign(\"SoldiersEquipUp\") /***兵种武器升级配置表 */\n public InitSoldiersEquipUpConfig() {\n let SoldiersEquitUpConfig = ConfigManager.GetInstance().getValue(\"SoldiersEquipUp\")\n for (var key in SoldiersEquitUpConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SoldiersEquipUp\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SoldiersEquipUpMaps.set(item.lv, item);\n }\n }\n }\n\n /** 根据id获取soldiersEquip */\n public GetSoldiersEquipUpByLv(lv: number) {\n if (lv == undefined) return undefined;\n if (this.SoldiersEquipUpMaps == null) {\n this.InitSoldiersEquipConfig();\n }\n let data: SoldiersEquipUp = this.SoldiersEquipUpMaps.get(lv);\n if (data) {\n return data;\n }\n return null;\n }\n\n public GetSoldierEquipMaxLevel() {\n return this.SoldiersEquipUpMaps.size;\n }\n /**根据装备data获取装备升级数据 */\n public GetEquipUpLVData(soldiersEquipLevel: number, equipColor: number) {\n\n if (soldiersEquipLevel == undefined) {\n soldiersEquipLevel = 1;\n } else {\n soldiersEquipLevel++;\n }\n if (this.SoldiersEquipUpMaps == null) {\n this.InitSoldiersEquipConfig();\n }\n\n let data: SoldiersEquipUp = this.SoldiersEquipUpMaps.get(soldiersEquipLevel);\n if (data) {\n\n let color = equipColor;\n let EquipUpData: SoldiersEquipUpData = new SoldiersEquipUpData;\n if (color == SoldiersEquipColorType.equipColorType1) {\n EquipUpData.att = data.att1;\n EquipUpData.up = data.up1;\n } else if (color == SoldiersEquipColorType.equipColorType2) {\n EquipUpData.att = data.att2;\n EquipUpData.up = data.up2;\n } else if (color == SoldiersEquipColorType.equipColorType3) {\n EquipUpData.att = data.att3;\n EquipUpData.up = data.up3;\n } else if (color == SoldiersEquipColorType.equipColorType4) {\n EquipUpData.att = data.att4;\n EquipUpData.up = data.up4;\n } else if (color == SoldiersEquipColorType.equipColorType5) {\n EquipUpData.att = data.att5;\n EquipUpData.up = data.up5;\n } else if (color == SoldiersEquipColorType.equipColorType6) {\n EquipUpData.att = data.att6;\n EquipUpData.up = data.up6;\n }\n return EquipUpData;\n }\n\n return undefined;\n\n }\n\n public GetHaveType(havetype: HaveType) {\n if (havetype == HaveType.gongji) {\n return GlobalFunction.GetMsg(20004);\n } else if (havetype == HaveType.fangyu) {\n return GlobalFunction.GetMsg(20005);\n } else if (havetype == HaveType.xueliang) {\n return GlobalFunction.GetMsg(20006);\n }\n }\n public GetWFBString(unm: number) {\n let nums = (unm * 100) / 10000;\n return nums + \"%\"\n }\n public GetAddWFBString(unm: number, num1: number) {\n let nums = ((unm - num1) * 100) / 10000;\n return nums + \"%\"\n }\n /***==========================兵种商店 配置表 数据存储============================== */\n public SoldiersShopList: SoldiersShop[];\n\n @res_assign(\"SoldiersShop\") /***兵种武器升级配置表 */\n public InitSoldiersShopConfig() {\n if (this.SoldiersShopList == undefined) {\n this.SoldiersShopList = [];\n }\n let SoldiersShopConfig = ConfigManager.GetInstance().getValue(\"SoldiersShop\")\n for (var key in SoldiersShopConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SoldiersShop\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SoldiersShopList.push(item);\n }\n }\n }\n\n /** 根据id获取soldiersShop*/\n public GetSoldiersShopDataByLv(lv: number) {\n if (lv == undefined) return undefined;\n if (this.SoldiersShopList == null) {\n this.InitSoldiersShopConfig();\n }\n let data: SoldiersShop = this.SoldiersShopList.find(item => item.id == lv)\n if (data) {\n return data;\n }\n return null;\n }\n public GetSoldierEquipLvIconById(upId: number) {\n if (upId == SoldiersEquipColorType.equipColorType1) {\n return \"ui_sc_pzdb01\";\n } else if (upId == SoldiersEquipColorType.equipColorType2) {\n return \"ui_sc_pzdb02\";\n }\n else if (upId == SoldiersEquipColorType.equipColorType3) {\n return \"ui_sc_pzdb03\";\n }\n else if (upId == SoldiersEquipColorType.equipColorType4) {\n return \"ui_sc_pzdb04\";\n }\n else if (upId == SoldiersEquipColorType.equipColorType5) {\n return \"ui_sc_pzdb05\";\n }\n else if (upId == SoldiersEquipColorType.equipColorType6) {\n return \"ui_sc_pzdb06\";\n }\n }\n\n /** 根据等级id获取品質名字*/\n public GetSoldierEquipUpNameById(upId: number) {\n if (upId == SoldiersEquipColorType.equipColorType1) {\n return GlobalFunction.GetMsg(20023);\n } else if (upId == SoldiersEquipColorType.equipColorType2) {\n return GlobalFunction.GetMsg(20024);\n }\n else if (upId == SoldiersEquipColorType.equipColorType3) {\n return GlobalFunction.GetMsg(20025);\n }\n else if (upId == SoldiersEquipColorType.equipColorType4) {\n return GlobalFunction.GetMsg(20026);\n }\n else if (upId == SoldiersEquipColorType.equipColorType5) {\n return GlobalFunction.GetMsg(20027);\n }\n else if (upId == SoldiersEquipColorType.equipColorType6) {\n return GlobalFunction.GetMsg(20029);\n }\n }\n\n /** 根据等级id获取底框名字*/\n public GetSoldierEquipUpPinZhiValueById(upId: number, level: number) {\n let data = this.GetSoldiersShopDataByLv(level);\n if (data == null) return 0;\n if (upId == SoldiersEquipColorType.equipColorType1) {\n return data.white;\n } else if (upId == SoldiersEquipColorType.equipColorType2) {\n return data.green;\n }\n else if (upId == SoldiersEquipColorType.equipColorType3) {\n return data.blue;\n }\n else if (upId == SoldiersEquipColorType.equipColorType4) {\n return data.purple;\n }\n else if (upId == SoldiersEquipColorType.equipColorType5) {\n return data.orange;\n }\n else if (upId == SoldiersEquipColorType.equipColorType6) {\n return data.red;\n }\n }\n /***==========================发送消息给服务器========================= */\n public cdEquipSmallType: EquipSmallType;\n public SendC1400All() {\n this.SendC1400(EquipBigType.EquipBigType1);\n this.SendC1400(EquipBigType.EquipBigType2);\n this.SendC1400(EquipBigType.EquipBigType3);\n this.SendC1400(EquipBigType.EquipBigType4);\n }\n public SendC1400(armyType: number) {\n // 兵种装备信息 \n // Logger.logNet(\"Send1400:\" + armyType);\n var c1400: c1400 = { armyType: armyType };\n send2client(\"c1400\", c1400);\n }\n\n public SendC1401(armyType: number) {\n // // 一键升级 传兵种类型:1-战士,2-法师,3-刺客,4-炮手\n // Logger.logNet(\"Send1401:\" + armyType);\n var c1401: c1401 = { armyType: armyType };\n send2client(\"c1401\", c1401);\n }\n\n public SendC1402(equipId: number) {\n // 穿装备 传装备id\n // Logger.logNet(\"Send1402:\" + equipId);\n let equipdata = SoldierEquipProxy.Inst.GetSoldiersEquipByID(equipId);\n if (equipdata) {\n this.cdEquipSmallType = equipdata.smallType;\n }\n\n var c1402: c1402 = { equipId: equipId };\n send2client(\"c1402\", c1402);\n }\n public SendC1403() {\n //士兵装备图鉴信息\n Logger.logNet(\"Send1403:\");\n var c1403: c1403 = {};\n send2client(\"c1403\", c1403);\n }\n\n public SendC1404(id: number) {\n //士兵装备图鉴激活\n // Logger.logNet(\"Send1404:\" + id);\n var c1404: c1404 = { id: id };\n send2client(\"c1404\", c1404);\n }\n\n /***==========================服务器数据存储============================== */\n public SoldierEquipServerMaps: Map = new Map();//服务器返回-所有士兵装备数据\n\n public EnhanceEquipServerList: p_equip_lv[];//服务器返回-强化后数据\n public WearEquipServerData: s1402;//服务器返回-穿装备后数据\n public SoldiersTJMaps: p_army_tuj[];//服务器返回-图鉴Maps\n\n //临时需求数据\n public SoldierEquipIdList: number[];//已穿戴装备的id列表(SoldiersEquiptTipsUI界面使用)\n\n public SoldierBuildTypeList: number[] = [1004, 1005, 1006, 1007, 1008, 1009, 1010, 1012, 1013, 1014, 1015];\n public VillageBuildTypeList: number[] = [1001, 1002, 1003];\n public CurrentArmyType: EquipBigType;\n public ReFreshSoldiersUI: boolean;\n public ReFreshSoldiersTuJianUI: boolean;\n\n public IsReFreshSoldiersTuJianUI: boolean;\n\n public SetSoldierEquipMapz(s1400: s1400) {\n this.SoldierEquipServerMaps.set(s1400.armyType, s1400);\n SoldierEquipProxy.Inst.SetSoldierEquipWearList(s1400);\n }\n public SetSoldiersTJMaps(tjList: p_army_tuj[]) {\n if (this.SoldiersTJMaps == undefined) {\n this.SoldiersTJMaps = [];\n }\n this.SoldiersTJMaps.length == 0;\n if (tjList != undefined) {\n // for (let i = 0; i < tjList.length; i++) {\n // this.SoldiersTJMaps.push(tjList[i]);\n // }\n this.SoldiersTJMaps = tjList;\n }\n\n\n }\n public SetSoldierEquipWearList(s1400: s1400) {\n if (SoldierEquipProxy.Inst.SoldierEquipIdList == undefined) {\n SoldierEquipProxy.Inst.SoldierEquipIdList = [];\n }\n SoldierEquipProxy.Inst.SoldierEquipIdList.length = 0;\n if (s1400.wearWq != undefined) {\n SoldierEquipProxy.Inst.SoldierEquipIdList.push(s1400.wearWq);\n } else {\n SoldierEquipProxy.Inst.SoldierEquipIdList.push(0);\n }\n\n if (s1400.wearKj != undefined) {\n SoldierEquipProxy.Inst.SoldierEquipIdList.push(s1400.wearKj);\n } else {\n SoldierEquipProxy.Inst.SoldierEquipIdList.push(0);\n }\n if (s1400.wearHat != undefined) {\n SoldierEquipProxy.Inst.SoldierEquipIdList.push(s1400.wearHat);\n } else {\n SoldierEquipProxy.Inst.SoldierEquipIdList.push(0);\n }\n }\n public SetEnhanceEquipList(itemList: p_equip_lv[]) {\n if (this.EnhanceEquipServerList == null) {\n this.EnhanceEquipServerList = [];\n }\n this.EnhanceEquipServerList.length = 0;\n this.EnhanceEquipServerList = itemList;\n }\n\n public GetSoldierEquipServerData(equipBigType: number) {\n\n if (this.SoldierEquipServerMaps.size > 0) {\n return this.SoldierEquipServerMaps.get(equipBigType);\n }\n\n return undefined;\n }\n}\n/***==========================接收消息给服务器========================= */\nexport function do_s1400(s1400: s1400) { //建筑列表\n // 兵种装备信息 \n // message p_army_equip{\n // int32 id=1; // 装备id\n // int32 lv=2; // 装备等级,0表示没有解锁\n // int32 num=3; // 当前升级道具的个数\n // }\n\n // // 加成效果信息\n // message p_effect{\n // int32 type=1; // 效果类型\n // int32 value=2; // 效果值\n // }\n\n // int32 armyType=1; // 兵种类型:1-战士,2-法师,3-刺客,4-炮手\n // int32 wearWq=2; // 穿戴的武器Id\n // int32 wearKj=3; // 穿戴的盔甲Id\n // int32 wearHat=4; // 穿戴的帽子Id\n // repeated p_army_equip wqList=5; // 武器列表\n // repeated p_army_equip kJList=6; // 盔甲列表\n // repeated p_army_equip hatList=7; // 帽子列表\n // p_effect wqHaveEffct=8; // 武器拥有效果\n // p_effect wqWearEffct=9; // 武器穿戴效果\n // p_effect kjHaveEffct=10; // 盔甲拥有效果\n // p_effect kjWearEffct=11; // 盔甲穿戴效果\n // p_effect hatHaveEffct=12; // 帽子拥有效果\n // p_effect hatWearEffct=13; // 帽子穿戴效果\n //Logger.logNet(\"=================s1400 s1400.armyType:\" + s1400.armyType);\n //Logger.logNet(\"=================s1400 s1400.wearWq:\" + s1400.wearWq + \" s1400.wearKj==\" + s1400.wearKj + \" s1400.wearHat==\" + s1400.wearHat);\n //Logger.logNet(\"=================s1400 s1400.wqList:\" + s1400.wqList + \" s1400.kJList==\" + s1400.kJList + \" s1400.hatList==\" + s1400.hatList);\n\n // for(let i=0;i=new Map();\n public SoldiersDataList: Soldiers[];\n public InitSoldiersConfig() {\n \n // if (this.SoldiersDataMaps.size>0) {\n // this.SoldiersDataMaps.clear();\n // }\n if(this.SoldiersDataList==null){\n this.SoldiersDataList=[];\n }\n let HeroDataConfig = ConfigManager.GetInstance().getValue(\"Soldiers\")\n for (var key in HeroDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Soldiers\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n // this.SoldiersDataMaps.set(item.soldiersID,item);\n this.SoldiersDataList.push(item);\n }\n \n }\n }\n \n /** 根据id获取soldiers */\n public GetSoldiersDataByID(soldiersID: number) {\n if(soldiersID==undefined)return undefined;\n if (this.SoldiersDataList == null) {\n this.InitSoldiersConfig();\n }\n // let data: Soldiers = this.SoldiersDataMaps.get(soldiersID);\n let data: Soldiers = this.SoldiersDataList.find(item=>item.soldiersID==soldiersID);\n if (data) {\n return data;\n }\n return null;\n }\n}\n\nexport class Soldiers {\n /** 士兵ID ID */\n soldiersID: number;\n /** 攻击距离 */\n attackDistance: number;\n /** 攻击速度*/\n attackSpeed: number;\n /** 攻击范围 */\n attackRange: number;\n /** 移动速度 */\n move: number;\n /** 弹道模型 */\n bulletmodel: string;\n /** 击中效果 */\n hitEffect: string;\n /** 飞行速度 */\n flySpeed: number;\n /** 音效 */\n atkSound: number;\n /** 武器 */\n modle1: string;\n /** 武+衣 */\n modle2: string;\n /** 武+衣+帽 */\n modle3: string;\n model:string;\n cs:number;\n vi:number;\n /** 攻击 */\n atk: number;\n /** 防御*/\n def: number;\n /** 血量 */\n hp: number;\n flyType:number;\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Node } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { ShopProxy } from \"../proxy/ShopProxy\";\nimport { SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { Skeleton } from \"cc\";\nimport { sp } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport { Label } from \"cc\";\nimport { Button } from \"cc\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('SoldiersEquiptGetUI')\nexport default class SoldiersEquiptGetUI extends BasePanel {\n finishTime: number;\n\n animationWaitList: string[];\n animationOpenList: string[];\n animationList: number[];\n\n\n Panle_center :Node | null = null;\n Panle_fifteen :Node | null = null;\n\n\n //Layout_list 35\n @property(Node) Layout_item: Node | null = null;//content\n item: Node | null = null;\n prefabitem: Node | null = null;\n\n //Layout_list 15\n @property(Node) Layout_item15: Node | null = null;//content\n item15: Node | null = null;\n prefabitem15: Node | null = null;\n\n @property(Button)Button_close:Button|null = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\" || name == \"Button_close1\") {\n this.close(true);\n EventManager.Inst.event(EventType.guideEvent_10003, 10003);\n }\n }\n\n onShow(data: any): void {\n this.animationWaitList = [\"sc_niudan_blue_wait\", \"sc_niudan_green_wait\", \"sc_niudan_purple_wait\", \"sc_niudan_red_wait\", \"sc_niudan_yellow_wait\"];\n this.animationOpenList = [\"sc_niudan_blue_open\", \"sc_niudan_green_open\", \"sc_niudan_purple_open\", \"sc_niudan_red_open\", \"sc_niudan_yellow_open\"];\n this.animationList = [];\n this.showShopEquipList();\n \n if (GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_10003, [10003, this.Button_close.node])\n }\n }\n\n protected onLoad(): void {\n }\n\n /** 显示武将装备升级概率 */\n public showShopEquipList() {\n\n if(ShopProxy.Inst.SolderShopEquipIdList==undefined) return;\n if(ShopProxy.Inst.SolderShopEquipIdList.length == 0)return;\n let equipCount = ShopProxy.Inst.SolderShopEquipIdList.length;\n this.Panle_fifteen.active=equipCount<=15;\n this.Panle_center.active=equipCount>15;\n if(this.Panle_fifteen.active){\n this.prefabitem15 = this.item15; \n this.Layout_item15.removeAllChildren();\n for (let i = 0; i < ShopProxy.Inst.SolderShopEquipIdList.length; i++) {\n let itemNode = instantiate(this.prefabitem15);\n if (itemNode) {\n itemNode.parent = this.Layout_item15;\n let equipid = ShopProxy.Inst.SolderShopEquipIdList[i];\n let equipdata = SoldierEquipProxy.Inst.GetSoldiersEquipByID(equipid);\n let suijishu = GlobalFunction.GetRandowNumber(0, 4);\n let itemwait = itemNode.getChildByName(\"itemwait\");\n let itemopen = itemNode.getChildByName(\"itemopen\");\n let waiNode = itemwait.getChildByName(\"e_ui_shop_niudan_wait\");\n let openNode = itemopen.getChildByName(\"e_ui_shop_niudan_open\");\n let waiSkeleton = waiNode.getComponent(sp.Skeleton);\n let openSkeleton = openNode.getComponent(sp.Skeleton);\n let itemdec = itemNode.getChildByName(\"itemdec\");\n let Sprite_itemkuang = itemdec.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let spritek = SoldierEquipProxy.Inst.GetSoldierEquipKuang(equipdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, spritek);\n \n let Sprite_item = itemdec.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, equipdata.icon);\n \n this.animationList[i] = suijishu;\n waiSkeleton.setAnimation(0, this.animationWaitList[suijishu], false);\n }\n }\n this.scheduleOnce(() => {\n this.ShowOpenFiveEquipBox();\n }, 0.5);\n }else{\n\n this.prefabitem = this.item; \n this.Layout_item.removeAllChildren();\n for (let i = 0; i < ShopProxy.Inst.SolderShopEquipIdList.length; i++) {\n let itemNode = instantiate(this.prefabitem);\n if (itemNode) {\n itemNode.parent = this.Layout_item;\n let equipid = ShopProxy.Inst.SolderShopEquipIdList[i];\n let equipdata = SoldierEquipProxy.Inst.GetSoldiersEquipByID(equipid);\n let suijishu = GlobalFunction.GetRandowNumber(0, 4);\n let itemwait = itemNode.getChildByName(\"itemwait\");\n let itemopen = itemNode.getChildByName(\"itemopen\");\n let waiNode = itemwait.getChildByName(\"e_ui_shop_niudan_wait\");\n let openNode = itemopen.getChildByName(\"e_ui_shop_niudan_open\");\n let waiSkeleton = waiNode.getComponent(sp.Skeleton);\n let openSkeleton = openNode.getComponent(sp.Skeleton);\n let itemdec = itemNode.getChildByName(\"itemdec\");\n let Sprite_itemkuang = itemdec.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let spritek = SoldierEquipProxy.Inst.GetSoldierEquipKuang(equipdata.color);\n GlobalFunction.SetSpriteFrame(Sprite_itemkuang, spritek);\n \n let Sprite_item = itemdec.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteFrame(Sprite_item, equipdata.icon);\n \n this.animationList[i] = suijishu;\n waiSkeleton.setAnimation(0, this.animationWaitList[suijishu], false);\n }\n }\n this.scheduleOnce(() => {\n this.ShowOpenEquipBox();\n }, 0.5);\n }\n }\n\n ShowOpenEquipBox() {\n\n if(this.Layout_item==undefined)return;\n for (let i = 0; i < this.Layout_item.children.length; i++) {\n let itemNode = this.Layout_item.children[i];\n if (itemNode) {\n\n let itemwait = itemNode.getChildByName(\"itemwait\");\n let itemopen = itemNode.getChildByName(\"itemopen\");\n let openNode = itemopen.getChildByName(\"e_ui_shop_niudan_open\");\n let openSkeleton = openNode.getComponent(sp.Skeleton);\n let itemdec = itemNode.getChildByName(\"itemdec\");\n this.scheduleOnce(() => {\n itemwait.active = false;\n itemopen.active = true;\n if(this.animationList.length<=0)return;\n openSkeleton.setAnimation(0, this.animationOpenList[this.animationList[i]], false);\n openSkeleton.setCompleteListener((trackEntry) => {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n if(this.animationList.length<=0)return;\n switch (name) {\n case this.animationOpenList[this.animationList[i]]:\n itemdec.active = true;\n break;\n default:\n break;\n }\n });\n }, i * 0.05);\n }\n\n }\n }\n ShowOpenFiveEquipBox() {\n\n if(this.Layout_item15==undefined)return;\n for (let i = 0; i < this.Layout_item15.children.length; i++) {\n let itemNode = this.Layout_item15.children[i];\n if (itemNode) {\n\n let itemwait = itemNode.getChildByName(\"itemwait\");\n let itemopen = itemNode.getChildByName(\"itemopen\");\n let openNode = itemopen.getChildByName(\"e_ui_shop_niudan_open\");\n let openSkeleton = openNode.getComponent(sp.Skeleton);\n let itemdec = itemNode.getChildByName(\"itemdec\");\n this.scheduleOnce(() => {\n itemwait.active = false;\n itemopen.active = true;\n if(this.animationList.length<=0)return;\n openSkeleton.setAnimation(0, this.animationOpenList[this.animationList[i]], false);\n openSkeleton.setCompleteListener((trackEntry) => {\n let name = trackEntry.animation ? trackEntry.animation.name : '';\n if(this.animationList.length<=0)return;\n switch (name) {\n case this.animationOpenList[this.animationList[i]]:\n itemdec.active = true;\n break;\n default:\n break;\n }\n });\n }, i * 0.05);\n }\n\n }\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n SoldierEquipProxy.Inst.SendC1400All();\n // this.animationWaitList = null;\n // this.animationOpenList= null;\n // this.animationList=null;\n }\n clearRes() {\n }\n}\n","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { Label, Node } from \"cc\";\nimport { find } from \"cc\";\nimport { ScrollView } from \"cc\";\nimport { instantiate } from \"cc\";\nimport { EquipBigType, SoldierEquipProxy } from \"../proxy/SoldierEquipProxy\";\nimport { Sprite } from \"cc\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport Utils from \"../../../core/utils/Utils\";\nimport { Prefab } from \"cc\";\nimport { Vec3 } from \"cc\";\nimport { GuideManager } from \"../guilde/GuideManager\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport { Button } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('SoldiersEquiptQhUI')//士兵装备强化界面\nexport default class SoldiersEquiptQhUI extends BasePanel {\n\n @property(Node) Layout_equipt: Node | null = null;\n @property(Node) equipt: Node | null = null;\n equiptPerfab: Node | null = null;\n @property(Button)Button_equipt:Button|null = null;\n\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_close\") {\n this.close(true)\n } else if (name == \"Button_equipt\") {\n EventManager.Inst.event(EventType.guideEvent_10009 , 10009);\n this.close(true)\n }\n }\n\n onShow(data: any): void {\n this.ShowQHSoldierEquip();\n if (GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_10009, [10009, this.Button_equipt.node])\n }\n }\n public ShowQHSoldierEquip() {\n this.equiptPerfab = this.equipt;\n this.Layout_equipt.removeAllChildren();\n if(SoldierEquipProxy.Inst.EnhanceEquipServerList==undefined)return;\n for (let i=0;iolderpower;\n this.Sprite_down.active=newerpowerolderpower){\n\n Label_xianzhanli.color = new Color(76,255,110,255);\n }else if (newerpower {\n // if (!err) {\n // res.addRef();\n // let heronode: Node = instantiate(res)\n // if (heronode) {\n // heronode.layer = this.node.layer;\n // heronode.position = new Vec3(0, -160, 0);\n // heronode.setParent(this.Model);\n // heronode.scale = new Vec3(2, 2);\n // }\n // }\n // });\n\n \n this.equiptPerfab = this.equipt;\n this.Layout_equipt.removeAllChildren();\n for (let i=0;i = new Map();\n passdata: Pass;\n wordMap: WordMap;\n\n soldierTuJianList: SoldierTuJian[];\n\n @property(Node) ScrollView_List: Node = null;\n @property(Node) Layout_List: Node = null;\n\n @property(Node)ScrollView_tujian: Node = null;\n //Toggle_1\n @property(Node) List1: Node = null;\n @property(Node) no1: Node = null;\n @property(Node) yes1: Node = null;\n @property(Node) Label_no1: Node = null;\n\n @property(Node) Sprite_pingzhizhu1: Node = null;\n @property(Node) Sprite_zhu1: Node = null;\n @property(Node) Label_zhulv1: Node = null;\n @property(Node) Label_zhuangbei1: Node = null;\n @property(Node) Label_yongyou1: Node = null;\n @property(Node) Sprite_up1: Node = null;\n @property(Node) Sprite_down1: Node = null;\n @property(Node) Label_dec1: Node = null;\n\n @property(Node) Layout_yes1item1: Node = null;\n yes1item1: Node = null;\n Prefabyes1item1: Node = null;\n\n\n @property(Node) Layout_yes1item2: Node = null;\n yes1item2: Node = null;\n Prefabyes1item2: Node = null;\n\n //Toggle_2 \n @property(Node) List2: Node = null;\n @property(Node) no2: Node = null;\n @property(Node) yes2: Node = null;\n\n @property(Node) Label_no2: Node = null;\n\n @property(Node) Sprite_pingzhizhu2: Node = null;\n @property(Node) Sprite_zhu2: Node = null;\n @property(Node) Label_zhulv2: Node = null;\n @property(Node) Label_zhuangbei2: Node = null;\n @property(Node) Label_yongyou2: Node = null;\n @property(Node) Sprite_up2: Node = null;\n @property(Node) Sprite_down2: Node = null;\n @property(Node) Label_dec2: Node = null;\n\n @property(Node) Layout_yes2item1: Node = null;\n yes2item1: Node = null;\n Prefabyes2item1: Node = null;\n\n @property(Node) Layout_yes2item2: Node = null;\n yes2item2: Node = null;\n Prefabyes2item2: Node = null;\n\n //Toggle_3\n @property(Node) List3: Node = null;\n @property(Node) no3: Node = null;\n @property(Node) yes3: Node = null;\n\n @property(Node) Label_no3: Node = null;\n\n @property(Node) Sprite_pingzhizhu3: Node = null;\n @property(Node) Sprite_zhu3: Node = null;\n @property(Node) Label_zhulv3: Node = null;\n @property(Node) Label_zhuangbei3: Node = null;\n @property(Node) Label_yongyou3: Node = null;\n @property(Node) Sprite_up3: Node = null;\n @property(Node) Sprite_down3: Node = null;\n @property(Node) Label_dec3: Node = null;\n\n @property(Node) Layout_yes3item1: Node = null;\n yes3item1: Node = null;\n Prefabyes3item1: Node = null;\n\n @property(Node) Layout_yes3item2: Node = null;\n yes3item2: Node = null;\n Prefabyes3item2: Node = null;\n\n @property(Node) Model1: Node = null;\n @property(Node) Model2: Node = null;\n @property(Node) Model3: Node = null;\n @property(Node) Model4: Node = null;\n PanleModelNodes: Node[] = null;\n\n\n //bottom Toggle\n @property(Node) Panle_equipt: Node = null;\n @property(Node) Pamle_tujian: Node = null;\n Toggle_equipt: Node = null;\n Toggle_tujian: Node = null;\n PanleNodes: Node[] = null;\n PanleToggleNodes: Toggle[] = null;\n scroeeww :ScrollView;\n //士兵图鉴\n @property(Node) Layou_tujian: Node = null;\n tujian: Node = null;\n itemTuJianPrefabs: Node = null;\n //强化红点\n @property(Node) Sprite_qhred: Node = null;\n @property(Button) Button_qh:Button|null = null;\n public EquipWeaponMaps: SoldiersEquip[];\n public EquipArmorMaps: SoldiersEquip[];\n public EquipHatMaps: SoldiersEquip[];\n protected onLoad(): void {\n\n }\n start() {\n this.addEvent();\n }\n\n private addEvent() {\n EventManager.Inst.on(EventType.REFRESH_SOLDIERSTUJIAN_UI, this, this.showTuJianPane);\n EventManager.Inst.on(EventType.REFRESH_SOLDIERS_UI, this, this.refreshSoldierUI);\n EventManager.Inst.event(EventType.GUIDE_TS_10007 , this , this.on10007)\n\n }\n private on10007(){\n if (GuideManager.getInstance().isInGuide) {\n EventManager.Inst.event(EventType.uiOpenEvent_10008, [10008, this.Button_qh.node])\n }\n }\n\n refreshSoldierUI() {\n this.UpDataModel();\n this.ShowSoldierEquip();\n }\n\n\n onShow(data: any): void {\n if(data==undefined){\n this.bigType = EquipBigType.EquipBigType1;\n }else{\n this.bigType = data;\n }\n console.log(\"this.bigType====\"+this.bigType);\n this.scroeeww = this.ScrollView_tujian.getComponent(ScrollView);\n this.InitPanelNode();\n // this.ScrollView_tujian.node.on('scroll-to-top-start', this.onScrolling, this);\n // this.ShowSoldierEquip();\n this.scroeeww.node.on('scrolling', this.onScrolling, this);\n }\n\n /** 点击事件 */\n onBtnClicked(e: any, name: string) {\n if (name == \"Button_back\") {\n this.close(true)\n } else if (name == \"Toggle_equipt\"){\n this.showPanel(this.Toggle_equipt, this.Panle_equipt);\n } else if (name == \"Toggle_tujian\"){\n\n this.showPanel(this.Toggle_tujian, this.Pamle_tujian);\n this.showTuJianPane();\n // this.ScrollView_tujian.getComponent(ScrollView).scrollToTop(0.1);\n\n } else if (name == \"Toggle_1\") {\n this.ShowChildPanl(this.Toggle_1, EquipBigType.EquipBigType1);\n } else if (name == \"Toggle_2\") {\n this.ShowChildPanl(this.Toggle_2, EquipBigType.EquipBigType2);\n } else if (name == \"Toggle_3\") {\n this.ShowChildPanl(this.Toggle_3, EquipBigType.EquipBigType3);\n } else if (name == \"Toggle_4\") {\n this.ShowChildPanl(this.Toggle_4, EquipBigType.EquipBigType4);\n }\n else if (name == \"Button_get1\") {\n EventManager.Inst.event(EventType.guideEvent_10011 , 10011);\n SoldierEquipProxy.Inst.SendC1402(this.WuQiChooseid);\n }\n else if (name == \"Button_get2\") {\n SoldierEquipProxy.Inst.SendC1402(this.KaiJiaChooseid);\n }\n else if (name == \"Button_get3\") {\n SoldierEquipProxy.Inst.SendC1402(this.MaoZiChooseid);\n }\n\n else if (name == \"Button_call\") {\n //召唤\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.zhaohuan, true);\n }\n\n else if (name == \"Button_qh\") {\n //批量强化\n if (this.Sprite_qhred.active) {\n EventManager.Inst.event(EventType.guideEvent_10008 , 10008);\n SoldierEquipProxy.Inst.SendC1401(this.MoRenBigType);\n }\n }\n }\n\n\n /*** 初始化数据 入口 */\n InitPanelNode() {\n if (this.PanleNodes == undefined) {\n this.PanleNodes = [];\n this.PanleNodes.push(this.Panle_equipt);\n this.PanleNodes.push(this.Pamle_tujian);\n }\n if (this.PanleToggleNodes == undefined) {\n this.PanleToggleNodes = [];\n this.PanleToggleNodes.push(this.Toggle_1);\n this.PanleToggleNodes.push(this.Toggle_2);\n this.PanleToggleNodes.push(this.Toggle_3);\n this.PanleToggleNodes.push(this.Toggle_4);\n }\n if (this.PanleModelNodes == undefined) {\n this.PanleModelNodes = [];\n this.PanleModelNodes.push(this.Model1);\n this.PanleModelNodes.push(this.Model2);\n this.PanleModelNodes.push(this.Model3);\n this.PanleModelNodes.push(this.Model4);\n\n let btn_lock2 = this.Panle_equipt.getChildByName(\"Button_lock2\");\n let btn_lock3 = this.Panle_equipt.getChildByName(\"Button_lock3\");\n let btn_lock4 = this.Panle_equipt.getChildByName(\"Button_lock4\");\n\n //是否显示toggle2-4\n this.CurrentUnLockBuildList = PassPoxy.Inst.getPassBuildById((dataUser.Instance().passId + 1));\n\n\n this.toggleMaps.set(1, true);\n\n btn_lock2.active = !PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.FaShiWuQi);\n this.toggleMaps.set(2, !btn_lock2.active);\n\n btn_lock3.active = !PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.ChiKeWuQi);\n this.toggleMaps.set(3, !btn_lock3.active);\n\n btn_lock4.active = !PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.PaoShouWuQi);\n this.toggleMaps.set(4, !btn_lock4.active);\n }\n this.Panle_equipt.active = true;\n // this.MoRenBigType = EquipBigType.EquipBigType1; // 初始化顯示戰士\n // SoldierEquipProxy.Inst.CurrentArmyType = this.MoRenBigType;\n this.SetModel();\n this.ShowChildOtherPanl(this.PanleToggleNodes[this.bigType-1],this.bigType);\n this.scheduleOnce(function () {\n // 这里的 this 指向 component\n SoldierEquipProxy.Inst.SendC1403();\n }, 0.1);\n }\n\n\n /*** 设置模型 */\n SetModel() {\n this.SoldiersEquipsTipsList = [EquipBigType.EquipBigType1, EquipBigType.EquipBigType2, EquipBigType.EquipBigType3, EquipBigType.EquipBigType4];\n for (let i = 0; i < this.PanleModelNodes.length; i++) {\n if (this.toggleMaps.get(i + 1) == true) {\n this.SetSoldierModel(this.SoldiersEquipsTipsList[i], this.PanleModelNodes[i]);\n }\n }\n }\n\n UpDataModel() {\n this.SetSoldierModel(this.SoldiersEquipsTipsList[this.MoRenBigType - 1], this.PanleModelNodes[this.MoRenBigType - 1]);\n }\n\n SetSoldierModel(equipBigType: EquipBigType, model: Node) {\n\n if (model.children.length > 0) {\n model.removeAllChildren();\n }\n ResHelper.getGebulin(SoldierEquipProxy.Inst.InitModelType(equipBigType), model, new Vec3(0, -35, 0), new Vec3(1, 1));\n }\n\n\n /** 点击事件反馈 */\n showPanel(tog: Node, node: Node) {\n let toggle = tog.getComponent(Toggle);\n if (!toggle) return;\n const isCheck = toggle.isChecked;\n if (!isCheck) toggle.isChecked = !isCheck;\n for (let i = 0; i < this.PanleNodes.length; ++i) {\n if (node.name == this.PanleNodes[i].name) {\n if (!this.PanleNodes[i].active) {\n this.PanleNodes[i].active = true;\n }\n } else {\n this.PanleNodes[i].active = false;\n }\n }\n }\n\n /**点击士兵toggle */\n ShowChildPanl(toggle: Toggle, equipBigType: EquipBigType) {\n if (!toggle) return;\n this.WuQiChooseid = 0;\n this.KaiJiaChooseid = 0;\n this.MaoZiChooseid = 0;\n const isCheck = toggle.isChecked;\n if (!isCheck) toggle.isChecked = !isCheck;\n this.MoRenBigType = equipBigType;\n SoldierEquipProxy.Inst.CurrentArmyType = this.MoRenBigType;\n this.ShowSoldierEquip();//展示士兵裝備\n this.ScrollView_List.getComponent(ScrollView).scrollToTop(0.1);\n }\n\n /**初始化toggle */\n ShowChildOtherPanl(toggle :Toggle,equipBigType: EquipBigType) {\n if (!toggle) return;\n const isCheck = toggle.isChecked;\n if (!isCheck) toggle.isChecked = !isCheck;\n console.log(\"初始化toggle\"+equipBigType +\" toggle =\"+toggle);\n this.MoRenBigType = equipBigType;\n SoldierEquipProxy.Inst.CurrentArmyType = this.MoRenBigType;\n this.ShowSoldierEquip();\n }\n\n /*** 展示士兵装备 */\n ShowSoldierEquip() {\n\n if (this.EquipWeaponMaps == undefined) {\n this.EquipWeaponMaps = [];\n }\n if (this.EquipArmorMaps == undefined) {\n this.EquipArmorMaps = [];\n }\n if (this.EquipHatMaps == undefined) {\n this.EquipHatMaps = [];\n }\n this.EquipWeaponMaps.length = 0;\n this.EquipArmorMaps.length = 0;\n this.EquipHatMaps.length = 0;\n this.SetListViewShow(this.MoRenBigType);\n for (const [key, value] of Array.from(SoldierEquipProxy.Inst.SoldiersEquipMaps.entries())) {\n if (value.bigType == this.MoRenBigType) {\n\n if (value.smallType == EquipSmallType.EquipSmallType1) {\n if (this.yes1.active) {\n this.EquipWeaponMaps.push(value);\n }\n }\n if (value.smallType == EquipSmallType.EquipSmallType2) {\n if (this.yes2.active) {\n this.EquipArmorMaps.push(value);\n }\n }\n if (value.smallType == EquipSmallType.EquipSmallType3) {\n if (this.yes3.active) {\n this.EquipHatMaps.push(value);\n }\n }\n }\n }\n\n // this.SoldierEquipServerData = SoldierEquipProxy.Inst.GetSoldierEquipServerData(this.MoRenBigType);\n for (const [key, value] of Array.from(SoldierEquipProxy.Inst.SoldierEquipServerMaps.entries())) {\n if(this.MoRenBigType==key){\n this.SoldierEquipServerData = value;\n }\n }\n //设置选中装备id\n if (GlobalFunction.ConvertUndefinedToNumber(this.WuQiChooseid) == 0) {\n if (this.SoldierEquipServerData==undefined ||this.SoldierEquipServerData.wearWq == undefined) {\n if (this.EquipWeaponMaps.length > 0) {\n this.WuQiChooseid = this.EquipWeaponMaps[0].id;\n }\n } else {\n this.WuQiChooseid = GlobalFunction.ConvertUndefinedToNumber(this.SoldierEquipServerData.wearWq);\n }\n }\n if (GlobalFunction.ConvertUndefinedToNumber(this.KaiJiaChooseid) == 0) {\n if ( this.SoldierEquipServerData==undefined || this.SoldierEquipServerData.wearKj == undefined) {\n if (this.EquipArmorMaps.length > 0) {\n this.KaiJiaChooseid = this.EquipArmorMaps[0].id;\n }\n } else {\n this.KaiJiaChooseid = GlobalFunction.ConvertUndefinedToNumber(this.SoldierEquipServerData.wearKj);\n }\n }\n if (GlobalFunction.ConvertUndefinedToNumber(this.MaoZiChooseid) == 0) {\n if (this.SoldierEquipServerData==undefined ||this.SoldierEquipServerData.wearHat == undefined) {\n if (this.EquipHatMaps.length > 0) {\n this.MaoZiChooseid = this.EquipHatMaps[0].id;\n }\n } else {\n this.MaoZiChooseid = GlobalFunction.ConvertUndefinedToNumber(this.SoldierEquipServerData.wearHat);\n }\n }\n\n /**判斷是否可以强化 */\n this.WuQiBoolean = false;\n this.KaiJiaBoolean = false;\n this.MaoZiBoolean = false;\n\n if (this.yes1.active) {\n if (this.Layout_yes1item1.children.length == 1) {\n\n //武器 sprite\n this.Prefabyes1item1 = this.yes1item1;\n this.Layout_yes1item1.removeAllChildren();\n\n for (let i = 0; i < this.EquipWeaponMaps.length; i++) {\n let itemNode = instantiate(this.Prefabyes1item1);\n if (itemNode) {\n itemNode.parent = this.Layout_yes1item1;\n let Button_yes1item1 = itemNode.getChildByName(\"Button_yes1item1\");\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let equipweapon = this.EquipWeaponMaps[i];\n soldierItem.SoldiersEquip = equipweapon;\n let Sprite_itemkuang = Button_yes1item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let equipColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(equipweapon.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_itemkuang, equipColor);\n\n let Sprite_item = Button_yes1item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_item, equipweapon.icon);\n\n // let Label_lv = Button_yes1item1.getChildByName(\"Label_lv\").getComponent(Label);\n let Sprite_sure = Button_yes1item1.getChildByName(\"Sprite_sure\");//是否装备\n let Sprite_chosse = Button_yes1item1.getChildByName(\"Sprite_chosse\");//是否被选中\n let Sprite_lock = Button_yes1item1.getChildByName(\"Sprite_lock\");//是否获得\n\n let ProgressBar_qh = Button_yes1item1.getChildByName(\"ProgressBar_qh\");//是否获得\n let Progress = ProgressBar_qh.getComponent(ProgressBar);\n Progress.progress = 0;\n // let Label_qh = ProgressBar_qh.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n Sprite_lock.active = true;\n let wuqiserverdata;\n if (this.SoldierEquipServerData!=undefined &&this.SoldierEquipServerData.wqList != undefined) {\n wuqiserverdata = this.SoldierEquipServerData.wqList.find(item => item.id == equipweapon.id);\n if (wuqiserverdata) {\n if (wuqiserverdata.lv != undefined) {\n equipweapon.level = wuqiserverdata.lv;\n Sprite_lock.active = false;\n }\n }\n }\n //装备升级数据\n let WuQiEquipUpData;\n if (wuqiserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(wuqiserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n WuQiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(equipweapon.level, equipweapon.color);\n\n if (wuqiserverdata.num != undefined) {\n\n if (wuqiserverdata.num >= WuQiEquipUpData.up) {\n this.WuQiBoolean = true;\n }\n Progress.progress = wuqiserverdata.num / WuQiEquipUpData.up;\n }\n } else {\n this.WuQiBoolean = true;\n Progress.progress = 1;\n }\n }\n\n let isGuide : boolean =false;\n if( this.SoldierEquipServerData.wqList!=undefined && this.SoldierEquipServerData.wqList.length>0){\n this.SoldierEquipServerData.wqList.sort((a,b)=>a.id-b.id);\n let listCount = this.SoldierEquipServerData.wqList.length;\n isGuide = this.SoldierEquipServerData.wqList[listCount-1].id==equipweapon.id;\n }\n\n Sprite_sure.active = this.SoldierEquipServerData.wearWq == equipweapon.id;\n Sprite_chosse.active = this.WuQiChooseid == equipweapon.id;\n this.bindClickWuQiEvent(Button_yes1item1, equipweapon,isGuide);\n }\n }\n\n //武器 Label\n this.Prefabyes1item2 = this.yes1item2;\n this.Layout_yes1item2.removeAllChildren();\n\n for (let i = 0; i < this.EquipWeaponMaps.length; i++) {\n let itemNode = instantiate(this.Prefabyes1item2);\n if (itemNode) {\n itemNode.parent = this.Layout_yes1item2;\n let Button_yes1item2 = itemNode.getChildByName(\"Button_yes1item2\");\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let equipweapon = this.EquipWeaponMaps[i];\n soldierItem.SoldiersEquip = equipweapon;\n\n\n\n let Label_lv = Button_yes1item2.getChildByName(\"Label_lv\").getComponent(Label);\n let Label_qh = Button_yes1item2.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n\n let wuqiserverdata;\n if (this.SoldierEquipServerData.wqList != undefined) {\n wuqiserverdata = this.SoldierEquipServerData.wqList.find(item => item.id == equipweapon.id);\n if (wuqiserverdata) {\n if (wuqiserverdata.lv != undefined) {\n equipweapon.level = wuqiserverdata.lv;\n }\n }\n }\n //装备升级数据\n let WuQiEquipUpData;\n if (wuqiserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(wuqiserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n WuQiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(equipweapon.level, equipweapon.color);\n\n Label_qh.string = \"0/\" + WuQiEquipUpData.up;\n if (wuqiserverdata.num != undefined) {\n Label_qh.string = wuqiserverdata.num + \"/\" + WuQiEquipUpData.up;\n }\n } else {\n Label_qh.string = \"Max\";\n }\n Label_lv.string = GlobalFunction.ShowLV(wuqiserverdata.lv); //StringUtil.stringFormat(GlobalFunction.GetMsg(20009), value.level);\n } else {\n Label_lv.string = GlobalFunction.ShowLV(this.LEVEL);\n WuQiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(equipweapon.level, equipweapon.color);\n Label_qh.string = \"0/\" + WuQiEquipUpData.up;\n }\n\n }\n }\n\n let wuqiEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.WuQiChooseid);\n if (wuqiEquip != undefined) {\n this.SetWuQiEquipInfo(wuqiEquip, false);//初始给选中的装备栏赋值\n }\n\n } else {\n\n for (let i = 0; i < this.Layout_yes1item1.children.length; i++) {\n let itemNode = this.Layout_yes1item1.children[i];\n if (itemNode) {\n // itemNode.parent = this.Layout_yes1item1;\n let Button_yes1item1 = itemNode.getChildByName(\"Button_yes1item1\");\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let equipweapon = this.EquipWeaponMaps[i];\n soldierItem.SoldiersEquip = equipweapon;\n let Sprite_itemkuang = Button_yes1item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let equipColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(equipweapon.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_itemkuang, equipColor);\n\n let Sprite_item = Button_yes1item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_item, equipweapon.icon);\n\n // let Label_lv = Button_yes1item1.getChildByName(\"Label_lv\").getComponent(Label);\n let Sprite_sure = Button_yes1item1.getChildByName(\"Sprite_sure\");//是否装备\n let Sprite_chosse = Button_yes1item1.getChildByName(\"Sprite_chosse\");//是否被选中\n let Sprite_lock = Button_yes1item1.getChildByName(\"Sprite_lock\");//是否获得\n\n let ProgressBar_qh = Button_yes1item1.getChildByName(\"ProgressBar_qh\");//是否获得\n let Progress = ProgressBar_qh.getComponent(ProgressBar);\n Progress.progress = 0;\n // let Label_qh = ProgressBar_qh.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n Sprite_lock.active = true;\n let wuqiserverdata;\n if (this.SoldierEquipServerData.wqList != undefined) {\n wuqiserverdata = this.SoldierEquipServerData.wqList.find(item => item.id == equipweapon.id);\n if (wuqiserverdata) {\n if (wuqiserverdata.lv != undefined) {\n equipweapon.level = wuqiserverdata.lv;\n Sprite_lock.active = false;\n }\n }\n }\n //装备升级数据\n let WuQiEquipUpData;\n if (wuqiserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(wuqiserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n WuQiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(equipweapon.level, equipweapon.color);\n\n if (wuqiserverdata.num != undefined) {\n\n if (wuqiserverdata.num >= WuQiEquipUpData.up) {\n this.WuQiBoolean = true;\n }\n Progress.progress = wuqiserverdata.num / WuQiEquipUpData.up;\n }\n } else {\n this.WuQiBoolean = true;\n Progress.progress = 1;\n }\n }\n\n let isGuide : boolean =false;\n if( this.SoldierEquipServerData.wqList!=undefined && this.SoldierEquipServerData.wqList.length>0){\n this.SoldierEquipServerData.wqList.sort((a,b)=>a.id-b.id);\n let listCount = this.SoldierEquipServerData.wqList.length;\n isGuide = this.SoldierEquipServerData.wqList[listCount-1].id==equipweapon.id;\n }\n Sprite_sure.active = this.SoldierEquipServerData.wearWq == equipweapon.id;\n Sprite_chosse.active = this.WuQiChooseid == equipweapon.id;\n this.bindClickWuQiEvent(Button_yes1item1, equipweapon, isGuide);\n }\n }\n\n for (let i = 0; i < this.Layout_yes1item2.children.length; i++) {\n let itemNode = this.Layout_yes1item2.children[i];\n if (itemNode) {\n // itemNode.parent = this.Layout_yes1item2;\n let Button_yes1item2 = itemNode.getChildByName(\"Button_yes1item2\");\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let equipweapon = this.EquipWeaponMaps[i];\n soldierItem.SoldiersEquip = equipweapon;\n\n\n\n let Label_lv = Button_yes1item2.getChildByName(\"Label_lv\").getComponent(Label);\n let Label_qh = Button_yes1item2.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n\n let wuqiserverdata;\n if (this.SoldierEquipServerData.wqList != undefined) {\n wuqiserverdata = this.SoldierEquipServerData.wqList.find(item => item.id == equipweapon.id);\n if (wuqiserverdata) {\n if (wuqiserverdata.lv != undefined) {\n equipweapon.level = wuqiserverdata.lv;\n }\n }\n }\n //装备升级数据\n let WuQiEquipUpData;\n if (wuqiserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(wuqiserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n WuQiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(equipweapon.level, equipweapon.color);\n\n Label_qh.string = \"0/\" + WuQiEquipUpData.up;\n if (wuqiserverdata.num != undefined) {\n Label_qh.string = wuqiserverdata.num + \"/\" + WuQiEquipUpData.up;\n }\n } else {\n Label_qh.string = \"Max\";\n }\n Label_lv.string = GlobalFunction.ShowLV(wuqiserverdata.lv); //StringUtil.stringFormat(GlobalFunction.GetMsg(20009), value.level);\n } else {\n Label_lv.string = GlobalFunction.ShowLV(this.LEVEL);\n WuQiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(equipweapon.level, equipweapon.color);\n Label_qh.string = \"0/\" + WuQiEquipUpData.up;\n }\n\n }\n }\n\n let wuqiEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.WuQiChooseid);\n if (wuqiEquip != undefined) {\n this.SetWuQiEquipInfo(wuqiEquip, false);//初始给选中的装备栏赋值\n }\n }\n\n }\n\n if (this.yes2.active) {\n if (this.Layout_yes2item1.children.length == 1) {\n /**盔甲sprite */\n this.Prefabyes2item1 = this.yes2item1;\n this.Layout_yes2item1.removeAllChildren();\n for (let i = 0; i < this.EquipArmorMaps.length; i++) {\n let itemNode = instantiate(this.Prefabyes2item1);\n if (itemNode) {\n itemNode.parent = this.Layout_yes2item1;\n let Button_yes2item1 = itemNode.getChildByName(\"Button_yes2item1\");\n Button_yes2item1.active = true;\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipArmor = this.EquipArmorMaps[i];\n soldierItem.SoldiersEquip = EquipArmor;\n let Sprite_itemkuang = Button_yes2item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let equipColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(EquipArmor.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_itemkuang, equipColor);\n\n let Sprite_item = Button_yes2item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_item, EquipArmor.icon);\n\n // let Label_lv = Button_item2.getChildByName(\"Label_lv\").getComponent(Label);\n\n let Sprite_sure = Button_yes2item1.getChildByName(\"Sprite_sure\");//是否装备\n let Sprite_chosse = Button_yes2item1.getChildByName(\"Sprite_chosse\");//是否被选中\n let Sprite_lock = Button_yes2item1.getChildByName(\"Sprite_lock\");//是否获得\n let ProgressBar_qh = Button_yes2item1.getChildByName(\"ProgressBar_qh\");//是否获得\n let Progress = ProgressBar_qh.getComponent(ProgressBar);\n Progress.progress = 0;\n // let Label_qh = ProgressBar_qh.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n Sprite_lock.active = true;\n let kaijiaserverdata;\n if (this.SoldierEquipServerData.kJList != undefined) {\n kaijiaserverdata = this.SoldierEquipServerData.kJList.find(item => item.id == EquipArmor.id);\n if (kaijiaserverdata) {\n if (kaijiaserverdata.lv != undefined) {\n EquipArmor.level = kaijiaserverdata.lv;\n Sprite_lock.active = false;\n }\n }\n }\n //装备升级数据\n let KiaJiaEquipUpData;\n if (kaijiaserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(kaijiaserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n KiaJiaEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipArmor.level, EquipArmor.color);\n if (kaijiaserverdata.num != undefined) {\n if (kaijiaserverdata.num >= KiaJiaEquipUpData.up) {\n this.KaiJiaBoolean = true;\n }\n Progress.progress = kaijiaserverdata.num / KiaJiaEquipUpData.up;\n }\n } else {\n this.KaiJiaBoolean = true;\n Progress.progress = 1;\n }\n }\n Sprite_sure.active = this.SoldierEquipServerData.wearKj == EquipArmor.id;\n Sprite_chosse.active = this.KaiJiaChooseid == EquipArmor.id;\n this.bindClickKaiJiaEvent(Button_yes2item1, EquipArmor);\n\n }\n }\n\n\n /**盔甲label */\n this.Prefabyes2item2 = this.yes2item2;\n this.Layout_yes2item2.removeAllChildren();\n for (let i = 0; i < this.EquipArmorMaps.length; i++) {\n let itemNode = instantiate(this.Prefabyes2item2);\n if (itemNode) {\n itemNode.parent = this.Layout_yes2item2;\n let Button_yes2item2 = itemNode.getChildByName(\"Button_yes2item2\");\n Button_yes2item2.active = true;\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipArmor = this.EquipArmorMaps[i];\n soldierItem.SoldiersEquip = EquipArmor;\n let Label_lv = Button_yes2item2.getChildByName(\"Label_lv\").getComponent(Label);\n let Label_qh = Button_yes2item2.getChildByName(\"Label_qh\").getComponent(Label);\n let kaijiaserverdata;\n if (this.SoldierEquipServerData.kJList != undefined) {\n kaijiaserverdata = this.SoldierEquipServerData.kJList.find(item => item.id == EquipArmor.id);\n if (kaijiaserverdata) {\n if (kaijiaserverdata.lv != undefined) {\n EquipArmor.level = kaijiaserverdata.lv;\n }\n }\n }\n //装备升级数据\n let KiaJiaEquipUpData;\n if (kaijiaserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(kaijiaserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n KiaJiaEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipArmor.level, EquipArmor.color);\n Label_qh.string = \"0/\" + KiaJiaEquipUpData.up;\n if (kaijiaserverdata.num != undefined) {\n Label_qh.string = kaijiaserverdata.num + \"/\" + KiaJiaEquipUpData.up;\n }\n } else {\n Label_qh.string = \"Max\";\n\n }\n Label_lv.string = GlobalFunction.ShowLV(kaijiaserverdata.lv); //StringUtil.stringFormat(GlobalFunction.GetMsg(20009), value.level);\n } else {\n Label_lv.string = GlobalFunction.ShowLV(this.LEVEL);\n KiaJiaEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipArmor.level, EquipArmor.color);\n Label_qh.string = \"0/\" + KiaJiaEquipUpData.up;\n }\n\n }\n }\n\n let kaijiaEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.KaiJiaChooseid);\n if (kaijiaEquip != undefined) {\n this.SetKaiJiaEquipInfo(kaijiaEquip, false);//初始给选中的装备栏赋值\n }\n\n } else {\n\n for (let i = 0; i < this.Layout_yes2item1.children.length; i++) {\n let itemNode = this.Layout_yes2item1.children[i];\n if (itemNode) {\n // itemNode.parent = this.Layout_yes2item1;\n let Button_yes2item1 = itemNode.getChildByName(\"Button_yes2item1\");\n Button_yes2item1.active = true;\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipArmor = this.EquipArmorMaps[i];\n soldierItem.SoldiersEquip = EquipArmor;\n let Sprite_itemkuang = Button_yes2item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let equipColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(EquipArmor.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_itemkuang, equipColor);\n\n let Sprite_item = Button_yes2item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_item, EquipArmor.icon);\n\n // let Label_lv = Button_item2.getChildByName(\"Label_lv\").getComponent(Label);\n\n let Sprite_sure = Button_yes2item1.getChildByName(\"Sprite_sure\");//是否装备\n let Sprite_chosse = Button_yes2item1.getChildByName(\"Sprite_chosse\");//是否被选中\n let Sprite_lock = Button_yes2item1.getChildByName(\"Sprite_lock\");//是否获得\n let ProgressBar_qh = Button_yes2item1.getChildByName(\"ProgressBar_qh\");//是否获得\n let Progress = ProgressBar_qh.getComponent(ProgressBar);\n Progress.progress = 0;\n // let Label_qh = ProgressBar_qh.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n Sprite_lock.active = true;\n let kaijiaserverdata;\n if (this.SoldierEquipServerData.kJList != undefined) {\n kaijiaserverdata = this.SoldierEquipServerData.kJList.find(item => item.id == EquipArmor.id);\n if (kaijiaserverdata) {\n if (kaijiaserverdata.lv != undefined) {\n EquipArmor.level = kaijiaserverdata.lv;\n Sprite_lock.active = false;\n }\n }\n }\n //装备升级数据\n let KiaJiaEquipUpData;\n if (kaijiaserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(kaijiaserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n KiaJiaEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipArmor.level, EquipArmor.color);\n if (kaijiaserverdata.num != undefined) {\n if (kaijiaserverdata.num >= KiaJiaEquipUpData.up) {\n this.KaiJiaBoolean = true;\n }\n Progress.progress = kaijiaserverdata.num / KiaJiaEquipUpData.up;\n }\n } else {\n this.KaiJiaBoolean = true;\n Progress.progress = 1;\n }\n }\n Sprite_sure.active = this.SoldierEquipServerData.wearKj == EquipArmor.id;\n Sprite_chosse.active = this.KaiJiaChooseid == EquipArmor.id;\n this.bindClickKaiJiaEvent(Button_yes2item1, EquipArmor);\n\n }\n }\n for (let i = 0; i < this.Layout_yes2item2.children.length; i++) {\n let itemNode = this.Layout_yes2item2.children[i];\n if (itemNode) {\n // itemNode.parent = this.Layout_yes2item2;\n let Button_yes2item2 = itemNode.getChildByName(\"Button_yes2item2\");\n Button_yes2item2.active = true;\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipArmor = this.EquipArmorMaps[i];\n soldierItem.SoldiersEquip = EquipArmor;\n let Label_lv = Button_yes2item2.getChildByName(\"Label_lv\").getComponent(Label);\n let Label_qh = Button_yes2item2.getChildByName(\"Label_qh\").getComponent(Label);\n let kaijiaserverdata;\n if (this.SoldierEquipServerData.kJList != undefined) {\n kaijiaserverdata = this.SoldierEquipServerData.kJList.find(item => item.id == EquipArmor.id);\n if (kaijiaserverdata) {\n if (kaijiaserverdata.lv != undefined) {\n EquipArmor.level = kaijiaserverdata.lv;\n }\n }\n }\n //装备升级数据\n let KiaJiaEquipUpData;\n if (kaijiaserverdata) {\n if (GlobalFunction.ConvertUndefinedToNumber(kaijiaserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n KiaJiaEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipArmor.level, EquipArmor.color);\n Label_qh.string = \"0/\" + KiaJiaEquipUpData.up;\n if (kaijiaserverdata.num != undefined) {\n Label_qh.string = kaijiaserverdata.num + \"/\" + KiaJiaEquipUpData.up;\n }\n } else {\n Label_qh.string = \"Max\";\n\n }\n Label_lv.string = GlobalFunction.ShowLV(kaijiaserverdata.lv); //StringUtil.stringFormat(GlobalFunction.GetMsg(20009), value.level);\n } else {\n Label_lv.string = GlobalFunction.ShowLV(this.LEVEL);\n KiaJiaEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipArmor.level, EquipArmor.color);\n Label_qh.string = \"0/\" + KiaJiaEquipUpData.up;\n }\n\n }\n }\n\n let kaijiaEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.KaiJiaChooseid);\n if (kaijiaEquip != undefined) {\n this.SetKaiJiaEquipInfo(kaijiaEquip, false);//初始给选中的装备栏赋值\n }\n }\n\n }\n\n if (this.yes3.active) {\n if (this.Layout_yes3item1.children.length == 1) {\n\n /**帽子sprite */\n this.Prefabyes3item1 = this.yes3item1;\n this.Layout_yes3item1.removeAllChildren();\n for (let i = 0; i < this.EquipHatMaps.length; i++) {\n let itemNode = instantiate(this.Prefabyes3item1);\n if (itemNode) {\n itemNode.parent = this.Layout_yes3item1;\n let Button_yes3item1 = itemNode.getChildByName(\"Button_yes3item1\");\n\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipHat = this.EquipHatMaps[i];\n soldierItem.SoldiersEquip = EquipHat;\n let Sprite_itemkuang = Button_yes3item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let equipColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(EquipHat.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_itemkuang, equipColor);\n\n let Sprite_item = Button_yes3item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_item, EquipHat.icon);\n\n // let Label_lv = Button_item3.getChildByName(\"Label_lv\").getComponent(Label);\n let Sprite_sure = Button_yes3item1.getChildByName(\"Sprite_sure\");//是否装备\n let Sprite_chosse = Button_yes3item1.getChildByName(\"Sprite_chosse\");//是否被选中\n let Sprite_lock = Button_yes3item1.getChildByName(\"Sprite_lock\");//是否获得\n\n let ProgressBar_qh = Button_yes3item1.getChildByName(\"ProgressBar_qh\");//是否获得\n let Progress = ProgressBar_qh.getComponent(ProgressBar);\n Progress.progress = 0;\n // let Label_qh = ProgressBar_qh.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n Sprite_lock.active = true;\n let maoziserverdata;\n if (this.SoldierEquipServerData.hatList != undefined) {\n maoziserverdata = this.SoldierEquipServerData.hatList.find(item => item.id == EquipHat.id);\n if (maoziserverdata) {\n if (maoziserverdata.lv != undefined) {\n EquipHat.level = maoziserverdata.lv;\n Sprite_lock.active = false;\n }\n }\n }\n //装备升级数据\n let MaiZiEquipUpData;\n if (maoziserverdata) {\n\n if (GlobalFunction.ConvertUndefinedToNumber(maoziserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n MaiZiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipHat.level, EquipHat.color);\n if (maoziserverdata.num != undefined) {\n if (maoziserverdata.num >= MaiZiEquipUpData.up) {\n this.MaoZiBoolean = true;\n }\n Progress.progress = maoziserverdata.num / MaiZiEquipUpData.up;\n }\n } else {\n this.MaoZiBoolean = true;\n Progress.progress = 1;\n }\n }\n Sprite_sure.active = this.SoldierEquipServerData.wearHat == EquipHat.id;\n Sprite_chosse.active = this.MaoZiChooseid == EquipHat.id;\n this.bindClickMaoZiEvent(Button_yes3item1, EquipHat);\n }\n }\n\n\n /**帽子label */\n this.Prefabyes3item2 = this.yes3item2;\n this.Layout_yes3item2.removeAllChildren();\n for (let i = 0; i < this.EquipHatMaps.length; i++) {\n let itemNode = instantiate(this.Prefabyes3item2);\n if (itemNode) {\n itemNode.parent = this.Layout_yes3item2;\n let Button_yes3item2 = itemNode.getChildByName(\"Button_yes3item2\");\n // itemNode.getComponent(Button).clickEvents.push(clickEventHandler);\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipHat = this.EquipHatMaps[i];\n soldierItem.SoldiersEquip = EquipHat;\n let Label_lv = Button_yes3item2.getChildByName(\"Label_lv\").getComponent(Label);\n let Label_qh = Button_yes3item2.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n let maoziserverdata;\n if (this.SoldierEquipServerData.hatList != undefined) {\n maoziserverdata = this.SoldierEquipServerData.hatList.find(item => item.id == EquipHat.id);\n if (maoziserverdata) {\n if (maoziserverdata.lv != undefined) {\n EquipHat.level = maoziserverdata.lv;\n }\n }\n }\n //装备升级数据\n let MaiZiEquipUpData;\n if (maoziserverdata) {\n\n if (GlobalFunction.ConvertUndefinedToNumber(maoziserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n MaiZiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipHat.level, EquipHat.color);\n Label_qh.string = \"0/\" + MaiZiEquipUpData.up;\n if (maoziserverdata.num != undefined) {\n Label_qh.string = maoziserverdata.num + \"/\" + MaiZiEquipUpData.up;\n }\n } else {\n Label_qh.string = \"Max\";\n }\n Label_lv.string = GlobalFunction.ShowLV(maoziserverdata.lv);\n } else {\n Label_lv.string = GlobalFunction.ShowLV(this.LEVEL);\n MaiZiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipHat.level, EquipHat.color);\n Label_qh.string = \"0/\" + MaiZiEquipUpData.up;\n }\n }\n }\n\n let maoziEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.MaoZiChooseid);\n if (maoziEquip != undefined) {\n this.SetMaoZiEquipInfo(maoziEquip, false);//初始给选中的装备栏赋值\n }\n } else {\n for (let i = 0; i < this.Layout_yes3item1.children.length; i++) {\n let itemNode = this.Layout_yes3item1.children[i];\n if (itemNode) {\n // itemNode.parent = this.Layout_yes3item1;\n let Button_yes3item1 = itemNode.getChildByName(\"Button_yes3item1\");\n\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipHat = this.EquipHatMaps[i];\n soldierItem.SoldiersEquip = EquipHat;\n let Sprite_itemkuang = Button_yes3item1.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let equipColor = SoldierEquipProxy.Inst.GetSoldierEquipKuang(EquipHat.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_itemkuang, equipColor);\n\n let Sprite_item = Button_yes3item1.getChildByName(\"Sprite_item\").getComponent(Sprite);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_item, EquipHat.icon);\n\n // let Label_lv = Button_item3.getChildByName(\"Label_lv\").getComponent(Label);\n let Sprite_sure = Button_yes3item1.getChildByName(\"Sprite_sure\");//是否装备\n let Sprite_chosse = Button_yes3item1.getChildByName(\"Sprite_chosse\");//是否被选中\n let Sprite_lock = Button_yes3item1.getChildByName(\"Sprite_lock\");//是否获得\n\n let ProgressBar_qh = Button_yes3item1.getChildByName(\"ProgressBar_qh\");//是否获得\n let Progress = ProgressBar_qh.getComponent(ProgressBar);\n Progress.progress = 0;\n // let Label_qh = ProgressBar_qh.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n\n Sprite_lock.active = true;\n let maoziserverdata;\n if (this.SoldierEquipServerData.hatList != undefined) {\n maoziserverdata = this.SoldierEquipServerData.hatList.find(item => item.id == EquipHat.id);\n if (maoziserverdata) {\n if (maoziserverdata.lv != undefined) {\n EquipHat.level = maoziserverdata.lv;\n Sprite_lock.active = false;\n }\n }\n }\n //装备升级数据\n let MaiZiEquipUpData;\n if (maoziserverdata) {\n\n if (GlobalFunction.ConvertUndefinedToNumber(maoziserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n MaiZiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipHat.level, EquipHat.color);\n if (maoziserverdata.num != undefined) {\n if (maoziserverdata.num >= MaiZiEquipUpData.up) {\n this.MaoZiBoolean = true;\n }\n Progress.progress = maoziserverdata.num / MaiZiEquipUpData.up;\n }\n } else {\n this.MaoZiBoolean = true;\n Progress.progress = 1;\n }\n }\n Sprite_sure.active = this.SoldierEquipServerData.wearHat == EquipHat.id;\n Sprite_chosse.active = this.MaoZiChooseid == EquipHat.id;\n this.bindClickMaoZiEvent(Button_yes3item1, EquipHat);\n }\n }\n\n for (let i = 0; i < this.Layout_yes3item2.children.length; i++) {\n let itemNode = this.Layout_yes3item2.children[i];\n if (itemNode) {\n // itemNode.parent = this.Layout_yes3item2;\n let Button_yes3item2 = itemNode.getChildByName(\"Button_yes3item2\");\n // itemNode.getComponent(Button).clickEvents.push(clickEventHandler);\n let soldierItem = itemNode.getComponent(SoldierEquipItem);\n let EquipHat = this.EquipHatMaps[i];\n soldierItem.SoldiersEquip = EquipHat;\n let Label_lv = Button_yes3item2.getChildByName(\"Label_lv\").getComponent(Label);\n let Label_qh = Button_yes3item2.getChildByName(\"Label_qh\").getComponent(Label);//当前获得数量比\n let maoziserverdata;\n if (this.SoldierEquipServerData.hatList != undefined) {\n maoziserverdata = this.SoldierEquipServerData.hatList.find(item => item.id == EquipHat.id);\n if (maoziserverdata) {\n if (maoziserverdata.lv != undefined) {\n EquipHat.level = maoziserverdata.lv;\n }\n }\n }\n //装备升级数据\n let MaiZiEquipUpData;\n if (maoziserverdata) {\n\n if (GlobalFunction.ConvertUndefinedToNumber(maoziserverdata.lv) < SoldierEquipProxy.Inst.GetSoldierEquipMaxLevel()) {\n MaiZiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipHat.level, EquipHat.color);\n Label_qh.string = \"0/\" + MaiZiEquipUpData.up;\n if (maoziserverdata.num != undefined) {\n Label_qh.string = maoziserverdata.num + \"/\" + MaiZiEquipUpData.up;\n }\n } else {\n Label_qh.string = \"Max\";\n }\n Label_lv.string = GlobalFunction.ShowLV(maoziserverdata.lv);\n } else {\n Label_lv.string = GlobalFunction.ShowLV(this.LEVEL);\n MaiZiEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(EquipHat.level, EquipHat.color);\n Label_qh.string = \"0/\" + MaiZiEquipUpData.up;\n }\n }\n }\n let maoziEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.MaoZiChooseid);\n if (maoziEquip != undefined) {\n this.SetMaoZiEquipInfo(maoziEquip, false);//初始给选中的装备栏赋值\n }\n }\n\n \n \n \n }\n\n\n\n this.SetButtonQHRed();\n }\n\n SetButtonQHRed() {\n //强化按钮是否灰显\n let Button_qh = this.Panle_equipt.getChildByName(\"Button_qh\");\n if (this.WuQiBoolean || this.KaiJiaBoolean || this.MaoZiBoolean) {\n Button_qh.getComponent(Sprite).grayscale = false;\n this.Sprite_qhred.active = true;\n } else {\n Button_qh.getComponent(Sprite).grayscale = true;\n this.Sprite_qhred.active = false;\n }\n }\n\n\n SetWuQiEquipInfo(wuqiEquip: SoldiersEquip, IsNotMoRen: boolean = true) {\n let Sprite_pingzhizhu1 = this.Sprite_pingzhizhu1.getComponent(Sprite);\n let Sprite_zhu1 = this.Sprite_zhu1.getComponent(Sprite);\n let Label_zhulv1 = this.Label_zhulv1.getComponent(Label);\n let Label_zhuangbei1 = this.Label_zhuangbei1.getComponent(RichText);//裝備效果\n let Label_yongyou1 = this.Label_yongyou1.getComponent(RichText);//擁有效果\n let Label_dec1 = this.Label_dec1.getComponent(Label);//可替換\n let Button_get1 = this.yes1.getChildByName(\"Button_get1\").getComponent(Sprite);\n let equipicon = SoldierEquipProxy.Inst.GetSoldierEquipKuang(wuqiEquip.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_pingzhizhu1, equipicon);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_zhu1, wuqiEquip.icon);\n Label_zhulv1.string = GlobalFunction.ShowLV(wuqiEquip.level);\n let IsUnLockWuQi: boolean; //是否解锁\n if (this.SoldierEquipServerData.wqList != undefined) {\n let wuqidatadata = this.SoldierEquipServerData.wqList.find(item => item.id == wuqiEquip.id);\n if (wuqidatadata && wuqidatadata.lv != undefined) {\n Label_zhulv1.string = GlobalFunction.ShowLV(wuqidatadata.lv);\n IsUnLockWuQi = true;\n }\n }\n\n let zhuangbei1 = SoldierEquipProxy.Inst.GetHaveType(wuqiEquip.haveType);\n let djequipUpData: SoldiersEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(wuqiEquip.level, wuqiEquip.color);//获取点击装备的数值\n this.Label_dec1.active = true;\n this.Sprite_up1.active = false;\n this.Sprite_down1.active = false;\n\n\n if (this.SoldierEquipServerData.wearWq != undefined) {\n let cadata: SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.SoldierEquipServerData.wearWq);\n let cdequipUpData: SoldiersEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(cadata.level, cadata.color);//获取穿戴装备的数值\n\n\n if (IsNotMoRen) { //穿了装备,并点击的其他按钮\n if (this.SoldierEquipServerData.wearWq == wuqiEquip.id) {\n this.Label_dec1.active = false;\n Button_get1.grayscale = true;\n Label_zhuangbei1.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei1, SoldierEquipProxy.Inst.GetWFBString(cdequipUpData.att)); //基本属性\n\n } else {\n this.Label_dec1.active = true;\n if (IsUnLockWuQi) {\n Button_get1.grayscale = false;\n Label_dec1.string = GlobalFunction.GetMsg(20080);\n } else {\n Button_get1.grayscale = true;\n Label_dec1.string = GlobalFunction.GetMsg(20173);\n }\n if (cdequipUpData.att > djequipUpData.att) {\n this.Sprite_down1.active = true;\n Label_zhuangbei1.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20084), zhuangbei1, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att), SoldierEquipProxy.Inst.GetAddWFBString(cdequipUpData.att, djequipUpData.att));//下降\n } else if (cdequipUpData.att < djequipUpData.att) {\n this.Sprite_up1.active = true;\n Label_zhuangbei1.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20083), zhuangbei1, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att), SoldierEquipProxy.Inst.GetAddWFBString(djequipUpData.att, cdequipUpData.att));//上升\n } else {\n Label_zhuangbei1.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei1, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att)); //基本属性\n\n }\n }\n\n } else {\n //默认选中穿了的装备\n this.Label_dec1.active = false;\n Button_get1.grayscale = true;\n Label_zhuangbei1.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei1, SoldierEquipProxy.Inst.GetWFBString(cdequipUpData.att)); //基本属性\n }\n\n } else {\n if (IsUnLockWuQi) {\n\n Button_get1.grayscale = false;\n this.Label_dec1.active = false;\n } else {\n Button_get1.grayscale = true;\n Label_dec1.string = GlobalFunction.GetMsg(20173);\n }\n Label_zhuangbei1.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei1, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att)); //基本属性\n }\n Label_yongyou1.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20085), zhuangbei1, SoldierEquipProxy.Inst.GetWFBString(wuqiEquip.have));\n }\n\n\n SetKaiJiaEquipInfo(kaijiaEquip: SoldiersEquip, IsNotMoRen: boolean = true) {\n let Sprite_pingzhizhu2 = this.Sprite_pingzhizhu2.getComponent(Sprite);\n let Sprite_zhu2 = this.Sprite_zhu2.getComponent(Sprite);\n let Label_zhulv2 = this.Label_zhulv2.getComponent(Label);\n let Label_zhuangbei2 = this.Label_zhuangbei2.getComponent(RichText);//裝備效果\n let Sprite_up2 = this.Sprite_up2.getComponent(Sprite);//屬性是否提升\n let Label_yongyou2 = this.Label_yongyou2.getComponent(RichText);//擁有效果\n let Button_get2 = this.yes2.getChildByName(\"Button_get2\").getComponent(Sprite);\n let Label_dec2 = this.Label_dec2.getComponent(Label);//可替換\n let equipicon = SoldierEquipProxy.Inst.GetSoldierEquipKuang(kaijiaEquip.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_pingzhizhu2, equipicon);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_zhu2, kaijiaEquip.icon);\n Label_zhulv2.string = GlobalFunction.ShowLV(kaijiaEquip.level);\n\n let IsUnLockKaiJia: boolean; //是否解锁\n if (this.SoldierEquipServerData.kJList != undefined) {\n let kaijiadata = this.SoldierEquipServerData.kJList.find(item => item.id == kaijiaEquip.id);\n if (kaijiadata && kaijiadata.lv != undefined) {\n IsUnLockKaiJia = true;\n Label_zhulv2.string = GlobalFunction.ShowLV(kaijiadata.lv);\n }\n }\n\n let zhuangbei2 = SoldierEquipProxy.Inst.GetHaveType(kaijiaEquip.haveType);\n let djequipUpData: SoldiersEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(kaijiaEquip.level, kaijiaEquip.color);//获取点击装备的数值\n this.Label_dec2.active = true;\n this.Sprite_up2.active = false;\n this.Sprite_down2.active = false;\n\n\n if (this.SoldierEquipServerData.wearKj != undefined) {\n let cadata: SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.SoldierEquipServerData.wearKj);\n let cdequipUpData: SoldiersEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(cadata.level, cadata.color);//获取穿戴装备的数值\n\n\n if (IsNotMoRen) { //穿了装备,并点击的其他按钮\n if (this.SoldierEquipServerData.wearKj == kaijiaEquip.id) {\n this.Label_dec2.active = false;\n Button_get2.grayscale = true;\n Label_zhuangbei2.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei2, SoldierEquipProxy.Inst.GetWFBString(cdequipUpData.att)); //基本属性\n\n } else {\n this.Label_dec2.active = true;\n if (IsUnLockKaiJia) {\n Button_get2.grayscale = false;\n Label_dec2.string = GlobalFunction.GetMsg(20080);\n } else {\n Button_get2.grayscale = true;\n Label_dec2.string = GlobalFunction.GetMsg(20173);\n }\n if (cdequipUpData.att > djequipUpData.att) {\n this.Sprite_down2.active = true;\n Label_zhuangbei2.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20084), zhuangbei2, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att), SoldierEquipProxy.Inst.GetAddWFBString(cdequipUpData.att, djequipUpData.att));//下降\n } else if (cdequipUpData.att < djequipUpData.att) {\n this.Sprite_up2.active = true;\n Label_zhuangbei2.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20083), zhuangbei2, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att), SoldierEquipProxy.Inst.GetAddWFBString(djequipUpData.att, cdequipUpData.att));//上升\n } else {\n Label_zhuangbei2.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei2, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att)); //基本属性\n\n }\n }\n\n } else {\n //默认选中穿了的装备\n this.Label_dec2.active = false;\n Button_get2.grayscale = true;\n Label_zhuangbei2.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei2, SoldierEquipProxy.Inst.GetWFBString(cdequipUpData.att)); //基本属性\n }\n\n } else {\n if (IsUnLockKaiJia) {\n Button_get2.grayscale = false;\n this.Label_dec2.active = false;\n } else {\n Button_get2.grayscale = true;\n Label_dec2.string = GlobalFunction.GetMsg(20173);\n }\n Label_zhuangbei2.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei2, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att)); //基本属性\n }\n Label_yongyou2.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20085), zhuangbei2, SoldierEquipProxy.Inst.GetWFBString(kaijiaEquip.have));\n\n\n }\n\n\n SetMaoZiEquipInfo(maoziEquip: SoldiersEquip, IsNotMoRen: boolean = true) {\n let Sprite_pingzhizhu3 = this.Sprite_pingzhizhu3.getComponent(Sprite);\n let Sprite_zhu3 = this.Sprite_zhu3.getComponent(Sprite);\n let Label_zhulv3 = this.Label_zhulv3.getComponent(Label);\n let Label_zhuangbei3 = this.Label_zhuangbei3.getComponent(RichText);//裝備效果\n let Sprite_up3 = this.Sprite_up3.getComponent(Sprite);//屬性是否提升\n let Button_get3 = this.yes3.getChildByName(\"Button_get3\").getComponent(Sprite);\n let Label_yongyou3 = this.Label_yongyou3.getComponent(RichText);//擁有效果\n let Label_dec3 = this.Label_dec3.getComponent(Label);//可替換\n let equipicon = SoldierEquipProxy.Inst.GetSoldierEquipKuang(maoziEquip.color);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_pingzhizhu3, equipicon);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_zhu3, maoziEquip.icon);\n Label_zhulv3.string = GlobalFunction.ShowLV(maoziEquip.level);\n\n let IsUnLockMaoZi: boolean; //是否解锁\n if (this.SoldierEquipServerData.hatList != undefined) {\n let maizidata = this.SoldierEquipServerData.hatList.find(item => item.id == maoziEquip.id);\n if (maizidata && maizidata.lv != undefined) {\n IsUnLockMaoZi = true;\n Label_zhulv3.string = GlobalFunction.ShowLV(maizidata.lv);\n }\n }\n\n let zhuangbei3 = SoldierEquipProxy.Inst.GetHaveType(maoziEquip.haveType);\n let djequipUpData: SoldiersEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(maoziEquip.level, maoziEquip.color);//获取点击装备的数值\n this.Label_dec3.active = true;\n this.Sprite_up3.active = false;\n this.Sprite_down3.active = false;\n\n\n if (this.SoldierEquipServerData.wearHat != undefined) {\n let cadata: SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(this.SoldierEquipServerData.wearHat);\n let cdequipUpData: SoldiersEquipUpData = SoldierEquipProxy.Inst.GetEquipUpLVData(cadata.level, cadata.color);//获取穿戴装备的数值\n\n\n if (IsNotMoRen) { //穿了装备,并点击的其他按钮\n if (this.SoldierEquipServerData.wearHat == maoziEquip.id) {\n this.Label_dec3.active = false;\n Button_get3.grayscale = true;\n Label_zhuangbei3.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei3, SoldierEquipProxy.Inst.GetWFBString(cdequipUpData.att)); //基本属性\n\n } else {\n this.Label_dec3.active = true;\n if (IsUnLockMaoZi) {\n Button_get3.grayscale = false;\n Label_dec3.string = GlobalFunction.GetMsg(20080);\n } else {\n Button_get3.grayscale = true;\n Label_dec3.string = GlobalFunction.GetMsg(20173);\n }\n if (cdequipUpData.att > djequipUpData.att) {\n this.Sprite_down3.active = true;\n Label_zhuangbei3.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20084), zhuangbei3, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att), SoldierEquipProxy.Inst.GetAddWFBString(cdequipUpData.att, djequipUpData.att));//下降\n } else if (cdequipUpData.att < djequipUpData.att) {\n this.Sprite_up3.active = true;\n Label_zhuangbei3.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20083), zhuangbei3, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att), SoldierEquipProxy.Inst.GetAddWFBString(djequipUpData.att, cdequipUpData.att));//上升\n } else {\n Label_zhuangbei3.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei3, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att)); //基本属性\n\n }\n }\n\n } else {\n //默认选中穿了的装备\n this.Label_dec3.active = false;\n Button_get3.grayscale = true;\n Label_zhuangbei3.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei3, SoldierEquipProxy.Inst.GetWFBString(cdequipUpData.att)); //基本属性\n }\n\n } else {\n if (IsUnLockMaoZi) {\n Button_get3.grayscale = false;\n this.Label_dec3.active = false;\n } else {\n Button_get3.grayscale = true;\n Label_dec3.string = GlobalFunction.GetMsg(20173);\n }\n Label_zhuangbei3.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20082), zhuangbei3, SoldierEquipProxy.Inst.GetWFBString(djequipUpData.att)); //基本属性\n }\n Label_yongyou3.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20085), zhuangbei3, SoldierEquipProxy.Inst.GetWFBString(maoziEquip.have));\n\n\n }\n\n\n /** 显示士兵裝備List*/\n SetListViewShow(equipBigType: EquipBigType) {\n let buildType = SoldiersBuildType.ZhanShiWuQI;\n if (equipBigType == EquipBigType.EquipBigType1) {\n this.List1.active = true;\n this.yes1.active = this.List1.active;\n this.no1.active = !this.yes1.active;\n this.List2.active = this.yes1.active;\n this.yes2.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.ZhanShiKaiJia);\n this.no2.active = !this.yes2.active;\n this.List3.active = this.yes2.active;\n this.yes3.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.ZhanShiMaoZi);\n this.no3.active = !this.yes3.active && !this.no2.active;\n if (this.no2.active) {\n buildType = SoldiersBuildType.ZhanShiKaiJia;\n }\n if (this.no3.active) {\n buildType = SoldiersBuildType.ZhanShiMaoZi;\n }\n } else if (equipBigType == EquipBigType.EquipBigType2) {\n this.List1.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.FaShiWuQi);\n this.yes1.active = this.List1.active;\n this.no1.active = !this.yes1.active;\n this.List2.active = this.yes1.active;\n this.yes2.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.FaShiKaiJia);\n this.no2.active = !this.yes2.active;\n this.List3.active = this.yes2.active;\n this.yes3.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.FaShiMaoZi);\n this.no3.active = !this.yes3.active && !this.no2.active;\n if (this.no2.active) {\n buildType = SoldiersBuildType.FaShiKaiJia;\n }\n if (this.no3.active) {\n buildType = SoldiersBuildType.FaShiMaoZi;\n }\n\n } else if (equipBigType == EquipBigType.EquipBigType3) {\n this.List1.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.ChiKeWuQi);\n this.yes1.active = this.List1.active;\n this.no1.active = !this.yes1.active;\n this.List2.active = this.yes1.active;\n this.yes2.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.ChiKeKaiJia);\n this.no2.active = !this.yes2.active;\n this.List3.active = this.yes2.active;\n this.yes3.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.ChiKeMaoZi);\n this.no3.active = !this.yes3.active && !this.no2.active;\n if (this.no2.active) {\n buildType = SoldiersBuildType.ChiKeKaiJia;\n }\n if (this.no3.active) {\n buildType = SoldiersBuildType.ChiKeMaoZi;\n }\n } else if (equipBigType == EquipBigType.EquipBigType4) {\n this.List1.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.PaoShouWuQi);\n this.yes1.active = this.List1.active;\n this.no1.active = !this.yes1.active;\n this.List2.active = this.yes1.active;\n this.yes2.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.PaoShouKaiJia);\n this.no2.active = !this.yes2.active;\n this.List3.active = this.yes2.active;\n this.yes3.active = PassPoxy.Inst.GetBuildIsUnLock(this.CurrentUnLockBuildList, SoldiersBuildType.PaoShouMaoZi);\n this.no3.active = !this.yes3.active && !this.no2.active;\n if (this.no2.active) {\n buildType = SoldiersBuildType.PaoShouKaiJia;\n }\n if (this.no3.active) {\n buildType = SoldiersBuildType.PaoShouMaoZi;\n }\n }\n if (this.no2.active) {\n this.Label_no2.getComponent(Label).string = PassPoxy.Inst.GetUnLockLevelDec(buildType);\n }\n if (this.no3.active) {\n this.Label_no3.getComponent(Label).string = PassPoxy.Inst.GetUnLockLevelDec(buildType);\n }\n\n }\n\n /** 點擊武器 */\n bindClickWuQiEvent(itemnode: Node, wuqiEquip: SoldiersEquip , isLast:boolean = false) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickWuQi\";\n clickEventHandler.customEventData = wuqiEquip.id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n itemnode[\"islast\"] = true\n if(isLast){\n if(GuideManager.getInstance().isInGuide){\n EventManager.Inst.event(EventType.uiOpenEvent_10010 , [10010 , itemnode])\n }\n }\n }\n\n CallOnclickWuQi(itemnode, equipid) {\n if(itemnode[\"islast\"] == true){\n EventManager.Inst.event(EventType.guideEvent_10010, 10010);\n setTimeout(() => {\n GuideManager.getInstance().waitSmallId = 10011;\n EventManager.Inst.event(EventType.uiOpenEvent_10011 , [10011 , this.Button_get1.node])\n }, 100);\n\n }\n let node = itemnode.target;\n let id = parseInt(equipid);\n if (this.WuQiChooseid == id) {\n return;\n } else {\n for (let i = 0; i < this.Layout_yes1item1.children.length; i++) {\n let node1 = this.Layout_yes1item1.children[i];\n let SoldierEquip = node1.getComponent(SoldierEquipItem);\n if (SoldierEquip.SoldiersEquip.id == this.WuQiChooseid) {\n let choose = node1.getChildByName(\"Button_yes1item1\").getChildByName(\"Sprite_chosse\");\n choose.active = false;\n break;\n }\n }\n node.getChildByName(\"Sprite_chosse\").active = true;\n this.WuQiChooseid = id;\n }\n let equipdata = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id)\n this.SetWuQiEquipInfo(equipdata);//给选中的装备栏赋值\n }\n /** 點擊铠甲 */\n bindClickKaiJiaEvent(itemnode: Node, wuqiEquip: SoldiersEquip) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickKaiJia\";\n clickEventHandler.customEventData = wuqiEquip.id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickKaiJia(itemnode, equipid) {\n let node = itemnode.target;\n let id = parseInt(equipid);\n if (this.KaiJiaChooseid == id) {\n return;\n } else {\n for (let i = 0; i < this.Layout_yes2item1.children.length; i++) {\n let node1 = this.Layout_yes2item1.children[i];\n let SoldierEquip = node1.getComponent(SoldierEquipItem);\n if (SoldierEquip.SoldiersEquip.id == this.KaiJiaChooseid) {\n let choose = node1.getChildByName(\"Button_yes2item1\").getChildByName(\"Sprite_chosse\");\n choose.active = false;\n }\n }\n node.getChildByName(\"Sprite_chosse\").active = true;\n this.KaiJiaChooseid = id;\n }\n let equipdata = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id)\n this.SetKaiJiaEquipInfo(equipdata);\n }\n /** 點擊帽子 */\n bindClickMaoZiEvent(itemnode: Node, wuqiEquip: SoldiersEquip) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickMaoZi\";\n clickEventHandler.customEventData = wuqiEquip.id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickMaoZi(itemnode, equipid) {\n let node = itemnode.target;\n let id = parseInt(equipid);\n if (this.MaoZiChooseid == id) {\n return;\n } else {\n for (let i = 0; i < this.Layout_yes3item1.children.length; i++) {\n let node1 = this.Layout_yes3item1.children[i];\n let SoldierEquip = node1.getComponent(SoldierEquipItem);\n if (SoldierEquip.SoldiersEquip.id == this.MaoZiChooseid) {\n let choose = node1.getChildByName(\"Button_yes3item1\").getChildByName(\"Sprite_chosse\");\n choose.active = false;\n }\n }\n node.getChildByName(\"Sprite_chosse\").active = true;\n this.MaoZiChooseid = id;\n }\n let equipdata = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id)\n this.SetMaoZiEquipInfo(equipdata);\n }\n\n private itemHeight: number = 280; // 根据实际预制体高度设置\n private totalItems: number = SoldierTuJianProxy.Inst.SoldierTuJianConfigList.length; // 总数据量\n private visibleItems: number = 5; // 可视区域显示的项数\n private bufferItems: number = 2; // 缓冲区项数\n private items: Node[] = [];\n\n\n /*** 士兵裝備图鉴 */\n showTuJianPane() {\n this.soldierTuJianList = SoldierTuJianProxy.Inst.SoldierTuJianConfigList;\n this.SortSoldierTuJianList();\n // if (this.Layou_tujian.children.length == 1) {\n this.itemTuJianPrefabs = this.tujian;\n this.Layou_tujian.removeAllChildren();\n\n this.Layou_tujian.setPosition (new Vec3(0 , 550 , 0))\n for (let i = 0; i < this.visibleItems +this.bufferItems; i++) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.itemTuJianPrefabs);\n if (itemNode) {\n itemNode.parent = this.Layou_tujian;\n\n itemNode.setPosition(new Vec3(0, -i * this.itemHeight - 140, 0));\n // console.log(\"初始位置:\" + itemNode.position , \"數據L:\" + i)\n this.items[i] = itemNode;\n this.updateItem(itemNode, i);\n }\n }\n }\n\n updateItem(itemNode: Node, index: number) {\n // 更新列表项内容,例如:\n let equipTujianData = this.soldierTuJianList[index];//配置表\n\n let serverTJData = SoldierEquipProxy.Inst.SoldiersTJMaps.find(item => item.id == equipTujianData.id);//服务器\n\n // if (serverTJData == undefined) return;\n\n let Layout_item = itemNode.getChildByName(\"Layout_item1\");\n let item = Layout_item.getChildByName(\"item1\");\n let itemprefab = item;\n Layout_item.removeAllChildren();\n let Button_jihuonot = itemNode.getChildByName(\"Button_jihuonot\");\n let Button_jihuo = itemNode.getChildByName(\"Button_jihuo\");\n let Sprite_yijihuo = itemNode.getChildByName(\"Sprite_yijihuo\");\n let Lable_1 = itemNode.getChildByName(\"Lable_1\");\n\n Button_jihuonot.active = GlobalFunction.ConvertUndefinedToNumber(serverTJData.state) == 0;\n Button_jihuo.active = GlobalFunction.ConvertUndefinedToNumber(serverTJData.state) == 2;\n Sprite_yijihuo.active = GlobalFunction.ConvertUndefinedToNumber(serverTJData.state) == 1;\n\n\n\n // let Label_tujiandec = itemNode.getChildByName(\"Label_tujiandec\").getComponent(Label);\n // Label_name.string = equipTujianData.lan_name;\n let button =Button_jihuo.getComponent(Button);\n\n // this.bindClickJiHuoEvent(Button_jihuo, equipTujianData);\n\n // this.bindClickJiHuoNotEvent(Button_jihuonot, equipTujianData);\n\n //sprite\n for (let index = 0; index < serverTJData.eqList.length; index++) {\n let itemChildNode = instantiate(itemprefab);\n if (itemChildNode) {\n itemChildNode.parent = Layout_item;\n const element = serverTJData.eqList[index];\n\n\n let soldierdata = SoldierEquipProxy.Inst.GetSoldiersEquipByID(element.eqId);\n let soldierpzdb = SoldierEquipProxy.Inst.GetSoldierEquipKuang(soldierdata.color);\n let Sprite_itemkuang = itemChildNode.getChildByName(\"Sprite_itemkuang\").getComponent(Sprite);\n let Sprite_item = itemChildNode.getChildByName(\"Sprite_item\").getComponent(Sprite);\n // let Label_itemlv = itemChildNode.getChildByName(\"Label_itemlv\").getComponent(Label);\n let Sprite_lock = itemChildNode.getChildByName(\"Sprite_lock\");\n GlobalFunction.SetSpriteSoldierFrame(Sprite_itemkuang, soldierpzdb);\n GlobalFunction.SetSpriteSoldierFrame(Sprite_item, soldierdata.icon);\n\n\n // Label_itemlv.string = GlobalFunction.ShowLV(element.needLv);\n Sprite_lock.active = GlobalFunction.ConvertUndefinedToNumber(element.lv) < element.needLv;\n\n }\n\n }\n \n //label\n let Label_name = Lable_1.getChildByName(\"Label_name\").getComponent(Label);\n Label_name.string = StringUtil.stringFormat(equipTujianData.lan_name, equipTujianData.buffnum); //GlobalFunction.GetMsg(e) BuffPoxy.Inst.ShowBuffDec(equipTujianData.buffid);\n let Layout_item2 = Lable_1.getChildByName(\"Layout_item2\");\n let item2 = Layout_item2.getChildByName(\"item2\");\n let item2prefab = item2;\n Layout_item2.removeAllChildren();\n // console.log(\"實際展示:\"+Label_name.string +\" index==\"+index)\n\n for (let index = 0; index < serverTJData.eqList.length; index++) {\n let itemChildNode = instantiate(item2prefab);\n if (itemChildNode) {\n itemChildNode.parent = Layout_item2;\n const element = serverTJData.eqList[index];\n let Label_itemlv = itemChildNode.getChildByName(\"Label_itemlv\").getComponent(Label);\n Label_itemlv.string = GlobalFunction.ShowLV(element.needLv);\n\n\n }\n\n }\n}\nprivate nowIndex:number = 0;\n onScrolling() {\n const content = this.scroeeww.content;\n const offsetY = content.position.y - 550;\n let firstIndex = Math.floor(offsetY / this.itemHeight);\n if(firstIndex >= 65){\n firstIndex = 65;\n }\n if(firstIndex == this.nowIndex){\n return;\n }\n // console.log(\"firstIndex===\"+ firstIndex)\n this.nowIndex = firstIndex;\n for (let i = 0; i < this.items.length; i++) {\n const itemIndex = firstIndex + i;\n if (itemIndex >= 0 && itemIndex < this.totalItems) {\n this.items[i].active = true;\n if(firstIndex==0){\n this.items[i].setPosition(new Vec3(0, -140 - i*(this.itemHeight+25), 0));\n }\n else if(firstIndex==65){\n let count = -17780 - i*(this.itemHeight+25);\n // console.log(\"item===\"+ count);\n this.items[i].setPosition(new Vec3(0, count , 0));\n }\n else{\n this.items[i].setPosition(new Vec3(0, -itemIndex * this.itemHeight + this.itemHeight/2 - i*25 + this.bufferItems/2*this.itemHeight , 0));\n }\n this.updateItem(this.items[i], itemIndex);\n } else {\n this.items[i].active = false;\n }\n }\n}\n private SortSoldierTuJianList() {\n this.soldierTuJianList.sort(function (a, b) {\n const serverTJDataA = SoldierEquipProxy.Inst.SoldiersTJMaps.find(item => item.id == a.id), serverTJDataB = SoldierEquipProxy.Inst.SoldiersTJMaps.find(item => item.id == b.id);//服务器\n\n let state1 = 1;\n let state2 = 1;\n //0-未激活,1-已激活,2-可激活\n if (GlobalFunction.ConvertUndefinedToNumber(serverTJDataA.state) == 2) {\n state1 = 1;\n } else if (GlobalFunction.ConvertUndefinedToNumber(serverTJDataA.state) == 0) {\n state1 = 2;\n } else if (GlobalFunction.ConvertUndefinedToNumber(serverTJDataA.state) == 1){\n state1 = 3;\n }\n if (GlobalFunction.ConvertUndefinedToNumber(serverTJDataB.state) == 2) {\n state2 = 1;\n } else if (GlobalFunction.ConvertUndefinedToNumber(serverTJDataB.state) == 0) {\n state2 = 2;\n } else if (GlobalFunction.ConvertUndefinedToNumber(serverTJDataA.state) == 1){\n state2 = 3;\n }\n if (state1 == state2) {\n return serverTJDataA.id - serverTJDataB.id;\n } else {\n return state1 - state2;\n }\n });\n }\n\n /** 图鉴激活按钮 */\n bindClickJiHuoEvent(itemnode: Node, soldierTuJian: SoldierTuJian) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickTJJH\";\n clickEventHandler.customEventData = soldierTuJian.id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickTJJH(itemnode, equipTuJianid) {\n // WindowManager.Instance().open(GameConst.winPath.HeroTipsUI, heroid, true);\n SoldierEquipProxy.Inst.SendC1404(parseInt(equipTuJianid));\n }\n /** 图鉴未激活按钮 */\n bindClickJiHuoNotEvent(itemnode: Node, soldierTuJian: SoldierTuJian) {\n var clickEventHandler = new Component.EventHandler();\n //这个 node 节点是你的事件处理代码组件所属的节点\n clickEventHandler.target = this.node;\n //这个是代码文件名\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclickTJJHNOT\";\n clickEventHandler.customEventData = soldierTuJian.id + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n CallOnclickTJJHNOT(itemnode, soldierTuJianid) {\n // WindowManager.Instance().open(GameConst.winPath.HeroTipsUI, heroid, true);\n }\n\n\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n\n this.toggleMaps.clear();\n this.PanleModelNodes.length = 0;\n this.PanleNodes.length = 0;\n this.EquipWeaponMaps.length = 0;\n this.EquipArmorMaps.length = 0;\n this.EquipHatMaps.length = 0;\n this.scroeeww.node.off('scrolling', this.onScrolling, this);\n }\n clearRes() {\n }\n}\n","/**\n * HeroTuJian config配置文件\n **/\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class SoldierTuJianProxy {\n private static _inst: SoldierTuJianProxy;\n public static get Inst(): SoldierTuJianProxy {\n if (SoldierTuJianProxy._inst == null) {\n SoldierTuJianProxy._inst = new SoldierTuJianProxy();\n }\n return SoldierTuJianProxy._inst;\n }\n @res_assign(\"SoldierTuJian\")\n public SoldierTuJianConfigList: SoldierTuJian[];\n public InitSoldierConfig() {\n\n if (!this.SoldierTuJianConfigList) {\n this.SoldierTuJianConfigList = [];\n }\n let SoldierTuJianDataConfig = ConfigManager.GetInstance().getValue(\"SoldierTuJian\")\n for (var key in SoldierTuJianDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"SoldierTuJian\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.SoldierTuJianConfigList.push(item);\n }\n\n }\n }\n}\nexport class SoldierTuJian {\n id: number; //英雄id\n lan_name :string;//图鉴名称\n buffnum :string;//参数\n kv_soldieritem: Map; //士兵id,士兵等级\n}","/**\n * SoundEffectsConfig config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class SoundEffectsConfigPoxy {\n private static _inst: SoundEffectsConfigPoxy;\n public static get Inst(): SoundEffectsConfigPoxy {\n if (SoundEffectsConfigPoxy._inst == null) {\n SoundEffectsConfigPoxy._inst = new SoundEffectsConfigPoxy();\n }\n return SoundEffectsConfigPoxy._inst;\n }\n @res_assign(\"SoundEffectsConfig\")\n public SoundEffectsConfigMaps: Map = new Map();\n public InitSoundEffectsConfigConfig() {\n if (this.SoundEffectsConfigMaps.size > 0) {\n this.SoundEffectsConfigMaps.clear();\n }\n for (var key in ConfigManager.GetInstance().getValue(\"SoundEffectsConfig\")) {\n let SoundEffectsConfigitem = ConfigManager.GetInstance().getValue(\"SoundEffectsConfig\")[key];\n if (SoundEffectsConfigitem) {\n for (var keys in SoundEffectsConfigitem) {\n SoundEffectsConfigitem[keys] = GlobalFunction.Inst.ParamDef(keys, SoundEffectsConfigitem[keys]);\n }\n this.SoundEffectsConfigMaps.set(SoundEffectsConfigitem.id, SoundEffectsConfigitem);\n }\n\n }\n }\n public getSoundEffectsConfigById(SoundEffectsConfigid: number) {\n if (SoundEffectsConfigid == undefined) return undefined;\n return this.SoundEffectsConfigMaps.get(SoundEffectsConfigid);\n }\n}\nexport class SoundEffectsConfig {\n /** SoundEffectsConfig的id */\n id: number;\n /** SoundEffectsConfig名称 */\n name: string;\n}","import { AudioSource } from 'cc';\r\nimport { _decorator, Component, AudioClip, resources, assetManager, Node } from 'cc';\r\nimport { MusicProxy } from '../../modules/game/proxy/MusicProxy';\r\n\r\nconst { ccclass } = _decorator;\r\n@ccclass('SoundManager')\r\nexport class SoundManager {\r\n private static instance: SoundManager;\r\n private backgroundMusicSource: AudioSource = null;\r\n private effectInstances: Map = new Map();\r\n private effectWeights: Map = new Map();\r\n private constructor() {}\r\n public static getInstance(): SoundManager {\r\n if (!SoundManager.instance) {\r\n SoundManager.instance = new SoundManager();\r\n }\r\n return SoundManager.instance;\r\n }\r\n public async playBackgroundMusic(path: string, loop: boolean = true, volume: number = 1) {\r\n if(MusicProxy.Inst.GetMusicValue() == 1){\r\n this.stopBackgroundMusic();\r\n const clip = await this.loadAudioClip(path);\r\n if (clip) {\r\n if (!this.backgroundMusicSource) {\r\n const musicNode = new Node('BackgroundMusicNode');\r\n this.backgroundMusicSource = musicNode.addComponent(AudioSource);\r\n }\r\n this.backgroundMusicSource.clip = clip;\r\n this.backgroundMusicSource.loop = loop;\r\n this.backgroundMusicSource.volume = volume;\r\n this.backgroundMusicSource.play();\r\n }\r\n }\r\n }\r\n public stopBackgroundMusic() {\r\n if (this.backgroundMusicSource) {\r\n this.backgroundMusicSource.stop();\r\n this.backgroundMusicSource.clip = null;\r\n }\r\n }\r\n public async playEffectMusic(path: string, loop: boolean = false, weight: number = 1, volume: number = 1) {\r\n if(MusicProxy.Inst.GetSoundValue() == 0){\r\n return;\r\n }\r\n const clip = await this.loadAudioClip(path);\r\n if (clip) {\r\n const effectNode = new Node('EffectNode');\r\n const audioSource = effectNode.addComponent(AudioSource);\r\n audioSource.clip = clip;\r\n audioSource.loop = loop;\r\n audioSource.volume = volume;\r\n audioSource.play();\r\n this.effectWeights.set(path, weight);\r\n this.effectInstances.set(path, audioSource);\r\n this.adjustEffectVolumes();\r\n }\r\n }\r\n public async playEffectMp3(mp3: AudioClip, loop: boolean = false, weight: number = 1, volume: number = 1) {\r\n if(MusicProxy.Inst.GetSoundValue() == 0){\r\n return;\r\n }\r\n if (mp3) {\r\n const effectNode = new Node('EffectNode');\r\n const audioSource = effectNode.addComponent(AudioSource);\r\n audioSource.clip = mp3;\r\n audioSource.loop = loop;\r\n audioSource.volume = volume;\r\n audioSource.play();\r\n this.adjustEffectVolumes();\r\n }\r\n }\r\n public stopEffectMusic(path: string) {\r\n const audioSource = this.effectInstances.get(path);\r\n if (audioSource) {\r\n audioSource.stop();\r\n audioSource.node.destroy();\r\n this.effectInstances.delete(path);\r\n this.effectWeights.delete(path);\r\n this.adjustEffectVolumes();\r\n }\r\n }\r\n public stopAllEffects() {\r\n this.effectInstances.forEach((audioSource, path) => {\r\n audioSource.stop();\r\n audioSource.node.destroy();\r\n });\r\n this.effectInstances.clear();\r\n this.effectWeights.clear();\r\n }\r\n private adjustEffectVolumes() {\r\n let totalWeight = 0;\r\n this.effectWeights.forEach(weight => {\r\n totalWeight += weight;\r\n });\r\n this.effectInstances.forEach((audioSource, path) => {\r\n const weight = this.effectWeights.get(path) || 1;\r\n const adjustedVolume = (weight / totalWeight) * audioSource.volume;\r\n audioSource.volume = adjustedVolume;\r\n });\r\n }\r\n private async loadAudioClip(path: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n resources.load(\"sound/\"+path, AudioClip, (err, clip: AudioClip) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(clip);\r\n }\r\n });\r\n });\r\n }\r\n}","/**\n * Guide config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class SoundPoxy {\n private static _inst: SoundPoxy;\n public static get Inst(): SoundPoxy {\n if (SoundPoxy._inst == null) {\n SoundPoxy._inst = new SoundPoxy();\n }\n return SoundPoxy._inst;\n }\n @res_assign(\"SoundEffectsConfig\")\n public SoundMaps: Map = new Map();\n public InitGuideConfig() {\n if (this.SoundMaps.size > 0) {\n this.SoundMaps.clear();\n }\n for (var key in ConfigManager.GetInstance().getValue(\"SoundEffectsConfig\")) {\n let SoundItem = ConfigManager.GetInstance().getValue(\"SoundEffectsConfig\")[key];\n if (SoundItem) {\n for (var keys in SoundItem) {\n SoundItem[keys] = GlobalFunction.Inst.ParamDef(keys, SoundItem[keys]);\n }\n this.SoundMaps.set(SoundItem.id, SoundItem);\n }\n\n }\n }\n public getGuideById(soundId: number) {\n if (soundId == undefined) return undefined;\n return this.SoundMaps.get(soundId);\n }\n}\nexport class SoundEffectsConfig {\n id: number;\n name: string;\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { sp } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { Texture2D } from \"cc\";\r\nimport { rect } from \"cc\";\r\nimport { UITransform } from \"cc\";\r\nimport { Size } from \"cc\";\r\nimport { SpriteFrame } from \"cc\";\r\n\r\n\r\n/***\r\n * 关于spine挂载图片资源后 spine和sprite合批\r\n*/\r\nconst { ccclass, property } = _decorator;\r\n@ccclass('SpineAddSpriteUtils')\r\nexport class SpineAddSpriteUtils extends Component{\r\n /**\r\n * @zh 单例\r\n */\r\n private static instance: SpineAddSpriteUtils;\r\n /**\r\n * @zh 静态获取单例函数\r\n * @return 单例 \r\n */\r\n public static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new SpineAddSpriteUtils();\r\n }\r\n return this.instance;\r\n }\r\n\r\n /***\r\n * 从spine图集中通过图片名字获取某一张单独图片 \r\n * 注*需要在spine工程中把挂点所需的所有图片打入spine图集 \r\n * 注*且spine.json和altas皆有挂点图片数据 \r\n * \r\n * @param spinePath spine动画路劲\r\n * @param imageName 需要的挂点图片的名字\r\n * @param sprite 承载挂点图片的sprite\r\n */\r\n GetSpriteBySpine(spinePath:string,imageName:string,sprite:Sprite){\r\n /**从一个已经加载完成的bundle中获取spine对象的SkeletonData*/\r\n let test = ResHelper.get(spinePath, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n /**获取所有TextureRegion对象*/\r\n let regions: TextureRegion[] = this.load(test.atlasText, test.textures[0]);\r\n /**通过需要的图片名字 从图集中获取图片数据 并裁剪*/\r\n let _target = regions.find((_value) => _value.name == imageName);\r\n if(_target){\r\n let _texture: Texture2D = test.textures[0];\r\n //spine 切图方向和图集相反\r\n \r\n let _x = _target.u*_texture.width;\r\n let _y = _target.v*_texture.height\r\n let _w = (_target.u2-_target.u)*_texture.width;\r\n let _h = (_target.v2-_target.v)*_texture.height;\r\n let _rect =rect(_x, _y , _w , _h);\r\n //对象旋转位置和实际对象相反 切 需要在后面设置rotated为可旋转\r\n sprite.node.getComponent(UITransform).contentSize = new Size(_target.width , _target.height);\r\n /**自切图走挂点逻辑需要程序自己调整装备部件偏移量*/\r\n sprite.node.position = new Vec3(_target.offsetX, _target.offsetY, 0 );\r\n sprite.node.angle = _target.degrees;\r\n /**spriteFrame 创建和赋值*/\r\n let _spriteFrame = new SpriteFrame();\r\n _spriteFrame.texture = _texture;\r\n _spriteFrame.rect = _rect;\r\n _spriteFrame.rotated = true;\r\n sprite.spriteFrame = _spriteFrame;\r\n }\r\n }\r\n \r\n /***加载并解析 获取atlas文件中的所有TextureRegion对象*/\r\n private load(atlasText, texture) {\r\n var reader = new TextureAtlasReader(atlasText);\r\n var tuple = new Array(4);\r\n var page = null;\r\n var regions: TextureRegion[] = [];\r\n while (true) {\r\n var line = reader.readLine();\r\n if (line == null) break;\r\n line = line.trim();\r\n if (line.length == 0) page = null;\r\n else if (!page) {\r\n page = {};\r\n if (reader.readTuple(tuple) == 2) {\r\n reader.readTuple(tuple);\r\n }\r\n reader.readTuple(tuple);\r\n reader.readValue();\r\n } else {\r\n var region = new TextureRegion();\r\n region.name = line;\r\n var rotateValue = reader.readValue();\r\n if (rotateValue.toLocaleLowerCase() == \"true\") {\r\n region.degrees = 90;\r\n } else if (rotateValue.toLocaleLowerCase() == \"false\") {\r\n region.degrees = 0;\r\n } else {\r\n region.degrees = parseFloat(rotateValue);\r\n }\r\n region.rotate = region.degrees == 90;\r\n reader.readTuple(tuple);\r\n var x = parseInt(tuple[0]);\r\n var y = parseInt(tuple[1]);\r\n reader.readTuple(tuple);\r\n var width = parseInt(tuple[0]);\r\n var height = parseInt(tuple[1]);\r\n region.u = x / texture.width;\r\n region.v = y / texture.height;\r\n if (region.rotate) {\r\n region.u2 = (x + height) / texture.width;\r\n region.v2 = (y + width) / texture.height;\r\n } else {\r\n region.u2 = (x + width) / texture.width;\r\n region.v2 = (y + height) / texture.height;\r\n }\r\n region.x = x;\r\n region.y = y;\r\n region.width = Math.abs(width);\r\n region.height = Math.abs(height);\r\n if (reader.readTuple(tuple) == 4) {\r\n if (reader.readTuple(tuple) == 4) {\r\n reader.readTuple(tuple);\r\n }\r\n }\r\n region.originalWidth = parseInt(tuple[0]);\r\n region.originalHeight = parseInt(tuple[1]);\r\n reader.readTuple(tuple);\r\n region.offsetX = parseInt(tuple[0]);\r\n region.offsetY = parseInt(tuple[1]);\r\n region.index = parseInt(reader.readValue());\r\n regions.push(region);\r\n }\r\n }\r\n return regions;\r\n }\r\n\r\n}\r\n\r\n/***atlas文件解析类*/\r\nclass TextureAtlasReader {\r\n private index = 0;\r\n private lines: any[];\r\n constructor(text) {\r\n this.index = 0;\r\n this.lines = text.split(/\\r\\n|\\r|\\n/);\r\n }\r\n readLine() {\r\n if (this.index >= this.lines.length) return null;\r\n return this.lines[this.index++];\r\n }\r\n readValue() {\r\n var line = this.readLine();\r\n var colon = line.indexOf(\":\");\r\n if (colon == -1) throw new Error(\"Invalid line: \" + line);\r\n return line.substring(colon + 1).trim();\r\n }\r\n readTuple(tuple) {\r\n var line = this.readLine();\r\n var colon = line.indexOf(\":\");\r\n if (colon == -1) throw new Error(\"Invalid line: \" + line);\r\n var i = 0,\r\n lastMatch = colon + 1;\r\n for (; i < 3; i++) {\r\n var comma = line.indexOf(\",\", lastMatch);\r\n if (comma == -1) break;\r\n tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();\r\n lastMatch = comma + 1;\r\n }\r\n tuple[i] = line.substring(lastMatch).trim();\r\n return i + 1;\r\n }\r\n}\r\n\r\n/**Texture spine图集中单独对象文件说明*/\r\nclass TextureRegion {\r\n renderObject: any;\r\n u: number;\r\n v: number;\r\n u2: number;\r\n v2: number;\r\n width: number;\r\n height: number;\r\n rotate: boolean;\r\n offsetX: number;\r\n offsetY: number;\r\n originalWidth: number;\r\n originalHeight: number;\r\n name: string;\r\n x: number;\r\n y: number;\r\n index: number;\r\n degrees: number;\r\n}\r\n\r\n","import { EditBox } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport GameEntry from \"../../GameEntry\";\r\nimport { GebolInAiEnum, GebolInTypeEnum } from \"../../../role/GebolinView\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\n\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"SpineGmView\")\r\nexport class SpineGmView extends Component{\r\n @property(EditBox)\r\n heroIdLabel : EditBox = null;\r\n\r\n public static isOpenBossAi:boolean = false;\r\n public static isCreateZhanshi:boolean = false;\r\n public static isCanCreate:boolean = false;\r\n public static isPaoWuXian:boolean = false;\r\n\r\n\r\n onAddHeroClick(){\r\n let heroId:number = Number(this.heroIdLabel.string);\r\n if(heroId >= 1001 && heroId <= 1006){\r\n GameEntry.Inst.mapView.loadHero();\r\n this.desTroy();\r\n }\r\n }\r\n onRemoveHeroClick(){\r\n GameEntry.Inst.mapView.heroMap.forEach(p => {\r\n p.dead();\r\n });\r\n this.desTroy();\r\n }\r\n onAddGebolin1Click(){\r\n SpineGmView.isCreateZhanshi = false;\r\n SpineGmView.isCanCreate = true;\r\n this.desTroy();\r\n }\r\n onAddgebolin2Click(){\r\n SpineGmView.isCreateZhanshi = true;\r\n SpineGmView.isCanCreate = true;\r\n this.desTroy();\r\n }\r\n onRemoveGebolin1Click(){\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if(p.gebolinType == GebolInTypeEnum.ZhanShi || p.gebolinType == GebolInTypeEnum.ChiKe){\r\n p.dead();\r\n }\r\n });\r\n this.desTroy();\r\n }\r\n onRemoveGebolin2Click(){\r\n GameEntry.Inst.mapView.gebolinMap.forEach(p => {\r\n if(p.gebolinType == GebolInTypeEnum.FaShi || p.gebolinType == GebolInTypeEnum.PaoShou){\r\n p.dead();\r\n }\r\n });\r\n this.desTroy();\r\n }\r\n onOpenBossAiClick(){\r\n SpineGmView.isOpenBossAi = true;\r\n this.desTroy();\r\n }\r\n onCloseBossAiClick(){\r\n SpineGmView.isOpenBossAi = false;\r\n this.desTroy();\r\n }\r\n onYuanPaoClick(){\r\n SpineGmView.isPaoWuXian = true;\r\n this.desTroy();\r\n }\r\n onChangeBossClick(){\r\n GameEntry.Inst.mapView.nowBoss.dead();\r\n this.desTroy();\r\n }\r\n onChangeGuanQiaClick(){\r\n GameModleComp.getInstance().showNewGuanqia();\r\n this.desTroy();\r\n }\r\n\r\n\r\n desTroy(){\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n this.destroy();\r\n }\r\n}","import { Texture2D } from \"cc\";\r\nimport { sp } from \"cc\";\r\nimport { Component } from \"cc\";\r\n\r\nexport default class Batch extends Component {\r\n onLoad() {\r\n }\r\n}","/**\n * Story config配置文件\n * ! 自动导出,不要修改和直接引用\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class StoryPoxy {\n private static _inst: StoryPoxy;\n public static get Inst(): StoryPoxy {\n if (StoryPoxy._inst == null) {\n StoryPoxy._inst = new StoryPoxy();\n }\n return StoryPoxy._inst;\n }\n @res_assign(\"Story\")\n public StoryMaps: Map = new Map();\n public InitStoryConfig() {\n if (this.StoryMaps.size > 0) {\n this.StoryMaps.clear();\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Story\")) {\n let Storyitem = ConfigManager.GetInstance().getValue(\"Story\")[key];\n if (Storyitem) {\n for (var keys in Storyitem) {\n Storyitem[keys] = GlobalFunction.Inst.ParamDef(keys, Storyitem[keys]);\n }\n this.StoryMaps.set(Storyitem.storyId, Storyitem);\n }\n }\n }\n public getStoryById(storyId: number) {\n if (storyId == undefined) return undefined;\n return this.StoryMaps.get(storyId);\n }\n}\nexport class Story {\n /** 剧情ID */\n storyId: number;\n /** 位置 */\n type: number;\n /** 立绘*/\n icon: string;\n /** 名字 */\n lan_name: string;\n /** 对话 */\n lan_dec: string;\n}","import { Button } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { GuideManager } from \"../guilde/GuideManager\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nimport { FestivalTimeProxy } from \"../proxy/FestivalTimeProxy\";\r\nimport { AdGiftProxy } from \"../proxy/AdGiftProxy\";\r\nimport { Logger } from \"../../../../core/common/log/Logger\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"StoryUIViewComp\")\r\nexport class StoryUIViewComp extends Component{\r\n onLoad(){\r\n setTimeout(() => {\r\n this.desTroy();\r\n Logger.logView(\"关闭开场出龙的动画\");\r\n }, 28000);\r\n }\r\n onClick(){\r\n this.desTroy();\r\n }\r\n desTroy(){\r\n if(this.node && this.node.parent){\r\n GameModleComp.getInstance().isOpenGame = true;\r\n this.node.parent.removeChild(this.node);\r\n this.destroy();\r\n GuideManager.getInstance().initGuideData();\r\n if(FestivalTimeProxy.Inst.FestivalGiftList && FestivalTimeProxy.Inst.FestivalGiftList.length){\r\n setTimeout(() => {\r\n EventManager.Inst.event(EventType.AD_FEST_REWARD_SHOW , true);\r\n }, 2000);\r\n }\r\n if(AdGiftProxy.Inst.rewardsList && AdGiftProxy.Inst.rewardsList.length){\r\n setTimeout(() => {\r\n EventManager.Inst.event(EventType.AD_GIFT_REWARD_SHOW , true);\r\n }, 2000);\r\n }\r\n }\r\n }\r\n}","import { _decorator, Component, Material, Sprite, SpriteFrame, CCInteger, UITransform } from 'cc';\nconst { ccclass, property, requireComponent, executeInEditMode, disallowMultiple, executionOrder } = _decorator;\n\n@ccclass('StraightLine')\n@executeInEditMode\nexport default class RotateMoveUV extends Component {\n material: Material;\n sp: Sprite;\n @property([SpriteFrame])\n sfs: SpriteFrame[] = [];\n @property({ type: CCInteger, min: 1, max: 60 })\n frame: number = 30;\n private duration = 0.1;\n index = 0;\n timer = 0;\n neg = false;\n\n protected onLoad(): void {\n this.duration = 1 / this.frame;\n }\n\n protected onEnable(): void {\n this.sp = this.getComponent(Sprite);\n }\n\n protected update(dt: number): void {\n // let scaleW = this.node.width/64\n // this.timer+=dt;\n // if(this.timer>this.duration){\n // this.timer-=this.duration;\n // if(this.neg){\n // this.index--;\n // if(this.index<=0){\n // this.index = this.sfs.length-1;\n // }\n // }else{\n // this.index++;\n // if(this.index>=this.sfs.length){\n // this.index = 0;\n // }\n // }\n // this.sp.spriteFrame = this.sfs[this.index]\n // }\n this.updateLine(256, 128, this.node.getComponent(UITransform).width / 256, this.node.getComponent(UITransform).height / 64);\n }\n\n vertices = {\n x: [0, 1, 1, 0],\n y: [0, 0, 2, 2],\n nu: [0, 3, 3, 0],\n nv: [0, 0, 4, 4],\n triangles: [0, 1, 2, 2, 3, 0]\n };\n\n updateLine(w: number, h: number, u, v) {\n // w/=2;\n // h/=2;\n this.vertices.x[1] = this.vertices.x[2] = w;\n this.vertices.y[2] = this.vertices.y[3] = h;\n this.vertices.nu[1] = this.vertices.nu[2] = u;\n this.vertices.nv[2] = this.vertices.nv[3] = v;\n // this.sp.spriteFrame['vertices'] = {\n // x: [0, w, w, 0],\n // y: [0, 0, h, h],\n // nu: [0, u, u, 0],\n // nv: [0, 0, v, v],\n // triangles: [0, 1, 2, 2, 3, 0]\n // }\n this.sp.spriteFrame\n // TODO 升级3.8方法被弃用, 需要找到替代方案\n // this.sp.spriteFrame['vertices'] = this.vertices;\n // this.sp.setVertsDirty();\n }\n}","/** 字符串工具 */\r\nexport class StringUtil {\r\n /** 获取一个唯一标识的字符串 */\r\n static guid() {\r\n let guid: string = \"\";\r\n for (let i = 1; i <= 32; i++) {\r\n let n = Math.floor(Math.random() * 16.0).toString(16);\r\n guid += n;\r\n if ((i == 8) || (i == 12) || (i == 16) || (i == 20))\r\n guid += \"-\";\r\n }\r\n return guid;\r\n }\r\n\r\n /**\r\n * 转美式计数字符串\r\n * @param value 数字\r\n * @example\r\n * 123456789 = 123,456,789\r\n */\r\n static numberTotPermil(value: number): string {\r\n return value.toLocaleString();\r\n }\r\n\r\n /** \r\n * 转英文单位计数\r\n * @param value 数字\r\n * @param fixed 保留小数位数\r\n * @example\r\n * 12345 = 12.35K\r\n */\r\n static numberToThousand(value: number, fixed: number = 2): string {\r\n var k = 1000;\r\n var sizes = ['', 'K', 'M', 'G'];\r\n if (value < k) {\r\n return value.toString();\r\n }\r\n else {\r\n var i = Math.floor(Math.log(value) / Math.log(k));\r\n var r = ((value / Math.pow(k, i)));\r\n return r.toFixed(fixed) + sizes[i];\r\n }\r\n }\r\n\r\n /** \r\n * 转中文单位计数\r\n * @param value 数字\r\n * @param fixed 保留小数位数\r\n * @example\r\n * 12345 = 1.23万\r\n */\r\n static numberToTenThousand(value: number, fixed: number = 2): string {\r\n var k = 10000;\r\n var sizes = ['', '万', '亿', '万亿'];\r\n if (value < k) {\r\n return value.toString();\r\n }\r\n else {\r\n var i = Math.floor(Math.log(value) / Math.log(k));\r\n return ((value / Math.pow(k, i))).toFixed(fixed) + sizes[i];\r\n }\r\n }\r\n\r\n /**\r\n * 时间格式化\r\n * @param date 时间对象\r\n * @param fmt 格式化字符(yyyy-MM-dd hh:mm:ss S)\r\n */\r\n static format(date: Date, fmt: string) {\r\n var o: any = {\r\n \"M+\": date.getMonth() + 1, // 月份 \r\n \"d+\": date.getDate(), // 日 \r\n \"h+\": date.getHours(), // 小时 \r\n \"m+\": date.getMinutes(), // 分 \r\n \"s+\": date.getSeconds(), // 秒 \r\n \"q+\": Math.floor((date.getMonth() + 3) / 3), // 季度 \r\n \"S\": date.getMilliseconds() // 毫秒 \r\n };\r\n if (/(y+)/.test(fmt)) {\r\n fmt = fmt.replace(RegExp.$1, (date.getFullYear() + \"\").substr(4 - RegExp.$1.length));\r\n }\r\n for (var k in o) {\r\n if (new RegExp(\"(\" + k + \")\").test(fmt)) {\r\n fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((\"00\" + o[k]).substr((\"\" + o[k]).length)));\r\n }\r\n }\r\n return fmt;\r\n }\r\n\r\n /**\r\n * \",\" 分割字符串成数组\r\n * @param str 字符串\r\n */\r\n static stringToArray1(str: string) {\r\n if (str == \"\") {\r\n return [];\r\n }\r\n return str.split(\",\");\r\n }\r\n\r\n /** \r\n * \"|\" 分割字符串成数组 \r\n * @param str 字符串\r\n */\r\n static stringToArray2(str: string) {\r\n if (str == \"\") {\r\n return [];\r\n }\r\n return str.split(\"|\");\r\n }\r\n\r\n /** \r\n * \":\" 分割字符串成数组\r\n * @param str 字符串\r\n */\r\n static stringToArray3(str: string) {\r\n if (str == \"\") {\r\n return [];\r\n }\r\n return str.split(\":\");\r\n }\r\n\r\n /** \r\n * \";\" 分割字符串成数组 \r\n * @param str 字符串\r\n */\r\n static stringToArray4(str: string) {\r\n if (str == \"\") {\r\n return [];\r\n }\r\n return str.split(\";\");\r\n }\r\n\r\n /**\r\n * 字符串截取\r\n * @param str 字符串\r\n * @param n 截取长度\r\n * @param showdot 是否把截取的部分用省略号代替\r\n */\r\n static sub(str: string, n: number, showdot: boolean = false) {\r\n var r = /[^\\x00-\\xff]/g;\r\n if (str.replace(r, \"mm\").length <= n) { return str; }\r\n var m = Math.floor(n / 2);\r\n for (var i = m; i < str.length; i++) {\r\n if (str.substr(0, i).replace(r, \"mm\").length >= n) {\r\n if (showdot) {\r\n return str.substr(0, i) + \"...\";\r\n } else {\r\n return str.substr(0, i);\r\n }\r\n }\r\n }\r\n return str;\r\n }\r\n\r\n /**\r\n * 计算字符串长度,中文算两个字节\r\n * @param str 字符串\r\n */\r\n static stringLen(str: string) {\r\n var realLength = 0, len = str.length, charCode = -1;\r\n for (var i = 0; i < len; i++) {\r\n charCode = str.charCodeAt(i);\r\n if (charCode >= 0 && charCode <= 128)\r\n realLength += 1;\r\n else\r\n realLength += 2;\r\n }\r\n return realLength;\r\n }\r\n\r\n static stringFormat(str: string, ...args: Array):string {\r\n return str.replace(/{(\\d+)}/gm, function (ms, p1) \r\n {\r\n return typeof (args[p1]) == 'undefined' ? ms : args[p1]\r\n });\r\n }\r\n\r\n static stringAyFormat(str: string, args: Array):string {\r\n return str.replace(/{(\\d+)}/gm, function (ms, p1) \r\n {\r\n return typeof (args[p1]) == 'undefined' ? ms : args[p1]\r\n });\r\n }\r\n}\r\n","import { _decorator, Component,CCBoolean } from 'cc';\nconst { ccclass, property } = _decorator;\n\n@ccclass('SwitchButton')\nexport default class SwitchButton extends Component {\n @property(CCBoolean)\n _on: boolean = true;\n @property(CCBoolean)\n public set on(b: boolean) {\n this._on = b;\n this.refreshicon()\n }\n\n public get on() {\n return this._on;\n }\n\n // private icon: cc.Node = null;\n protected onLoad(): void {\n // this.icon = this.node.children[0];\n this.refreshicon()\n }\n\n private refreshicon() {\n this.node.getChildByName(\"on\").active = this._on;\n this.node.getChildByName(\"off\").active = !this._on;\n // this.icon.stopAllActions();\n // this.icon.runAction(cc.moveTo(0.2, this._on ? this.node.width / 4 : -this.node.width / 4, 0))\n }\n\n onclick() {\n this.on = !this.on;\n }\n}","/**\n * task config配置文件\n */\nimport { _decorator } from 'cc';\nimport { c1500, s1500, c1501, s1501, s1502, p_task } from '../../../proto/proto';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData, p_reward } from '../common/Component';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport { ShopUiType } from './ShopProxy';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class TaskProxy {\n private static _inst: TaskProxy;\n public static get Inst(): TaskProxy {\n if (TaskProxy._inst == null) {\n TaskProxy._inst = new TaskProxy();\n }\n return TaskProxy._inst;\n }\n @res_assign(\"Task\")\n public TaskDataList: Task[];\n public InitTaskConfig() {\n if (this.TaskDataList == null) {\n this.TaskDataList = [];\n }\n let TaskDataDataConfig = ConfigManager.GetInstance().getValue(\"Task\")\n for (var key in TaskDataDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Task\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.TaskDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取task */\n public GetTaskDataByID(id: number) {\n if (this.TaskDataList == null) {\n this.InitTaskConfig();\n }\n let data: Task = this.TaskDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n\n\n @res_assign(\"Jump\")\n public JumpDataList: Jump[];\n public InitJumpConfig() {\n if (this.JumpDataList == null) {\n this.JumpDataList = [];\n }\n let JumpDataDataConfig = ConfigManager.GetInstance().getValue(\"Jump\")\n for (var key in JumpDataDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"Jump\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.JumpDataList.push(item);\n }\n\n }\n }\n\n /** 根据id获取jump */\n public GetJumpDataByID(id: number) {\n if (this.JumpDataList == null) {\n this.InitJumpConfig();\n }\n let data: Jump = this.JumpDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n /** 根据id获取跳转的功能id */\n public GetJumpFuncationType(id: number) {\n if (this.JumpDataList == null) {\n this.InitJumpConfig();\n }\n let data: Jump = this.JumpDataList.find(item => item.id == id);\n if (data) {\n return data.uiId;\n }\n return null;\n }\n\n public TaskJumpFuncation(id: number,taskid:number=0) {\n let type = this.GetJumpFuncationType(id);\n let jumpdata = this.GetJumpDataByID(id);\n this.CurrentTaskId = taskid;\n if (type == JumpFunctionType.MainBuffUI) {\n WindowManager.Instance().open(GameConst.winPath.MainBuffUI, null, true);\n\n } else if (type == JumpFunctionType.SoldiersUI) {\n WindowManager.Instance().open(GameConst.winPath.SoldiersUI, null, true);\n\n } else if (type == JumpFunctionType.ManageUI) {\n\n WindowManager.Instance().open(GameConst.winPath.ManageUI, jumpdata.build, true);\n\n } else if (type == JumpFunctionType.HeroUI) {\n WindowManager.Instance().open(GameConst.winPath.HeroUI, null, true);\n\n } else if (type == JumpFunctionType.ShopSoldierUI) {\n // WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.zhaohuan, true);\n WindowManager.Instance().open(GameConst.winPath.ShopUI, null, true);\n\n } else if (type == JumpFunctionType.HeroEquiptUI) {\n WindowManager.Instance().open(GameConst.winPath.HeroEquiptUI, null, true);\n\n } else if (type == JumpFunctionType.LoadFbenUI) {\n WindowManager.Instance().open(GameConst.winPath.LoadFbenUI, null, true);\n WindowManager.Instance().open(GameConst.winPath.LoadUI, null, true);\n }else if(type == JumpFunctionType.OfflineUI){\n WindowManager.Instance().open(GameConst.winPath.OfflineUI, null, true);\n }\n }\n\n\n\n\n /***==========================服务器数据存储============================== */\n\n public CurrentTaskId: number;\n public TaskServerMap: Map = new Map();//未完成的任務列表\n // public TaskServerList :p_task[];//未完成的任務列表\n public TaskIdList: number[];//被刪除的任務id列表\n\n\n public SendC1500() {\n //获取未完成的任務列表\n Logger.logNet(\"==============发送====c1500=============\");\n var c1500: c1500 = {};\n send2client(\"c1500\", c1500);\n }\n\n public SendC1501(taskId: number) {\n //领取任務奖励\n Logger.logNet(\"==============发送====c1501=============\");\n var c1501: c1501 = { taskId: taskId };\n send2client(\"c1501\", c1501);\n }\n}\n\n\n/**獲取未完成任務列表 */\nexport function do_s1500(s1500: s1500) {\n Logger.logNet(\"===================接收是1500====================\");\n if (s1500.tasks != undefined) {\n if (TaskProxy.Inst.TaskServerMap != undefined) {\n TaskProxy.Inst.TaskServerMap.clear();\n }\n s1500.tasks.sort((a, b) => a.taskId - b.taskId);\n for (let i = 0; i < s1500.tasks.length; i++) {\n let taskdata = s1500.tasks[i];\n if (taskdata != undefined) {\n TaskProxy.Inst.TaskServerMap.set(taskdata.taskId, taskdata);\n }\n\n }\n\n }\n\n EventManager.Inst.event(EventType.UPDATE_TASK_UI);\n EventManager.Inst.event(EventType.UPDATE_TASK_MAIN_CHANGE);\n}\n\n/**領取任務獎勵 */\nexport function do_s1501(s1501: s1501) {\n\n Logger.logNet(\"===================接收是1501====================\" + s1501.result);\n if (s1501.result == undefined) {\n let taskData = TaskProxy.Inst.GetTaskDataByID(s1501.taskId);\n if (taskData) {\n\n var reward: p_reward = new p_reward();\n reward.id = taskData.item;\n reward.num = taskData.itemNum;\n var rewards: p_reward[] = [reward];\n var data = new BoxData\n {\n data.rewards = rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n }\n }\n}\n\n/**任务状态更新,后端主动推送 */\nexport function do_s1502(s1502: s1502) {\n Logger.logNet(\"===================接收是1502=============================\" + s1502.tasks);\n if (s1502.tasks != undefined) {\n for (let i = 0; i < s1502.tasks.length; i++) {\n let serverdata = s1502.tasks[i];\n if (serverdata) {\n TaskProxy.Inst.TaskServerMap.set(serverdata.taskId, serverdata);\n }\n }\n }\n if (s1502.delIds != undefined) {\n if (TaskProxy.Inst.TaskIdList != undefined) {\n TaskProxy.Inst.TaskIdList.length = 0;\n }\n TaskProxy.Inst.TaskIdList = s1502.delIds;\n for (let i = 0; i < TaskProxy.Inst.TaskIdList.length; i++) {\n let id = TaskProxy.Inst.TaskIdList[i];\n if (TaskProxy.Inst.TaskServerMap.has(id)) {\n TaskProxy.Inst.TaskServerMap.delete(id);\n }\n }\n\n }\n if (s1502.tasks != undefined || s1502.delIds!=undefined){\n if(TaskProxy.Inst.TaskServerMap.size>0){\n let TaskServerList :p_task[] =[];\n for (const [key, value] of Array.from(TaskProxy.Inst.TaskServerMap.entries())) {\n TaskServerList.push(value);\n }\n TaskProxy.Inst.TaskServerMap.clear();\n TaskServerList.sort((a, b) => a.taskId - b.taskId);\n if(TaskServerList.length>0){\n for(let i=0;i0){\n for (const [key, value] of Array.from(TaskProxy.Inst.TaskServerMap.entries())) {\n this.TaskServerList.push(value);\n }\n }\n this.prefabdec = this.dec;\n this.Layout_dec.removeAllChildren();\n for (let i = 0; i < 3; ++i) {\n // 克隆并将节点添加到content中\n let itemNode = instantiate(this.prefabdec);\n if (itemNode) {\n itemNode.parent = this.Layout_dec;\n itemNode.active=true;\n let p_task:p_task;\n let unlock = itemNode.getChildByName(\"unlock\");\n let lock = itemNode.getChildByName(\"lock\");\n let max = itemNode.getChildByName(\"max\");\n if(i {\r\n defaultTest: string;\r\n currentSelectMenu: string;\r\n objTestsss: ObjeTestC;\r\n}\r\nclass ObjeTestC {\r\n value1: string;\r\n value2: number;\r\n lv: number;\r\n}\r\n\r\nexport class TestData {\r\n private static _inst: TestData;\r\n public static get inst(): TestData {\r\n if (TestData._inst == null)\r\n TestData._inst = new TestData();\r\n return TestData._inst;\r\n }\r\n recorder: TestDataRecorder;\r\n private constructor() {\r\n this.recorder = DataManager.inst.GetDataRecorder(\"test_data\", TestDataRecorder);\r\n }\r\n public get defaultTest(): string {\r\n return this.recorder.defaultTest;\r\n }\r\n public get CurrentSelectMenu(): string {\r\n return this.recorder.currentSelectMenu || '';\r\n }\r\n public set CurrentSelectMenu(v: string) {\r\n this.recorder.currentSelectMenu = v;\r\n }\r\n public get ObjTest(): ObjeTestC {\r\n if (this.recorder.objTestsss == null) {\r\n this.recorder.objTestsss = new ObjeTestC();\r\n }\r\n return this.recorder.objTestsss;\r\n }\r\n}","import { BaseRenderData, color, Color, Enum, error, gfx, HorizontalTextAlignment, JsonAsset, Material, RenderData, renderer, SpriteFrame, StencilManager, Texture2D, UIRenderer, Vec2, Vec3, VerticalTextAlignment, _decorator } from \"cc\";\r\nimport { EDITOR, JSB } from \"cc/env\";\r\nimport TmpAssembler, { TmpLetterInfo } from \"./utils/TmpAssembler\";\r\nimport TmpFontConfig from \"./utils/TmpFontConfig\";\r\nimport TmpUtils from \"./utils/TmpUtils\";\r\n\r\nconst { ccclass, property, executeInEditMode } = _decorator;\r\n\r\nconst vfmt = [\r\n new gfx.Attribute(gfx.AttributeName.ATTR_POSITION, gfx.Format.RGB32F),\r\n new gfx.Attribute(gfx.AttributeName.ATTR_TEX_COORD, gfx.Format.RG32F),\r\n new gfx.Attribute(gfx.AttributeName.ATTR_COLOR, gfx.Format.RGBA32F),\r\n new gfx.Attribute(gfx.AttributeName.ATTR_COLOR2, gfx.Format.RGBA32F),\r\n new gfx.Attribute(\"a_texture_idx\", gfx.Format.R32F)\r\n];\r\n\r\n/**\r\n * TextMeshPro的排版方式\r\n */\r\nexport enum TmpOverflow {\r\n NONE,\r\n CLAMP,\r\n ELLIPSIS,\r\n SHRINK,\r\n RESIZE_HEIGHT\r\n}\r\n\r\n/**\r\n * TextMeshPro Uniform参数\r\n */\r\n@ccclass(\"TmpUniform\")\r\nexport class TmpUniform {\r\n @property(Color)\r\n private _faceColor: Color = Color.WHITE.clone();\r\n @property({ tooltip: \"文本主体颜色\", type: Color })\r\n public get faceColor(): Color { return this._faceColor; }\r\n public set faceColor(v: Color) {\r\n if (!EDITOR && this._faceColor === v) { return; }\r\n this._faceColor = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatFace(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _faceDilate: number = 0.5;\r\n @property({ tooltip: \"文本主体厚度\", range: [0, 1, 0.01] })\r\n public get faceDilate(): number { return this._faceDilate; }\r\n public set faceDilate(v: number) {\r\n if (!EDITOR && this._faceDilate === v) { return; }\r\n this._faceDilate = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatFace(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _faceSoftness: number = 0.01;\r\n @property({ tooltip: \"文本主体柔和度\", range: [0, 1, 0.01] })\r\n public get faceSoftness(): number { return this._faceSoftness; }\r\n public set faceSoftness(v: number) {\r\n if (!EDITOR && this._faceSoftness === v) { return; }\r\n this._faceSoftness = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatFace(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _enableOutline: boolean = false;\r\n @property({ tooltip: \"是否启用描边效果\" })\r\n public get enableOutline(): boolean { return this._enableOutline; }\r\n public set enableOutline(v: boolean) {\r\n if (!EDITOR && this._enableOutline === v) { return; }\r\n this._enableOutline = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatOutline(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property(Color)\r\n private _outlineColor: Color = color(255, 0, 0, 255);\r\n @property({\r\n tooltip: \"描边颜色\",\r\n type: Color,\r\n visible() { return this._enableOutline; }\r\n })\r\n public get outlineColor(): Color { return this._outlineColor; }\r\n public set outlineColor(v: Color) {\r\n if (!EDITOR && this._outlineColor === v) { return; }\r\n this._outlineColor = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatOutline(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _outlineThickness: number = 0.1;\r\n @property({\r\n tooltip: \"描边厚度\",\r\n range: [0, 1, 0.01],\r\n visible() { return this._enableOutline; }\r\n })\r\n public get outlineThickness(): number { return this._outlineThickness; }\r\n public set outlineThickness(v: number) {\r\n if (!EDITOR && this._outlineThickness === v) { return; }\r\n this._outlineThickness = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatOutline(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _enableUnderlay: boolean = false;\r\n @property({ tooltip: \"是否启用阴影效果\" })\r\n public get enableUnderlay(): boolean { return this._enableUnderlay; }\r\n public set enableUnderlay(v: boolean) {\r\n if (!EDITOR && this._enableUnderlay === v) { return; }\r\n this._enableUnderlay = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatUnderlay(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property(Color)\r\n private _underlayColor: Color = color(0, 0, 0, 255);\r\n @property({\r\n tooltip: \"阴影颜色\",\r\n type: Color,\r\n visible() { return this._enableUnderlay; }\r\n })\r\n public get underlayColor(): Color { return this._underlayColor; }\r\n public set underlayColor(v: Color) {\r\n if (!EDITOR && this._underlayColor === v) { return; }\r\n this._underlayColor = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatUnderlay(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property(Vec2)\r\n private _underlayOffset: Vec2 = new Vec2(0, 0);\r\n @property({\r\n tooltip: \"阴影偏移\",\r\n type: Vec2,\r\n range: [-1, 1],\r\n visible() { return this._enableUnderlay; }\r\n })\r\n public get underlayOffset(): Vec2 { return this._underlayOffset; }\r\n public set underlayOffset(v: Vec2) {\r\n if (!EDITOR && this._underlayOffset === v) { return; }\r\n this._underlayOffset = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatUnderlay(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _underlayDilate: number = 0.5;\r\n @property({\r\n tooltip: \"阴影厚度\",\r\n range: [0, 1, 0.01],\r\n visible() { return this._enableUnderlay; }\r\n })\r\n public get underlayDilate(): number { return this._underlayDilate; }\r\n public set underlayDilate(v: number) {\r\n if (!EDITOR && this._underlayDilate === v) { return; }\r\n this._underlayDilate = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatUnderlay(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _underlaySoftness: number = 0.1;\r\n @property({\r\n tooltip: \"阴影柔和度\",\r\n range: [0, 1, 0.01],\r\n visible() { return this._enableUnderlay; }\r\n })\r\n public get underlaySoftness(): number { return this._underlaySoftness; }\r\n public set underlaySoftness(v: number) {\r\n if (!EDITOR && this._underlaySoftness === v) { return; }\r\n this._underlaySoftness = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatUnderlay(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _enableGlow: boolean = false;\r\n @property({ tooltip: \"是否启用辉光效果\" })\r\n public get enableGlow(): boolean { return this._enableGlow; }\r\n public set enableGlow(v: boolean) {\r\n if (!EDITOR && this._enableGlow === v) { return; }\r\n this._enableGlow = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatGlow(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property(Color)\r\n private _glowColor: Color = color(0, 255, 0, 255);\r\n @property({\r\n tooltip: \"辉光颜色\",\r\n type: Color,\r\n visible() { return this._enableGlow; }\r\n })\r\n public get glowColor(): Color { return this._glowColor; }\r\n public set glowColor(v: Color) {\r\n if (!EDITOR && this._glowColor === v) { return; }\r\n this._glowColor = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatGlow(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _glowOffset: number = 0.5;\r\n @property({\r\n tooltip: \"辉光偏移\",\r\n range: [0, 1, 0.01],\r\n visible() { return this._enableGlow; }\r\n })\r\n public get glowOffset(): number { return this._glowOffset; }\r\n public set glowOffset(v: number) {\r\n if (!EDITOR && this._glowOffset === v) { return; }\r\n this._glowOffset = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatGlow(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _glowInner: number = 0.01;\r\n @property({\r\n tooltip: \"辉光向内的厚度\",\r\n range: [0, 1, 0.01],\r\n visible() { return this._enableGlow; }\r\n })\r\n public get glowInner(): number { return this._glowInner; }\r\n public set glowInner(v: number) {\r\n if (!EDITOR && this._glowInner === v) { return; }\r\n this._glowInner = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatGlow(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _glowOuter: number = 0.01;\r\n @property({\r\n tooltip: \"辉光向外的厚度\",\r\n range: [0, 1, 0.01],\r\n visible() { return this._enableGlow; }\r\n })\r\n public get glowOuter(): number { return this._glowOuter; }\r\n public set glowOuter(v: number) {\r\n if (!EDITOR && this._glowOuter === v) { return; }\r\n this._glowOuter = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatGlow(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n @property\r\n private _glowPower: number = 1;\r\n @property({\r\n tooltip: \"辉光强度\",\r\n range: [0, 1, 0.01],\r\n visible() { return this._enableGlow; }\r\n })\r\n public get glowPower(): number { return this._glowPower; }\r\n public set glowPower(v: number) {\r\n if (!EDITOR && this._glowPower === v) { return; }\r\n this._glowPower = v;\r\n if (!this._comp) { return; }\r\n this._comp.updateTmpMatGlow(this._comp.getMaterialInstance(0));\r\n }\r\n\r\n private _comp: TextMeshPro = null;\r\n public get comp(): TextMeshPro { return this._comp; }\r\n\r\n public init(text: TextMeshPro) {\r\n this._comp = text;\r\n\r\n let material = this._comp.getMaterialInstance(0);\r\n this._comp.updateTmpMatFace(material);\r\n this._comp.updateTmpMatOutline(material);\r\n this._comp.updateTmpMatUnderlay(material);\r\n this._comp.updateTmpMatGlow(material);\r\n }\r\n}\r\n\r\n@ccclass(\"TextMeshPro\")\r\n@executeInEditMode\r\nexport default class TextMeshPro extends UIRenderer {\r\n\r\n @property\r\n private _string: string = \"\";\r\n @property({ multiline: true })\r\n public get string(): string { return this._string; }\r\n public set string(v: string) {\r\n if (!EDITOR && this._string === v) { return; }\r\n this._string = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property(JsonAsset)\r\n private _font: JsonAsset = null;\r\n @property({ tooltip: \"字体资源\\n依赖的纹理请勿打入图集\\n在编辑器内拖拽此文件时,纹理必须和此文件处于同一目录下\", type: JsonAsset })\r\n private get font(): JsonAsset { return this._font; }\r\n private set font(v: JsonAsset) {\r\n if (!EDITOR && this._font === v) { return; }\r\n this._font = v;\r\n if (EDITOR) {\r\n this.editorInit();\r\n } else {\r\n if (this._renderData) {\r\n this.destroyRenderData();\r\n this._renderData = null;\r\n }\r\n this.updateRenderData(true);\r\n }\r\n }\r\n\r\n @property({ type: HorizontalTextAlignment })\r\n private _horizontalAlign: HorizontalTextAlignment = HorizontalTextAlignment.LEFT;\r\n @property({ type: HorizontalTextAlignment })\r\n public get horizontalAlign(): HorizontalTextAlignment { return this._horizontalAlign; }\r\n public set horizontalAlign(v: HorizontalTextAlignment) {\r\n if (!EDITOR && this._horizontalAlign === v) { return; }\r\n this._horizontalAlign = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property({ type: VerticalTextAlignment })\r\n private _verticalAlign: VerticalTextAlignment = VerticalTextAlignment.TOP;\r\n @property({ type: VerticalTextAlignment })\r\n public get verticalAlign(): VerticalTextAlignment { return this._verticalAlign; }\r\n public set verticalAlign(v: VerticalTextAlignment) {\r\n if (!EDITOR && this._verticalAlign === v) { return; }\r\n this._verticalAlign = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _actualFontSize: number = 0;\r\n @property({ visible() { return this._overflow === TmpOverflow.SHRINK; } })\r\n public get actualFontSize(): number { return this._actualFontSize; }\r\n\r\n @property\r\n public get bmfontOriginalSize(): number { return this.font ? this.font.json[\"size\"] : -1; }\r\n\r\n @property\r\n private _fontSize: number = 32;\r\n @property({ range: [0, 1024] })\r\n public get fontSize(): number { return this._fontSize; }\r\n public set fontSize(v: number) {\r\n if (!EDITOR && this._fontSize === v) { return; }\r\n this._fontSize = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _lineHeight: number = 32;\r\n @property\r\n public get lineHeight(): number { return this._lineHeight; }\r\n public set lineHeight(v: number) {\r\n if (!EDITOR && this._lineHeight === v) { return; }\r\n this._lineHeight = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _spacingX: number = 0;\r\n @property\r\n public get spacingX(): number { return this._spacingX; }\r\n public set spacingX(v: number) {\r\n if (!EDITOR && this._spacingX === v) { return; }\r\n this._spacingX = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property({ type: Enum(TmpOverflow) })\r\n private _overflow: TmpOverflow = TmpOverflow.NONE;\r\n @property({ tooltip: \"文本的排版方式\", type: Enum(TmpOverflow) })\r\n public get overflow(): TmpOverflow { return this._overflow; }\r\n public set overflow(v: TmpOverflow) {\r\n if (!EDITOR && this._overflow === v) { return; }\r\n this._overflow = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _enableWrapText: boolean = true;\r\n @property({\r\n tooltip: \"是否启用自动换行\",\r\n visible() {\r\n return this._overflow === TmpOverflow.CLAMP || this._overflow === TmpOverflow.ELLIPSIS;\r\n }\r\n })\r\n public get enableWrapText(): boolean { return this._enableWrapText; }\r\n public set enableWrapText(v: boolean) {\r\n if (!EDITOR && this._enableWrapText === v) { return; }\r\n this._enableWrapText = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _enableItalic: boolean = false;\r\n @property({ tooltip: \"是否启用斜体\" })\r\n public get enableItalic(): boolean { return this._enableItalic; }\r\n public set enableItalic(v: boolean) {\r\n if (!EDITOR && this._enableItalic === v) { return; }\r\n this._enableItalic = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _enableUnderline: boolean = false;\r\n @property({ tooltip: \"是否启用下划线\" })\r\n public get enableUnderline(): boolean { return this._enableUnderline; }\r\n public set enableUnderline(v: boolean) {\r\n if (!EDITOR && this._enableUnderline === v) { return; }\r\n this._enableUnderline = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _underlineOffset: number = 0;\r\n @property({\r\n tooltip: \"下划线高度偏移\",\r\n visible() { return this._enableUnderline; }\r\n })\r\n public get underlineOffset(): number { return this._underlineOffset; }\r\n public set underlineOffset(v: number) {\r\n if (!EDITOR && this._underlineOffset === v) { return; }\r\n this._underlineOffset = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _enableStrikethrough: boolean = false;\r\n @property({ tooltip: \"是否启用删除线\" })\r\n public get enableStrikethrough(): boolean { return this._enableStrikethrough; }\r\n public set enableStrikethrough(v: boolean) {\r\n if (!EDITOR && this._enableStrikethrough === v) { return; }\r\n this._enableStrikethrough = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _strikethroughOffset: number = 0;\r\n @property({\r\n tooltip: \"删除线高度偏移\",\r\n visible() { return this._enableStrikethrough; }\r\n })\r\n public get strikethroughOffset(): number { return this._strikethroughOffset; }\r\n public set strikethroughOffset(v: number) {\r\n if (!EDITOR && this._strikethroughOffset === v) { return; }\r\n this._strikethroughOffset = v;\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n @property\r\n private _colorGradient: boolean = false;\r\n @property({ tooltip: \"是否启用颜色渐变,会和顶点颜色混合为最终的顶点颜色\" })\r\n public get colorGradient(): boolean { return this._colorGradient; }\r\n public set colorGradient(v: boolean) {\r\n if (!EDITOR && this._colorGradient === v) { return; }\r\n this._colorGradient = v;\r\n this._colorExtraDirty = true;\r\n }\r\n\r\n @property(Color)\r\n private _colorLB: Color = Color.WHITE.clone();\r\n @property({\r\n tooltip: \"左下顶点\", type: Color,\r\n visible() { return this._colorGradient; }\r\n })\r\n public get colorLB(): Color { return this._colorLB; }\r\n public set colorLB(v: Color) {\r\n if (!EDITOR && this._colorLB === v) { return; }\r\n this._colorLB = v;\r\n this._colorExtraDirty = true;\r\n }\r\n\r\n @property(Color)\r\n private _colorRB: Color = Color.WHITE.clone();\r\n @property({\r\n tooltip: \"右下顶点\", type: Color,\r\n visible() { return this._colorGradient; }\r\n })\r\n public get colorRB(): Color { return this._colorRB; }\r\n public set colorRB(v: Color) {\r\n if (!EDITOR && this._colorRB === v) { return; }\r\n this._colorRB = v;\r\n this._colorExtraDirty = true;\r\n }\r\n\r\n @property(Color)\r\n private _colorLT: Color = Color.WHITE.clone();\r\n @property({\r\n tooltip: \"左上顶点\", type: Color,\r\n visible() { return this._colorGradient; }\r\n })\r\n public get colorLT(): Color { return this._colorLT; }\r\n public set colorLT(v: Color) {\r\n if (!EDITOR && this._colorLT === v) { return; }\r\n this._colorLT = v;\r\n this._colorExtraDirty = true;\r\n }\r\n\r\n @property(Color)\r\n private _colorRT: Color = Color.WHITE.clone();\r\n @property({\r\n tooltip: \"右上顶点\", type: Color,\r\n visible() { return this._colorGradient; }\r\n })\r\n public get colorRT(): Color { return this._colorRT; }\r\n public set colorRT(v: Color) {\r\n if (!EDITOR && this._colorRT === v) { return; }\r\n this._colorRT = v;\r\n this._colorExtraDirty = true;\r\n }\r\n\r\n @property({ tooltip: \"材质参数\", type: TmpUniform })\r\n public tmpUniform: TmpUniform = new TmpUniform();\r\n\r\n @property({ tooltip: \"字体所依赖的纹理\", type: Texture2D, readonly: true })\r\n public textures: Texture2D[] = [];\r\n\r\n private _fontConfig: TmpFontConfig = null;\r\n /** 字体配置管理 */\r\n public get fontConfig(): TmpFontConfig { return this._fontConfig; }\r\n\r\n /** 每个字符的渲染数据,与string并不一定一一对应 */\r\n private _lettersInfo: TmpLetterInfo[] = [];\r\n public get lettersInfo(): TmpLetterInfo[] { return this._lettersInfo; }\r\n\r\n protected _assembler: typeof TmpAssembler = null;\r\n private _colorExtraDirty: boolean = false;\r\n\r\n private _richTextDeltaX: number = 0;\r\n /** 记录letterRight与nextTokenX的差值,供富文本排版使用 */\r\n public get richTextDeltaX(): number { return this._richTextDeltaX; }\r\n\r\n private editorInit(): void {\r\n if (EDITOR) {\r\n // 加载图集\r\n if (!this._font || !this._font[\"_uuid\"]) {\r\n this.textures = [];\r\n this.updateRenderData(true);\r\n return;\r\n }\r\n // log(this._font);\r\n //@ts-ignore\r\n Editor.Message.request(\"asset-db\", \"query-url\", this._font[\"_uuid\"]).then((url: string) => {\r\n // log(url);\r\n if (!url) {\r\n return;\r\n }\r\n let start = 12;\r\n let end = url.lastIndexOf(\"/\");\r\n let dir = url.slice(start, end + 1);\r\n let arr: Promise[] = [];\r\n this._font.json[\"pageData\"].forEach((v) => {\r\n let imgUrl = dir + v.file + \"/texture\";\r\n arr.push(TmpUtils.load(imgUrl));\r\n });\r\n Promise.all(arr).then((v) => {\r\n this.textures = v;\r\n this._fontConfig = new TmpFontConfig(this._font.json, this.textures);\r\n\r\n if (this._renderData) {\r\n this.destroyRenderData();\r\n this._renderData = null;\r\n }\r\n this.updateRenderData(true);\r\n });\r\n });\r\n }\r\n }\r\n\r\n public resetInEditor(): void {\r\n if (EDITOR) {\r\n TmpUtils.load(TmpUtils.TMP_MAT).then((mat) => {\r\n if (mat) {\r\n this.customMaterial = mat;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onLoad(): void {\r\n super.onLoad();\r\n if (!this.customMaterial) {\r\n this.resetInEditor();\r\n }\r\n this.tmpUniform.init(this);\r\n if (!this._fontConfig && this.font && this.textures.length > 0) {\r\n this._fontConfig = new TmpFontConfig(this._font.json, this.textures);\r\n }\r\n }\r\n\r\n public onEnable(): void {\r\n super.onEnable();\r\n this._applyFontTexture();\r\n }\r\n\r\n public lateUpdate(dt: number): void {\r\n if (this._colorExtraDirty) {\r\n this._colorExtraDirty = false;\r\n this._assembler.updateColorExtra(this);\r\n }\r\n }\r\n\r\n /**\r\n * @en Request new render data object.\r\n * @zh 请求新的渲染数据对象。\r\n * @return The new render data\r\n */\r\n public requestRenderData(drawInfoType = 0) {\r\n const data = RenderData.add(vfmt);\r\n data.initRenderDrawInfo(this, drawInfoType);\r\n this._renderData = data;\r\n return data;\r\n }\r\n\r\n public updateRenderData(force: boolean = false) {\r\n if (force) {\r\n this._flushAssembler();\r\n // Hack: Fixed the bug that richText wants to get the label length by _measureText,\r\n // _assembler.updateRenderData will update the content size immediately.\r\n if (this.renderData) { this.renderData.vertDirty = true; }\r\n this._applyFontTexture();\r\n }\r\n if (this._assembler) {\r\n this._assembler.updateRenderData(this);\r\n }\r\n }\r\n\r\n protected _render(render: any) {\r\n // render.commitComp(this, this.renderData, this.textures[0], this._assembler!, null);\r\n this.commitComp(render, this, this.renderData, this.textures[0], this._assembler!, null);\r\n }\r\n\r\n /**\r\n * 合批hack\r\n */\r\n private commitComp(render: any, comp: TextMeshPro, renderData: BaseRenderData | null, frame: Texture2D | SpriteFrame | null, assembler, transform: Node | null) {\r\n let dataHash = 0;\r\n let mat: Material;\r\n let bufferID = -1;\r\n if (renderData && renderData.chunk) {\r\n if (!renderData.isValid()) return;\r\n dataHash = renderData.dataHash;\r\n mat = renderData.material;\r\n bufferID = renderData.chunk.bufferId;\r\n }\r\n comp.stencilStage = StencilManager.sharedManager!.stage;\r\n const depthStencilStateStage = comp.stencilStage;\r\n\r\n // 判断材质宏与参数是否一致\r\n let isMatEqual = true;\r\n let tmpMatDefine = 0;\r\n if (comp.tmpUniform.enableOutline) { tmpMatDefine |= 1 << 0; }\r\n if (comp.tmpUniform.enableUnderlay) { tmpMatDefine |= 1 << 1; }\r\n if (comp.tmpUniform.enableGlow) { tmpMatDefine |= 1 << 2; }\r\n if (render._currMaterial !== mat) {\r\n if (((mat instanceof renderer.MaterialInstance) && render._currMaterial.parent !== mat.parent) ||\r\n (!(mat instanceof renderer.MaterialInstance) && render._currMaterial.parent !== mat) ||\r\n render._currTmpMatDefine !== tmpMatDefine) {\r\n isMatEqual = false\r\n }\r\n if (isMatEqual) {\r\n let arr = [\"texture0\", \"texture1\", \"texture2\", \"texture3\", \"texture4\", \"texture5\", \"texture6\", \"texture7\",\r\n \"faceColor\", \"faceDilate\", \"faceSoftness\",\r\n \"outlineColor\", \"outlineThickness\",\r\n \"underlayColor\", \"underlayOffsetX\", \"underlayOffsetY\", \"underlayDilate\", \"underlaySoftness\",\r\n \"glowColor\", \"glowOffset\", \"glowInner\", \"glowOuter\", \"glowPower\"\r\n ];\r\n let renderMat = comp.getRenderMaterial(0);\r\n for (let i = 0; i < arr.length; i++) {\r\n const propName = arr[i];\r\n let v1 = renderMat.getProperty(propName);\r\n let v2 = render._currMaterial.getProperty(propName);\r\n if (v1 instanceof Color && v2 instanceof Color && v1.equals(v2)) {\r\n continue;\r\n }\r\n if (v1 !== v2) {\r\n isMatEqual = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (render._currHash !== dataHash || dataHash === 0 || !isMatEqual//render._currMaterial !== mat\r\n || render._currDepthStencilStateStage !== depthStencilStateStage) {\r\n // Merge all previous data to a render batch, and update buffer for next render data\r\n render.autoMergeBatches(render._currComponent!);\r\n if (renderData && !renderData._isMeshBuffer) {\r\n render.updateBuffer(renderData.vertexFormat, bufferID);\r\n }\r\n\r\n // 标记宏定义开关\r\n render._currTmpMatDefine = tmpMatDefine;\r\n\r\n render._currRenderData = renderData;\r\n render._currHash = renderData ? renderData.dataHash : 0;\r\n render._currComponent = comp;\r\n render._currTransform = transform;\r\n render._currMaterial = comp.getRenderMaterial(0)!;\r\n render._currDepthStencilStateStage = depthStencilStateStage;\r\n render._currLayer = comp.node.layer;\r\n if (frame) {\r\n render._currTexture = frame.getGFXTexture();\r\n render._currSampler = frame.getGFXSampler();\r\n render._currTextureHash = frame.getHash();\r\n render._currSamplerHash = render._currSampler.hash;\r\n } else {\r\n render._currTexture = null;\r\n render._currSampler = null;\r\n render._currTextureHash = 0;\r\n render._currSamplerHash = 0;\r\n }\r\n }\r\n\r\n assembler.fillBuffers(comp, render);\r\n }\r\n\r\n // Cannot use the base class methods directly because BMFont and CHAR cannot be updated in assambler with just color.\r\n protected _updateColor() {\r\n super._updateColor();\r\n this.markForUpdateRenderData();\r\n }\r\n\r\n public setEntityColor(color: Color) {\r\n if (JSB) {\r\n this._renderEntity.color = color;\r\n }\r\n }\r\n\r\n protected _canRender() {\r\n if (!super._canRender() || !this._string) {\r\n return false;\r\n }\r\n\r\n if (!this.fontConfig || this.textures.length <= 0) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected _flushAssembler() {\r\n const assembler = TmpAssembler;\r\n\r\n if (this._assembler !== assembler) {\r\n this.destroyRenderData();\r\n this._assembler = assembler;\r\n }\r\n\r\n if (!this._renderData) {\r\n if (this._assembler && this._assembler.createData) {\r\n this._renderData = this._assembler.createData(this);\r\n this._renderData!.material = this.material;\r\n this._updateColor();\r\n }\r\n }\r\n }\r\n\r\n private _applyFontTexture(): void {\r\n this.markForUpdateRenderData();\r\n if (this.textures.length > 0) {\r\n if (this.renderData) {\r\n // this.renderData.textureDirty = true;\r\n }\r\n this.changeMaterialForDefine();\r\n if (this._assembler) {\r\n this._assembler.updateRenderData(this);\r\n }\r\n }\r\n }\r\n\r\n protected changeMaterialForDefine() {\r\n if (this.textures.length <= 0) {\r\n return;\r\n }\r\n\r\n this.updateMaterial();\r\n }\r\n\r\n protected updateMaterial(): void {\r\n if (!this._customMaterial) {\r\n return;\r\n }\r\n this.setMaterial(this._customMaterial, 0);\r\n\r\n // 更新材质参数\r\n let material = this.getMaterialInstance(0);\r\n this._updateTmpMatTexture(material);\r\n if (!this.tmpUniform || !this.tmpUniform.comp) {\r\n return;\r\n }\r\n this.updateTmpMatFace(material);\r\n this.updateTmpMatOutline(material);\r\n this.updateTmpMatUnderlay(material);\r\n this.updateTmpMatGlow(material);\r\n }\r\n\r\n private _updateTmpMatTexture(material: renderer.MaterialInstance): void {\r\n if (!material || this.textures.length <= 0) {\r\n return;\r\n }\r\n\r\n material.recompileShaders({\r\n \"USE_TEXTURE_LEVEL_1\": this.textures.length > 0,\r\n \"USE_TEXTURE_LEVEL_2\": this.textures.length > 1,\r\n \"USE_TEXTURE_LEVEL_3\": this.textures.length > 2,\r\n \"USE_TEXTURE_LEVEL_4\": this.textures.length > 4\r\n });\r\n\r\n for (let i = 0; i < this.textures.length; i++) {\r\n material.setProperty(`texture${i}`, this.textures[i]);\r\n }\r\n }\r\n\r\n public updateTmpMatFace(material: renderer.MaterialInstance): void {\r\n if (!material) {\r\n return;\r\n }\r\n material.setProperty(\"faceColor\", this.tmpUniform.faceColor);\r\n material.setProperty(\"faceDilate\", this.tmpUniform.faceDilate);\r\n material.setProperty(\"faceSoftness\", this.tmpUniform.faceSoftness);\r\n }\r\n\r\n public updateTmpMatOutline(material: renderer.MaterialInstance): void {\r\n if (!material) {\r\n return;\r\n }\r\n\r\n material.recompileShaders({ \"USE_OUTLINE\": this.tmpUniform.enableOutline });\r\n\r\n if (this.tmpUniform.enableOutline) {\r\n material.setProperty(\"outlineColor\", this.tmpUniform.outlineColor);\r\n material.setProperty(\"outlineThickness\", this.tmpUniform.outlineThickness);\r\n }\r\n }\r\n\r\n public updateTmpMatUnderlay(material: renderer.MaterialInstance): void {\r\n if (!material) {\r\n return;\r\n }\r\n\r\n material.recompileShaders({ \"USE_UNDERLAY\": this.tmpUniform.enableUnderlay });\r\n\r\n if (this.tmpUniform.enableUnderlay) {\r\n material.setProperty(\"underlayColor\", this.tmpUniform.underlayColor);\r\n material.setProperty(\"underlayOffsetX\", this.tmpUniform.underlayOffset.x);\r\n material.setProperty(\"underlayOffsetY\", this.tmpUniform.underlayOffset.y);\r\n material.setProperty(\"underlayDilate\", this.tmpUniform.underlayDilate);\r\n material.setProperty(\"underlaySoftness\", this.tmpUniform.underlaySoftness);\r\n }\r\n }\r\n\r\n public updateTmpMatGlow(material: renderer.MaterialInstance): void {\r\n if (!material) {\r\n return;\r\n }\r\n\r\n material.recompileShaders({ \"USE_GLOW\": this.tmpUniform.enableGlow });\r\n\r\n if (this.tmpUniform.enableGlow) {\r\n material.setProperty(\"glowColor\", this.tmpUniform.glowColor);\r\n material.setProperty(\"glowOffset\", this.tmpUniform.glowOffset);\r\n material.setProperty(\"glowInner\", this.tmpUniform.glowInner);\r\n material.setProperty(\"glowOuter\", this.tmpUniform.glowOuter);\r\n material.setProperty(\"glowPower\", this.tmpUniform.glowPower);\r\n }\r\n }\r\n\r\n /**\r\n * 立即更新渲染数据\r\n */\r\n public forceUpdateRenderData(): void {\r\n this.updateRenderData(true);\r\n }\r\n\r\n /**\r\n * 设置字体,必须调用此接口去动态设置字体\r\n */\r\n public setFont(font: JsonAsset, textures: Texture2D[]): void {\r\n if (!font || textures.length < 0) {\r\n error(`params error!`);\r\n return;\r\n }\r\n\r\n this._font = font;\r\n this.textures = textures;\r\n this._fontConfig = new TmpFontConfig(this._font.json, this.textures);\r\n if (!this.enabledInHierarchy) { return; }\r\n this.updateRenderData(true);\r\n }\r\n\r\n //#region 顶点数据操作接口,必须保证组件启用且节点激活才可使用这些接口\r\n /**\r\n * 根据字符下标判断此字符是否可见\r\n */\r\n public isVisible(index: number): boolean {\r\n if (!this.enabledInHierarchy) { return false; }\r\n return this._assembler.isVisble(this, index);\r\n }\r\n\r\n /**\r\n * 根据字符下标设置字符是否可见\r\n */\r\n public setVisible(index: number, visible: boolean): void {\r\n if (!this.enabledInHierarchy) { return; }\r\n this._assembler.setVisible(this, index, visible);\r\n }\r\n\r\n /**\r\n * 根据字符下标获取颜色顶点数据,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public getColorExtraVertices(index: number): [Color, Color, Color, Color] | null {\r\n if (!this.enabledInHierarchy) { return null; }\r\n return this._assembler.getColorExtraVertices(this, index);\r\n }\r\n\r\n /**\r\n * 根据字符下标设置颜色顶点数据,会和节点颜色混合为最终的顶点颜色,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public setColorExtraVertices(index: number, data: [Color, Color, Color, Color]): void {\r\n if (!this.enabledInHierarchy) { return; }\r\n this._assembler.setColorExtraVertices(this, index, data);\r\n }\r\n\r\n /**\r\n * 根据字符下标获取坐标顶点数据,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public getPosVertices(index: number): [Vec3, Vec3, Vec3, Vec3] | null {\r\n if (!this.enabledInHierarchy) { return null; }\r\n return this._assembler.getPosVertices(this, index);\r\n }\r\n\r\n /**\r\n * 根据字符下标设置坐标顶点数据,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public setPosVertices(index: number, data: [Vec3, Vec3, Vec3, Vec3]): void {\r\n if (!this.enabledInHierarchy) { return; }\r\n this._assembler.setPosVertices(this, index, data);\r\n }\r\n //#endregion\r\n}\r\n","\r\nimport { Vec3 } from \"cc\";\r\nimport { ThiefAiEnum, ThiefRoleViewComp } from \"./ThiefRoleViewComp\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\n\r\nexport class ThiefAiComp{\r\n gebolin:ThiefRoleViewComp;\r\n\r\n constructor(gebolin:ThiefRoleViewComp){\r\n this.gebolin = gebolin;\r\n }\r\n\r\n update(dt){\r\n if(this.gebolin.aiType == ThiefAiEnum.Action){\r\n return;\r\n }\r\n switch(this.gebolin.aiType){\r\n case ThiefAiEnum.Chusheng:\r\n this.onChusheng();\r\n break;\r\n case ThiefAiEnum.YiDong:\r\n this.onYidong();\r\n break;\r\n case ThiefAiEnum.ShouJi:\r\n\r\n break;\r\n case ThiefAiEnum.TaoPao:\r\n this.onTaopao();\r\n break;\r\n }\r\n }\r\n private onChusheng(){\r\n this.gebolin.aiType = ThiefAiEnum.YiDong;\r\n \r\n }\r\n private onYidong(){\r\n let toV3:Vec3 = this.gebolin.isStar ? this.gebolin.pointArr[1] : this.gebolin.pointArr[0];\r\n this.gebolin.aiType = ThiefAiEnum.Action;\r\n GameEntry.Inst.mapView.nowScene.moveThief(this.gebolin , toV3.x , toV3.y, 1 , ()=>{\r\n this.gebolin.isStar = !this.gebolin.isStar;\r\n this.gebolin.aiType = ThiefAiEnum.YiDong;\r\n })\r\n }\r\n private onTaopao(){\r\n this.gebolin.charactor.isCloseMove = false;\r\n this.gebolin.aiType = ThiefAiEnum.Action;\r\n GameEntry.Inst.mapView.nowScene.moveThief(this.gebolin , 1820 , 460 , 1 , ()=>{\r\n this.gebolin.desTory();\r\n GameEntry.Inst.mapView.thief = null;\r\n })\r\n }\r\n}","import { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport Charactor, { CharactorDirection, CharactorState } from \"../map/charactor/Charactor\";\r\nimport { ICharactorClip } from \"../map/charactor/ICharactorClip\";\r\nimport { EventTouch } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { sp } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport GameEntry from \"../modules/GameEntry\";\r\nimport { ThiefAiComp } from \"./ThiefAiComp\";\r\nimport { Pass, PassPoxy } from \"../modules/game/proxy/PassPoxy\";\r\nimport { MapPoxy, Maps } from \"../modules/game/proxy/MapPoxy\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport { EventManager, EventType } from \"../core/manager/EventManager\";\r\nimport { FuBenProxy } from \"../modules/game/proxy/FuBenProxy\";\r\nimport { MapGoldEffViewComp } from \"../item/MapGoldEffViewComp\";\r\nimport { instantiate } from \"cc\";\r\nimport { Prefab } from \"cc\";\r\nimport WindowManager, { UILayer } from \"../core/manager/WindowManager\";\r\nimport { UITransform } from \"cc\";\r\nimport { MapModelComp } from \"../map/MapModel\";\r\nimport { tween } from \"cc\";\r\nimport MapRoadUtils from \"../map/road/MapRoadUtils\";\r\nconst { ccclass , property} = _decorator;\r\n@ccclass('ThiefRoleViewComp')\r\nexport class ThiefRoleViewComp extends Component implements ICharactorClip{\r\n @property(Node)\r\n skeleton :Node = null;\r\n @property(ProgressBar)\r\n clickPro:ProgressBar = null;\r\n @property(Prefab)\r\n mapGoldEff : Prefab = null;\r\n @property(Node)\r\n fangxiangNode:Node = null;\r\n @property(Node)\r\n Sprite_shouzhi : Node = null;\r\n \r\n public charactor!: Charactor;\r\n public spine!: sp.Skeleton;\r\n public aiType:ThiefAiEnum;\r\n public thiefAi;\r\n public speed:number = 200;\r\n public isStar:boolean = true;\r\n public pointArr:Array = null;\r\n\r\n onLoad(): void {\r\n this.addComponent(Charactor);\r\n this.charactor = this.getComponent(Charactor);\r\n this.charactor.clip = this;\r\n this.charactor.sceneMap = GameEntry.Inst.mapView.nowScene;\r\n this.charactor.pos = this.node.position;\r\n this.charactor.updateZIndex();\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.initMovePos()\r\n this.aiType = ThiefAiEnum.Chusheng;\r\n this.thiefAi = new ThiefAiComp(this);\r\n\r\n this.clickPro.progress = 1;\r\n\r\n this.onThiefChange();\r\n this.addEvent();\r\n setTimeout(() => {\r\n this.spineEvent();\r\n }, 10);\r\n }\r\n private spineEvent(){\r\n this.skeleton.getComponent(sp.Skeleton)!.setCompleteListener((trackEntry) => {\r\n let name = trackEntry.animation ? trackEntry.animation.name : '';\r\n switch (name) {\r\n case \"goblin_behit\":\r\n this.clickPro.node.active = false;\r\n this.charactor.isCloseMove = false;\r\n this.aiType = ThiefAiEnum.YiDong;\r\n this.goblin_walk();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private addEvent(){\r\n EventManager.Inst.on(EventType.THIEF_CLICK_REWARD_CHANGE , this , this.onThiefChange);\r\n }\r\n private onThiefChange(){\r\n if(this && this.clickPro){\r\n let maxNum:number = FuBenProxy.Inst.thiefMaxClick;\r\n let haveCoun:number = FuBenProxy.Inst.thiefHaveClick;\r\n let pro:number = haveCoun/maxNum;\r\n this.clickPro.progress = pro;\r\n this.showBossReward();\r\n }\r\n }\r\n private initMovePos(){\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let map:Maps = MapPoxy.Inst.getMapById(pass.mapId);\r\n let posArr:Array = map.pos_xiaotou[0];\r\n let starPoint:Vec3 = MapRoadUtils.AStarToPoint(new Vec3(Number(posArr[0]) , Number(posArr[1]) , 1));\r\n let posArr1:Array = map.pos_xiaotou[1];\r\n let endPoint:Vec3 = MapRoadUtils.AStarToPoint(new Vec3(Number(posArr1[0]) , Number(posArr1[1]) , 1));\r\n this.pointArr = [starPoint , endPoint];\r\n }\r\n\r\n init(){\r\n\r\n }\r\n\r\n onClick(){\r\n if(FuBenProxy.Inst.thiefIsOpen){\r\n this.clickPro.node.active = true;\r\n FuBenProxy.Inst.SendC1652();\r\n this.aiType = ThiefAiEnum.ShouJi;\r\n this.charactor.isCloseMove = true;\r\n this.goblin_Hit();\r\n }\r\n }\r\n\r\n setAlpha(value: number): void {\r\n \r\n }\r\n\r\n setDirection(value: CharactorDirection): void {\r\n \r\n }\r\n\r\n setPos(value: Vec3): void {\r\n this.node.position = value;\r\n }\r\n checkTouch(event: EventTouch): boolean {\r\n return false;\r\n }\r\n setState(value: CharactorState): void {\r\n switch (value) {\r\n case CharactorState.Idle:\r\n this.goblin_wait();\r\n break;\r\n case CharactorState.Run:\r\n this.goblin_walk();\r\n break;\r\n }\r\n }\r\n update(dt){\r\n if(this.thiefAi){\r\n this.thiefAi.update(dt);\r\n }\r\n }\r\n /** 受击动作 */\r\n goblin_Hit() {\r\n this.skeleton.getComponent(sp.Skeleton)!.setAnimation(0 , \"goblin_behit\" , true)\r\n }\r\n /** 待机动作 */\r\n goblin_wait() {\r\n this.skeleton.getComponent(sp.Skeleton)!.setAnimation(0 , \"goblin_wait\" , true)\r\n }\r\n /**移动*/\r\n goblin_walk(){\r\n this.skeleton.getComponent(sp.Skeleton)!.setAnimation(0 , \"goblin_walk\" , true)\r\n }\r\n private showBossReward(){\r\n let num:number = FuBenProxy.Inst.thiefThisReward;\r\n let max:number = Math.ceil(num/100);\r\n if(max > 20){\r\n max = 20;\r\n }\r\n for(let i = 0 ; i < max ; i++){\r\n let eff:MapGoldEffViewComp = instantiate(this.mapGoldEff).getComponent(MapGoldEffViewComp);\r\n let _x:number = Math.random()*100 - 50;\r\n let _y:number = Math.random()*20-10;\r\n\r\n let layer = WindowManager.Instance().getLayer(UILayer.地图特效);\r\n\r\n /**角色对象的局部坐标*/\r\n let posV3:Vec3 = this.node.position;\r\n /**角色对象的map摄像机下本地坐标转世界坐标 */\r\n let wordPoint:Vec3 = GameEntry.Inst.mapView.nowScene.heroLayer.getComponent(UITransform).convertToWorldSpaceAR(posV3);\r\n /**世界坐标转屏幕坐标*/\r\n let screenPoint:Vec3 = GameEntry.Inst.mapView.nowScene.mapCamera.worldToScreen(wordPoint);\r\n /**世界坐标转屏幕坐标*/\r\n let uiWordPoint:Vec3 = GameEntry.Inst.mainCamera.screenToWorld(screenPoint);\r\n /**屏幕坐标转局部坐标*/\r\n let addPoint:Vec3 = layer.getComponent(UITransform).convertToNodeSpaceAR(uiWordPoint);\r\n /***偏移量*/\r\n let effPos:Vec3 = new Vec3(addPoint.x + _x ,addPoint.y + _y , 1);\r\n eff.node.position = effPos;\r\n layer.addChild(eff.node);\r\n\r\n\r\n let targetPoint:Vec3 = MapModelComp.getInstance().goldPosInUi;\r\n\r\n eff.playAni();\r\n setTimeout(() => {\r\n tween(eff.node).to(1.5,{position : targetPoint , scale:new Vec3(0.4,0.4,1)}).call(()=>{\r\n eff.reset();\r\n }).start();\r\n }, 400);\r\n }\r\n }\r\n\r\n desTory(){\r\n if(this.node&&this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n this.node.destroy();\r\n }\r\n}\r\n\r\nexport enum ThiefAiEnum{\r\n Chusheng,\r\n YiDong,\r\n ShouJi,\r\n TaoPao,\r\n Action,\r\n ActionEnd\r\n}","import { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport { Label } from 'cc';\nimport { StringUtil } from '../../../core/utils/StringUtil';\nimport { GameModleComp } from '../../../game/GameModle';\nimport { HeroEquipProxy } from './HeroEquipProxy';\n@res_auto_bind()\nexport class TimePoxy {\n private static _inst: TimePoxy;\n public static get Inst(): TimePoxy {\n if (TimePoxy._inst == null) {\n TimePoxy._inst = new TimePoxy();\n }\n return TimePoxy._inst;\n }\n\n /**通用 时间换算成00:00:00 都显示 isChange=T需转换 F不需要转换*/\n public ShowTimeLabelNumberAll(timestamp: number,isChange :boolean=false,languageid :number=undefined) {\n let difference;\n if(isChange){\n // const currentTime = Math.floor(Date.now() / 1000); //当前时间(秒)\n let currentTime = GameModleComp.getInstance().serverTime;\n let targetTime = timestamp;// 给定时间戳(秒)\n // 时间换算,截止时间到当前时间\n difference = targetTime - currentTime; // 时间差(秒)\n }else{\n difference = timestamp; // 时间差(秒)\n }\n const days = Math.floor(difference / (3600 * 24)); // 截止天数 \n const hours = Math.floor((difference / 3600) % 24); //截止小时\n const minutes = Math.floor((difference / 60) % 60); // 截止分\n const remainingSeconds = difference % 60; //剩余秒\n\n const hStr = hours < 10 ? ('0' + hours) : hours;\n const mStr = minutes < 10 ? ('0' + minutes) : minutes;\n const sStr = remainingSeconds < 10 ? ('0' + remainingSeconds) : remainingSeconds;\n if (days >= 1) {\n if(languageid==undefined){\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20095), days);//天\n }else{\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20197), days);//剩余{0}天\n }\n \n } else {\n return `${hStr}:${mStr}:${sStr}`;\n }\n // const hStr = hours < 10 ? ('0' + hours) : hours;\n // const mStr = minutes < 10 ? ('0' + minutes) : minutes;\n // const sStr = remainingSeconds < 10 ? ('0' + remainingSeconds) : remainingSeconds;\n // // return `${days}:${hStr}:${mStr}:${sStr}`;\n // if (days >= 1) {\n // return StringUtil.stringFormat(GlobalFunction.GetMsg(20095), days);\n // } else {\n // if (hours > 0) {\n // return `${hStr}:${mStr}:${sStr}`;\n // } else {\n // return `${mStr}:${sStr}`;\n // }\n // }\n }\n\n\n\n\n /** Label初始化 時間轉換中文顯示 */\n public ShowTimeLabel(timestamp: number) {\n const difference = timestamp; // 时间差(秒)\n if (difference <= 0) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20179), timestamp);;\n }\n const days = Math.floor(difference / (3600 * 24)); // 截止天数 \n const hours = Math.floor((difference / 3600) % 24); //截止小时\n const minutes = Math.floor((difference / 60) % 60); // 截止分\n const remainingSeconds = difference % 60; //剩余秒\n if (days >= 1) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20095), days);\n } else {\n if (hours > 0) {\n if (minutes == 0) {\n return hours + GlobalFunction.GetMsg(20110);\n } else {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20178), hours, minutes);\n }\n\n } else {\n if (minutes <= 0) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20179), remainingSeconds);\n } else {\n if (remainingSeconds == 0) {\n return minutes + \" \" + GlobalFunction.GetMsg(20109);\n } else {\n return minutes + \" \" + GlobalFunction.GetMsg(20109) + remainingSeconds + \" \" + GlobalFunction.GetMsg(20199);\n }\n }\n }\n }\n }\n\n\n /** 祝福 倒計時Label顯示 中文 */\n public ShowTimeMinutesLabel(timestamp: number) {\n const difference = timestamp; // 时间差(秒)\n if (difference <= 0) {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20179), timestamp);;\n }\n const minutes = Math.floor((difference / 60) % 60); // 截止分\n const remainingSeconds = difference % 60; //剩余秒\n\n if (minutes > 0) {\n if (remainingSeconds == 0) {\n return minutes + \" \" + GlobalFunction.GetMsg(20109);\n } else {\n return minutes + \" \" + GlobalFunction.GetMsg(20109) + remainingSeconds + \" \" + GlobalFunction.GetMsg(20199);\n }\n } else {\n return remainingSeconds + \" \" + GlobalFunction.GetMsg(20199);\n }\n\n }\n\n\n public IsTimeOver(timestamp: number) {\n const currentTime = GameModleComp.getInstance().serverTime; //当前时间(秒)\n const targetTime = timestamp;// 给定时间戳(秒)\n // 时间换算,截止时间到当前时间\n const difference = targetTime - currentTime; // 时间差(秒)\n return difference <= 0;\n }\n\n\n /** 时间换算成分钟 */\n public ShowminutesTime(timestamp: number) {\n\n let difference = timestamp; // 时间差(秒)\n const minutes = Math.floor((difference / 60)); // 截止分\n return minutes + \" \" + GlobalFunction.GetMsg(20109);\n }\n\n\n /**月卡 时间换算成00:00:00 都显示*/\n public ShowMonthCardTime(timestamp: number,isChange :boolean=false) {\n let difference;\n if(isChange){\n let currentTime = GameModleComp.getInstance().serverTime;\n let targetTime = timestamp;\n difference = targetTime - currentTime;\n }else{\n difference = timestamp;\n }\n const days = Math.floor(difference / (3600 * 24)); // 截止天数 \n const hours = Math.floor((difference / 3600) % 24); //截止小时\n const minutes = Math.floor((difference / 60) % 60); // 截止分\n const remainingSeconds = difference % 60; //剩余秒\n\n const hStr = hours < 10 ? ('0' + hours) : hours;\n const mStr = minutes < 10 ? ('0' + minutes) : minutes;\n const sStr = remainingSeconds < 10 ? ('0' + remainingSeconds) : remainingSeconds;\n if (days >= 1) {\n\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20197), days);//剩余{0}天\n \n } else {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20198), `${hStr}`, `${mStr}`, `${sStr}`);//剩余\n }\n }\n\n\n public SecondsToDate(seconds) {\n let date = new Date(seconds * 1000); // 将秒数转换为毫秒\n let year = date.getFullYear();\n let month = date.getMonth() + 1; // 月份需要+1因为getMonth()返回的是0-11之间的数字\n let day = date.getDate();\n \n // 格式化月份和日期,确保它们至少有两位数字\n let months =('0'+month).slice(-2);\n let days = ('0' + day).slice(-2);\n return `${year}/${months}/${days}`; // 使用模板字符串返回格式化后的日期\n }\n\n public BackMonth(seconds) {\n let date = new Date(seconds * 1000); // 将秒数转换为毫秒\n let month = date.getMonth() + 1; // 月份需要+1因为getMonth()返回的是0-11之间的数字\n // 格式化月份和日期,确保它们至少有两位数字\n let months =('0'+month).slice(-2);\n return `${months}`; // 使用模板字符串返回格式化后的日期\n }\n public BackDay(seconds) {\n let date = new Date(seconds * 1000); // 将秒数转换为毫秒\n let day = date.getDate();\n // 格式化月份和日期,确保它们至少有两位数字\n let days = ('0' + day).slice(-2);\n return `${days}` ; // 使用模板字符串返回格式化后的日期\n }\n public ShowTime(timestamp: number) {\n let difference = timestamp; // 时间差(秒)\n const days = Math.floor(difference / (3600 * 24)); // 截止天数 \n const hours = Math.floor((difference / 3600) % 24); //截止小时\n const minutes = Math.floor((difference / 60) % 60); // 截止分\n const remainingSeconds = difference % 60; //剩余秒\n\n const hStr = hours < 10 ? ('0' + hours) : hours;\n const mStr = minutes < 10 ? ('0' + minutes) : minutes;\n const sStr = remainingSeconds < 10 ? ('0' + remainingSeconds) : remainingSeconds;\n\n return `${hStr}:${mStr}:${sStr}`;\n }\n\n /**七天樂 */\n public ShowDaySevenTimeLabel(timestamp: number) {\n\n let difference = timestamp; // 时间差(秒)\n \n const days = Math.floor(difference / (3600 * 24)); // 截止天数 \n const hours = Math.floor((difference / 3600) % 24); //截止小时\n const minutes = Math.floor((difference / 60) % 60); // 截止分\n const remainingSeconds = difference % 60; //剩余秒\n\n const hStr = hours < 10 ? ('0' + hours) : hours;\n const mStr = minutes < 10 ? ('0' + minutes) : minutes;\n const sStr = remainingSeconds < 10 ? ('0' + remainingSeconds) : remainingSeconds;\n if (days >= 1) {\n \n return StringUtil.stringFormat(GlobalFunction.GetMsg(20197), days);//剩余{0}天\n \n \n } else {\n return StringUtil.stringFormat(GlobalFunction.GetMsg(20196), `${hStr}`,`${mStr}`,`${sStr}`);//\"{0}:{1}:{2}后结束\"\n }\n }\n public RetunDaySevenTimeDay(timestamp: number) {\n\n let difference = timestamp; // 时间差(秒)\n const days = Math.floor(difference / (3600 * 24)); // 截止天数 \n return 7- days\n }\n public ShowDaySevenTime(timestamp: number) {\n let difference = timestamp; // 时间差(秒)\n const days = Math.floor(difference / (3600 * 24)); // 截止天数 \n const hours = Math.floor((difference / 3600) % 24); //截止小时\n const minutes = Math.floor((difference / 60) % 60); // 截止分\n const remainingSeconds = difference % 60; //剩余秒\n \n const hStr = hours < 10 ? ('0' + hours) : hours;\n const mStr = minutes < 10 ? ('0' + minutes) : minutes;\n const sStr = remainingSeconds < 10 ? ('0' + remainingSeconds) : remainingSeconds;\n if (days >= 1) {\n const hStrs = Math.floor((difference / 3600));\n return `${hStrs}:${mStr}:${sStr}`;\n }else{\n return `${hStr}:${mStr}:${sStr}`;\n }\n }\n} ","// /** @private */\r\n\r\nimport { _decorator } from 'cc';\r\nvar guid = 0;\r\nclass TimerHandler {\r\n key: number;\r\n repeat: boolean;\r\n delay: number;\r\n userFrame: boolean;\r\n exeTime: number;\r\n caller: any\r\n method: Function;\r\n args: any[];\r\n jumpFrame: boolean;\r\n clear(): void {\r\n this.caller = null;\r\n this.method = null;\r\n this.args = null;\r\n }\r\n run(withClear: boolean): void {\r\n var caller: any = this.caller;\r\n if (caller && caller.destroyed) return this.clear();\r\n var method: Function = this.method;\r\n var args: any[] = this.args;\r\n withClear && this.clear();\r\n if (method == null) return;\r\n args ? method.apply(caller, args) : method.call(caller);\r\n }\r\n}\r\n\r\nexport class Timer {\r\n /**@private */\r\n private _pool: any[] = [];\r\n /**@private */\r\n private _mid: number = 1;\r\n // _ct:number =0;\r\n // get currTimer(){\r\n // return this._ct;\r\n // }\r\n // set currTimer(v:number){\r\n // console.error(v);\r\n // this._ct = v;\r\n // }\r\n /** 当前帧开始的时间。*/\r\n currTimer: number = 0;\r\n /** 当前的帧数。*/\r\n currFrame: number = 0;\r\n /**@internal 两帧之间的时间间隔,单位秒。*/\r\n _delta: number = 0;\r\n /**@internal */\r\n _lastTimer: number = 0;\r\n /**@private */\r\n private _map: any[] = [];\r\n /**@private */\r\n private _handlers: any[] = [];\r\n /**@private */\r\n private _temp: any[] = [];\r\n /**@private */\r\n private _count: number = 0;\r\n\r\n /**两帧之间的时间间隔,单位秒。*/\r\n get delta(): number {\r\n return this._delta;\r\n }\r\n\r\n /**\r\n * @internal\r\n * 帧循环处理函数。dt:秒\r\n */\r\n public _update(dt: number): void {\r\n\r\n var frame: number = this.currFrame = this.currFrame + 1;\r\n\r\n this._delta = dt;\r\n var timer: number = this.currTimer = this.currTimer + this._delta;\r\n this._lastTimer = timer;\r\n var awake: boolean = (this.currTimer - this._lastTimer) > 30;\r\n\r\n //处理handler\r\n var handlers: any[] = this._handlers;\r\n this._count = 0;\r\n for (var i: number = 0, n: number = handlers.length; i < n; i++) {\r\n var handler: TimerHandler = handlers[i];\r\n if (handler.method !== null) {\r\n var t: number = handler.userFrame ? frame : timer;\r\n if (t >= handler.exeTime) {\r\n if (handler.repeat) {\r\n if (!handler.jumpFrame || awake) {\r\n handler.exeTime += handler.delay;\r\n handler.run(false);\r\n if (t > handler.exeTime) {\r\n //如果执行一次后还能再执行,做跳出处理,如果想用多次执行,需要设置jumpFrame=true\r\n handler.exeTime += Math.ceil((t - handler.exeTime) / handler.delay) * handler.delay;\r\n }\r\n } else {\r\n while (t >= handler.exeTime) {\r\n handler.exeTime += handler.delay;\r\n handler.run(false);\r\n }\r\n }\r\n } else {\r\n handler.run(true);\r\n }\r\n }\r\n } else {\r\n this._count++;\r\n }\r\n }\r\n\r\n if (this._count > 30 || frame % 200 === 0) this._clearHandlers();\r\n\r\n }\r\n\r\n /** @private */\r\n private _clearHandlers(): void {\r\n var handlers: any[] = this._handlers;\r\n for (var i: number = 0, n: number = handlers.length; i < n; i++) {\r\n var handler: TimerHandler = handlers[i];\r\n if (handler.method !== null) this._temp.push(handler);\r\n else this._recoverHandler(handler);\r\n }\r\n this._handlers = this._temp;\r\n handlers.length = 0;\r\n this._temp = handlers;\r\n }\r\n\r\n /** @private */\r\n private _recoverHandler(handler: TimerHandler): void {\r\n if (this._map[handler.key] == handler) this._map[handler.key] = null;\r\n handler.clear();\r\n this._pool.push(handler);\r\n }\r\n\r\n /** @internal */\r\n _create(useFrame: boolean, repeat: boolean, delay: number, caller: any, method: Function, args: any[], coverBefore: boolean): TimerHandler {\r\n //如果延迟为0,则立即执行\r\n if (!delay) {\r\n method.apply(caller, args);\r\n return null;\r\n }\r\n\r\n //先覆盖相同函数的计时\r\n if (coverBefore) {\r\n var handler: TimerHandler = this._getHandler(caller, method);\r\n if (handler) {\r\n handler.repeat = repeat;\r\n handler.userFrame = useFrame;\r\n handler.delay = delay;\r\n handler.caller = caller;\r\n handler.method = method;\r\n handler.args = args;\r\n handler.exeTime = delay + (useFrame ? this.currFrame : this.currTimer);\r\n return handler;\r\n }\r\n }\r\n\r\n //找到一个空闲的timerHandler\r\n handler = this._pool.length > 0 ? this._pool.pop() : new TimerHandler();\r\n handler.repeat = repeat;\r\n handler.userFrame = useFrame;\r\n handler.delay = delay;\r\n handler.caller = caller;\r\n handler.method = method;\r\n handler.args = args;\r\n handler.exeTime = delay + (useFrame ? this.currFrame : this.currTimer);\r\n\r\n //索引handler\r\n this._indexHandler(handler);\r\n\r\n //插入数组\r\n this._handlers.push(handler);\r\n\r\n return handler;\r\n }\r\n\r\n /** @private */\r\n private _indexHandler(handler: TimerHandler): void {\r\n var caller: any = handler.caller;\r\n var method: any = handler.method;\r\n var cid: number = caller ? caller.$_GID || (caller.$_GID = guid++) : 0;\r\n var mid: number = method.$_TID || (method.$_TID = (this._mid++) * 100000);\r\n handler.key = cid + mid;\r\n this._map[handler.key] = handler;\r\n }\r\n\r\n /**\r\n * 定时执行一次。\r\n * @param\tdelay\t延迟时间(单位为秒)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n */\r\n once(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true): void {\r\n this._create(false, false, delay, caller, method, args, coverBefore);\r\n }\r\n\r\n /**\r\n * 定时重复执行。\r\n * @param\tdelay\t间隔时间(单位秒)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n * @param\tjumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次\r\n */\r\n loop(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true, jumpFrame: boolean = false): void {\r\n var handler: TimerHandler = this._create(false, true, delay, caller, method, args, coverBefore);\r\n if (handler) handler.jumpFrame = jumpFrame;\r\n }\r\n\r\n /**\r\n * 定时执行一次(基于帧率)。\r\n * @param\tdelay\t延迟几帧(单位为帧)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n */\r\n frameOnce(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true): void {\r\n this._create(true, false, delay, caller, method, args, coverBefore);\r\n }\r\n\r\n /**\r\n * 定时重复执行(基于帧率)。\r\n * @param\tdelay\t间隔几帧(单位为帧)。\r\n * @param\tcaller\t执行域(this)。\r\n * @param\tmethod\t定时器回调函数。\r\n * @param\targs\t回调参数。\r\n * @param\tcoverBefore\t是否覆盖之前的延迟执行,默认为 true 。\r\n */\r\n frameLoop(delay: number, caller: any, method: Function, args: any[] = null, coverBefore: boolean = true): void {\r\n this._create(true, true, delay, caller, method, args, coverBefore);\r\n }\r\n\r\n /** 返回统计信息。*/\r\n toString(): string {\r\n return \" handlers:\" + this._handlers.length + \" pool:\" + this._pool.length;\r\n }\r\n\r\n /**\r\n * 清理定时器。\r\n * @param\tcaller 执行域(this)。\r\n * @param\tmethod 定时器回调函数。\r\n */\r\n clear(caller: any, method: Function): void {\r\n var handler: TimerHandler = this._getHandler(caller, method);\r\n if (handler) {\r\n this._map[handler.key] = null;\r\n handler.key = 0;\r\n handler.clear();\r\n }\r\n }\r\n\r\n /**\r\n * 清理对象身上的所有定时器。\r\n * @param\tcaller 执行域(this)。\r\n */\r\n clearAll(caller: any): void {\r\n if (!caller) return;\r\n for (var i: number = 0, n: number = this._handlers.length; i < n; i++) {\r\n var handler: TimerHandler = this._handlers[i];\r\n if (handler.caller === caller) {\r\n this._map[handler.key] = null;\r\n handler.key = 0;\r\n handler.clear();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n private _getHandler(caller: any, method: any): TimerHandler {\r\n var cid: number = caller ? caller.$_GID || (caller.$_GID = guid++) : 0;\r\n var mid: number = method.$_TID || (method.$_TID = (this._mid++) * 100000);\r\n return this._map[cid + mid];\r\n }\r\n\r\n /**\r\n * 立即提前执行定时器,执行之后从队列中删除\r\n * @param\tcaller 执行域(this)。\r\n * @param\tmethod 定时器回调函数。\r\n */\r\n runTimer(caller: any, method: Function): void {\r\n var handler: TimerHandler = this._getHandler(caller, method);\r\n if (handler && handler.method != null) {\r\n this._map[handler.key] = null;\r\n handler.run(true);\r\n }\r\n }\r\n}","import { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class TipsPoxy {\n private static _inst: TipsPoxy;\n public static get Inst(): TipsPoxy {\n if (TipsPoxy._inst == null) {\n TipsPoxy._inst = new TipsPoxy();\n }\n return TipsPoxy._inst;\n }\n @res_assign(\"Tips\")\n public TipsSlots: TipsSolt[]; \n public InitTipsConfig(){\n\n if(!this.TipsSlots)\n {\n this.TipsSlots =[];\n } \n for(var key in ConfigManager.GetInstance().getValue(\"Tips\"))\n {\n let item = new TipsSolt();\n item = ConfigManager.GetInstance().getValue(\"Tips\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.TipsSlots.push(item);\n }\n }\n }\n}\nexport class TipsSolt {\n\n /**ID */\n ID :number;\n // /** 功能界面 */\n Ber_ui: string;\n // /** 功能按钮 */\n Button: string;\n // /** 使用界面 */\n Aft_ui: string;\n // /** 标题多语言 */\n lan_Title: string; \n // /** 使用类型 1-label_1 2-label_2*/\n Type: number;\n // /** 内容多语言 */\n lan_Content: string;\n}\n ","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { titleStyle } from \"../proxy/TitleProxy\";\nconst { ccclass, property } = _decorator;\n@ccclass(\"titleItem\")\nexport default class titleItem extends BasePanel{\n titlestyle :titleStyle;\n}\n","/**\n * CommonMsg config配置文件\n **/\n\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { CommonMsgData } from './CommonMsgProxy';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport TitleUI from '../titleui/TitleUI';\nimport { Console } from 'console';\n@res_auto_bind()\nexport class TitleProxy {\n private static _inst: TitleProxy;\n public static get Inst(): TitleProxy {\n if (TitleProxy._inst == null) {\n TitleProxy._inst = new TitleProxy();\n }\n return TitleProxy._inst;\n }\n @res_assign(\"TitleData\")\n public TitleDataList: TitleData[]; \n public TitleUIData :boolean =false;\n public InitTitleConfig(){\n\n if(!this.TitleDataList){\n this.TitleDataList =[];\n } \n let TitleDataConfig= ConfigManager.GetInstance().getValue(\"Title\")\n for(var key in TitleDataConfig)\n {\n let titleitem = ConfigManager.GetInstance().getValue(\"Title\")[key];\n if(titleitem){\n for(var keys in titleitem){\n titleitem[keys] = GlobalFunction.Inst.ParamDef(keys,titleitem[keys]);\n\n }\n this.TitleDataList.push(titleitem);\n }\n\n }\n }\n public OpenTitlePoup( ui :string ,toggle :string)\n {\n if(this.TitleDataList==null){\n this.InitTitleConfig();\n }\n let data :TitleData = this.TitleDataList.find(item => item.Ber_ui == ui && item.Ber_toggle ==toggle);\n if(data){\n if(TitleProxy.Inst.TitleUIData){\n WindowManager.Instance().removeWindow(GameConst.winPath.TitleUI,true); \n }\n WindowManager.Instance().open(GameConst.winPath.TitleUI,data)\n }else{\n if(TitleProxy.Inst.TitleUIData){\n TitleProxy.Inst.TitleUIData=false;\n WindowManager.Instance().removeWindow(GameConst.winPath.TitleUI,true);\n }\n }\n }\n\n public GetTitleIcon(type:titleStyle)\n {\n if(type==titleStyle.zuanshi){\n return \"ui_icon_zuanshi\";\n }else if(type==titleStyle.jinbi ){\n return \"ui_icon_jinbi\";\n }else if(type==titleStyle.zhaohuanjuan){\n return \"ui_icon_zhanhuanquan\";\n }else if(type==titleStyle.star){\n return \"ui_icon_xingzuan\";\n }\n }\n\n}\n\nexport class TitleData{\n /** id */\n id: number;\n /** ui */\n Ber_ui: string;\n /** toggle */\n Ber_toggle: string;\n\n /** 判断是在哪个频道显示 */\n ay_type: string[];\n}\n\nexport enum titleStyle {\n Null,\n zuanshi,\n jinbi,\n zhaohuanjuan,\n star\n }","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { TitleData, TitleProxy, titleStyle } from \"../proxy/TitleProxy\";\nimport { Label, Node } from \"cc\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { instantiate } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { Button } from \"cc\";\nimport { Component } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { ShopGoodType, ShopProxy, ShopUiType } from \"../proxy/ShopProxy\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport titleItem from \"./titleItem\";\nimport GameEntry from \"../../GameEntry\";\nimport { MapModelComp } from \"../../../map/MapModel\";\nimport { Vec3 } from \"cc\";\nimport { UITransform } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('TitleUI')\nexport default class TitleUI extends BasePanel {\n\n titleData: TitleData;\n @property(Node) Panle_top: Node | null = null;\n item: Node | null = null;\n prfabitem: Node | null = null;\n\n onBtnClicked(e: any, name: string) {\n if(name == \"Button_diamond\") {\n // this.close(true)\n }else if (name == \"Button_glod\") {\n // this.close(true)\n }\n }\n start() {\n this.addEvent();\n }\n private addEvent(){\n\n EventManager.Inst.on(EventType.UPDATE_TITLE_UI , this , this.UpdateTitleUI);\n\n }\n private goldItem:Node;\n onShow(data: any): void {\n\n TitleProxy.Inst.TitleUIData = true;\n this.titleData = data;\n let list = this.titleData.ay_type;\n this.prfabitem = this.item;\n this.Panle_top.removeAllChildren();\n if (list) {\n if(list.length<=0)return;\n for (let i = 0; i < list.length; i++) {\n let itemNode = instantiate(this.prfabitem);\n if (itemNode) {\n itemNode.parent = this.Panle_top;\n let type = parseInt(list[i]);\n let Sprite_item = itemNode.getChildByName(\"Sprite_item\").getComponent(Sprite);\n let titlestyle = itemNode.getComponent(titleItem);\n if(titlestyle){\n titlestyle.titlestyle = type;\n }\n let Spriteitem = TitleProxy.Inst.GetTitleIcon(type);\n GlobalFunction.SetSpriteFrame(Sprite_item, Spriteitem);\n let Label_item = itemNode.getChildByName(\"Label_item\").getComponent(Label);\n let Button_item = itemNode.getChildByName(\"Button_item\");\n Button_item.active = type != titleStyle.jinbi;\n this.bindClickPTEquipEvent(Button_item, type);\n if (type == titleStyle.zuanshi) {\n Label_item.string = GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().diamond);\n }\n if (type == titleStyle.jinbi) {\n Label_item.string = GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().gold);\n this.goldItem = itemNode;\n setTimeout(() => {\n this.saveGoldPoint()\n }, 200);\n \n }\n if (type == titleStyle.zhaohuanjuan) {\n this.item.active = true;\n Label_item.string = GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().call);\n }\n if (type == titleStyle.star) {\n Label_item.string =GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().star);\n }\n }\n }\n }\n }\n private saveGoldPoint(){\n if(!this.goldItem){\n return;\n }\n /**本地坐标转世界坐标*/\n let wordPoint:Vec3 = this.Panle_top.getComponent(UITransform).convertToWorldSpaceAR(this.goldItem.position);\n /**世界坐标转屏幕坐标*/\n let screenPoint:Vec3 = GameEntry.Inst.mainCamera.worldToScreen(wordPoint);\n /**世界坐标转屏幕坐标*/\n let uiWordPoint:Vec3 = GameEntry.Inst.mainCamera.screenToWorld(screenPoint);\n /**屏幕坐标转世界坐标*/\n let uiScreenPoint:Vec3 = GameEntry.Inst.container.getComponent(UITransform).convertToNodeSpaceAR(uiWordPoint)\n MapModelComp.getInstance().goldPosInUi = new Vec3(uiScreenPoint.x - 80 , uiScreenPoint.y - 30 , 0)\n }\n\n\n /**刷新整个界面 */\n UpdateTitleUI(){\n if(TitleProxy.Inst.TitleUIData){\n for (let i = 0; i < this.Panle_top.children.length; i++) {\n let itemNode = this.Panle_top.children[i];\n if (itemNode) {\n let type = itemNode.getComponent(titleItem).titlestyle;\n let Label_item = itemNode.getChildByName(\"Label_item\").getComponent(Label);\n if (type == titleStyle.zuanshi) {\n Label_item.string = GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().diamond);\n }\n if (type == titleStyle.jinbi) {\n Label_item.string = GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().gold);\n }\n if (type == titleStyle.zhaohuanjuan) {\n this.item.active = true;\n Label_item.string = GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().call);\n }\n if (type == titleStyle.star) {\n Label_item.string =GlobalFunction.ConvertNumberWithUnit(dataUser.Instance().star);\n }\n }\n }\n }\n }\n\n /** 点击+ */\n bindClickPTEquipEvent(itemnode: Node, type: number) {\n var clickEventHandler = new Component.EventHandler();\n clickEventHandler.target = this.node;\n clickEventHandler.component = this.node.name;\n clickEventHandler.handler = \"CallOnclick\";\n clickEventHandler.customEventData = type + \"\";\n itemnode.getComponent(Button).clickEvents.push(clickEventHandler);\n }\n\n CallOnclick(itemnode, pos) {\n let type = parseInt(pos);\n console.log(\"====================type=========================\"+type);\n if (type == titleStyle.zuanshi){\n ShopProxy.Inst.shopGoodType = ShopGoodType.zhuanshi;\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.money, true);\n }\n if (type == titleStyle.jinbi){\n\n ShopProxy.Inst.shopGoodType = ShopGoodType.zhuanshi;\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.money, true);\n }\n if (type == titleStyle.zhaohuanjuan){\n this.item.active = true;\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.zhaohuan, true);\n }\n if (type == titleStyle.star){\n ShopProxy.Inst.shopGoodType = ShopGoodType.xingzhuan;\n WindowManager.Instance().open(GameConst.winPath.ShopUI, ShopUiType.money, true);\n }\n\n }\n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n // TitleProxy.Inst.TitleUIData =false;\n }\n clearRes() {\n }\n}\n","import { Color, HorizontalTextAlignment, log, Mat4, misc, Rect, rect, size, UITransform, v2, Vec2, Vec3, VerticalTextAlignment } from \"cc\";\r\nimport { JSB } from \"cc/env\";\r\nimport TextMeshPro, { TmpOverflow } from \"../TextMeshPro\";\r\nimport TmpFontConfig, { TmpFontLetter } from \"./TmpFontConfig\";\r\nimport TmpUtils from \"./TmpUtils\";\r\n\r\nconst tempColor = new Color(255, 255, 255, 255);\r\nconst vec3_temp = new Vec3();\r\nconst _worldMatrix = new Mat4();\r\n\r\nconst WHITE = Color.WHITE;\r\n/** 斜体倾斜弧度值 */\r\nconst ITALIC_REDIANS = misc.degreesToRadians(15);\r\n/** 下划线字符code */\r\nconst UNDERLINE_CODE = 95;\r\n/** 省略号字符code */\r\nconst ELLIPSIS_CODE = 46;\r\nconst ELLIPSIS_CHAR = \".\";\r\nconst ELLIPSIS_NUM = 3;\r\n\r\n// share data of bmfont\r\nlet shareLabelInfo = {\r\n fontAtlas: null as TmpFontConfig,\r\n\r\n fontSize: 0,\r\n lineHeight: 0,\r\n hAlign: 0,\r\n vAlign: 0,\r\n\r\n hash: \"\",\r\n margin: 0,\r\n};\r\n\r\nlet _comp: TextMeshPro = null;\r\nlet _uiTrans: UITransform | null = null;\r\nlet _tmpUvRect = rect();\r\nlet _tmpPosRect = rect();\r\nlet _horizontalKernings = [];\r\nlet _linesWidth = [];\r\nlet _linesOffsetX = [];\r\n\r\nlet _fntConfig: TmpFontConfig = null;\r\nlet _numberOfLines = 0;\r\nlet _textDesiredHeight = 0;\r\nlet _letterOffsetY = 0;\r\nlet _tailoredTopY = 0;\r\nlet _tailoredBottomY = 0;\r\nlet _bmfontScale = 1.0;\r\n\r\nlet _lineBreakWithoutSpaces = false;\r\nlet _lineSpacing = 0;\r\nlet _contentSize = size(0, 0);\r\nlet _string = \"\";\r\nlet _fontSize = 0;\r\nlet _originFontSize = 0;\r\nlet _hAlign = 0;\r\nlet _vAlign = 0;\r\nlet _spacingX = 0;\r\nlet _lineHeight = 0;\r\nlet _overflow: TmpOverflow = 0;\r\nlet _isWrapText = false;\r\nlet _labelWidth = 0;\r\nlet _labelHeight = 0;\r\nlet _maxLineWidth = 0;\r\nlet QUAD_INDICES;\r\n\r\n/** 斜体计算向量 */\r\nlet _italicVec = v2();\r\n/** 画下划线、删除线所需的数据 */\r\nlet _extraLinesData: { [lineIndex: number]: { lineIndex: number, first: any, last: any } } = {};\r\nlet _extraLineDef: TmpFontLetter = null;\r\n/** 省略号所需的数据 */\r\nlet _ellipsisDef: TmpFontLetter = null;\r\nlet _ellipsisWidth: number = 0;\r\n\r\n/**\r\n * 字符渲染数据\r\n */\r\nexport class TmpLetterInfo {\r\n /** 标记字符是否需要渲染 */\r\n public valid = true;\r\n public char = \"\";\r\n public x = 0;\r\n public y = 0;\r\n public line = 0;\r\n public hash = \"\";\r\n /** 标记处于需要渲染的字符中的第几位 */\r\n public quadsIndex = 0;\r\n /** 主动设置字符是否可见 */\r\n public visible = true;\r\n}\r\n\r\n/**\r\n * TextMeshPro顶点数据管理\r\n */\r\nexport default class TmpAssembler {\r\n /** 每个顶点的数据长度 */\r\n protected static floatsPerVert: number = 14;\r\n protected static verticesCount: number = 4;\r\n protected static indicesCount: number = 6;\r\n protected static uvOffset: number = 3;\r\n protected static colorOffset: number = 5;\r\n protected static colorExtraOffset: number = 9;\r\n protected static textureIdxOffset: number = 13;\r\n\r\n static createData(comp: TextMeshPro) {\r\n return comp.requestRenderData();\r\n }\r\n\r\n static fillBuffers(comp: TextMeshPro, renderer: any) {\r\n const node = comp.node;\r\n tempColor.set(comp.color);\r\n tempColor.a = node._uiProps.opacity * 255;\r\n // Fill All\r\n const chunk = comp.renderData.chunk;\r\n const dataList = comp.renderData.data;\r\n const vData = chunk.vb;\r\n const vertexCount = comp.renderData.vertexCount;\r\n\r\n node.getWorldMatrix(_worldMatrix);\r\n\r\n let vertexOffset = 0;\r\n for (let i = 0; i < vertexCount; i++) {\r\n const vert = dataList[i];\r\n Vec3.set(vec3_temp, vert.x, vert.y, 0);\r\n Vec3.transformMat4(vec3_temp, vec3_temp, _worldMatrix);\r\n vData[vertexOffset++] = vec3_temp.x;\r\n vData[vertexOffset++] = vec3_temp.y;\r\n vData[vertexOffset++] = vec3_temp.z;\r\n Color.toArray(vData, tempColor, vertexOffset + 2);\r\n Color.toArray(vData, vert[\"colorExtra\"], vertexOffset + 6);\r\n vertexOffset += 11;\r\n }\r\n\r\n // fill index data\r\n const bid = chunk.bufferId;\r\n const vid = chunk.vertexOffset;\r\n const meshBuffer = chunk.meshBuffer;\r\n const ib = chunk.meshBuffer.iData;\r\n let indexOffset = meshBuffer.indexOffset;\r\n for (let i = 0, count = vertexCount / 4; i < count; i++) {\r\n const start = vid + i * 4;\r\n ib[indexOffset++] = start;\r\n ib[indexOffset++] = start + 1;\r\n ib[indexOffset++] = start + 2;\r\n ib[indexOffset++] = start + 1;\r\n ib[indexOffset++] = start + 3;\r\n ib[indexOffset++] = start + 2;\r\n }\r\n meshBuffer.indexOffset += comp.renderData.indexCount;\r\n meshBuffer.setDirty();\r\n }\r\n\r\n /**\r\n * 执行一次渲染数据更新\r\n */\r\n public static updateRenderData(comp: TextMeshPro): void {\r\n if (!comp.renderData) { return; }\r\n if (_comp === comp) { return; }\r\n if (!comp.fontConfig) { return; }\r\n\r\n if (comp.renderData.vertDirty) {\r\n _comp = comp;\r\n _uiTrans = _comp.node._uiProps.uiTransformComp!;\r\n\r\n comp.lettersInfo.length = 0;\r\n this._updateProperties(comp);\r\n this._updateContent();\r\n\r\n this.updateUVs(comp);\r\n this.updateColor(comp);\r\n this.updateTextureIdx(comp);\r\n\r\n _comp[\"_actualFontSize\"] = _fontSize;\r\n _uiTrans.setContentSize(_contentSize);\r\n\r\n _comp.renderData!.vertDirty = false;\r\n _comp.markForUpdateRenderData(false);\r\n\r\n _comp = null;\r\n this._resetProperties();\r\n }\r\n if (comp.textures.length > 0) {\r\n const renderData = comp.renderData;\r\n renderData.textureDirty = false;\r\n renderData.updateRenderData(comp, comp.textures[0]);\r\n }\r\n }\r\n\r\n static updateColor(comp: TextMeshPro) {\r\n if (JSB) {\r\n const renderData = comp.renderData!;\r\n const vertexCount = renderData.vertexCount;\r\n if (vertexCount === 0) return;\r\n const vData = renderData.chunk.vb;\r\n const stride = renderData.floatStride;\r\n let colorOffset = this.colorOffset;\r\n const color = comp.color;\r\n const colorR = color.r / 255;\r\n const colorG = color.g / 255;\r\n const colorB = color.b / 255;\r\n const colorA = color.a / 255;\r\n for (let i = 0; i < vertexCount; i++) {\r\n vData[colorOffset] = colorR;\r\n vData[colorOffset + 1] = colorG;\r\n vData[colorOffset + 2] = colorB;\r\n vData[colorOffset + 3] = colorA;\r\n colorOffset += stride;\r\n }\r\n }\r\n }\r\n\r\n static updateUVs(comp: TextMeshPro) {\r\n const renderData = comp.renderData!;\r\n const vData = renderData.chunk.vb;\r\n const vertexCount = renderData.vertexCount;\r\n const dataList = renderData.data;\r\n let vertexOffset = this.uvOffset;\r\n for (let i = 0; i < vertexCount; i++) {\r\n const vert = dataList[i];\r\n vData[vertexOffset] = vert.u;\r\n vData[vertexOffset + 1] = vert.v;\r\n vertexOffset += this.floatsPerVert;\r\n }\r\n }\r\n\r\n static updateTextureIdx(comp: TextMeshPro) {\r\n const renderData = comp.renderData!;\r\n const vData = renderData.chunk.vb;\r\n const vertexCount = renderData.vertexCount;\r\n const dataList = renderData.data;\r\n let vertexOffset = this.textureIdxOffset;\r\n for (let i = 0; i < vertexCount; i++) {\r\n const vert = dataList[i];\r\n vData[vertexOffset] = vert[\"textureIdx\"];\r\n vertexOffset += this.floatsPerVert;\r\n }\r\n }\r\n\r\n /**\r\n * 更新渲染所需的前置数据\r\n */\r\n private static _updateProperties(comp: TextMeshPro): void {\r\n _fntConfig = comp.fontConfig;\r\n _string = comp.string.toString();\r\n _fontSize = comp.fontSize;\r\n _originFontSize = _fntConfig ? _fntConfig.json.size : comp.fontSize;\r\n _bmfontScale = _fontSize / _originFontSize;\r\n _hAlign = comp.horizontalAlign;\r\n _vAlign = comp.verticalAlign;\r\n _spacingX = comp.spacingX;\r\n _overflow = comp.overflow;\r\n _lineHeight = comp.lineHeight;\r\n\r\n const contentSize = _uiTrans!.contentSize;\r\n _contentSize.width = contentSize.width;\r\n _contentSize.height = contentSize.height;\r\n\r\n shareLabelInfo.fontAtlas = comp.fontConfig;\r\n shareLabelInfo.lineHeight = _lineHeight;\r\n shareLabelInfo.fontSize = _fontSize;\r\n shareLabelInfo.hash = \"\";\r\n shareLabelInfo.margin = 0;\r\n\r\n // should wrap text\r\n if (_overflow === TmpOverflow.NONE) {\r\n _isWrapText = false;\r\n _contentSize.width += shareLabelInfo.margin * 2;\r\n _contentSize.height += shareLabelInfo.margin * 2;\r\n } else if (_overflow === TmpOverflow.RESIZE_HEIGHT) {\r\n _isWrapText = true;\r\n _contentSize.height += shareLabelInfo.margin * 2;\r\n } else if (_overflow === TmpOverflow.SHRINK) {\r\n _isWrapText = false;\r\n } else {\r\n _isWrapText = comp.enableWrapText;\r\n }\r\n\r\n this._setupBMFontOverflowMetrics();\r\n\r\n // 斜体计算\r\n if (comp.enableItalic) {\r\n _italicVec.x = 0;\r\n _italicVec.y = _contentSize.height / 2;\r\n _italicVec = _italicVec.rotate(ITALIC_REDIANS);\r\n _contentSize.width += Math.abs(_italicVec.x) * 2;\r\n _contentSize.height -= Math.abs(_contentSize.height / 2 - _italicVec.y) * 2;\r\n }\r\n // 下划线、删除线\r\n if (comp.enableUnderline || comp.enableStrikethrough) {\r\n _extraLineDef = shareLabelInfo.fontAtlas.getLetter(UNDERLINE_CODE + shareLabelInfo.hash);\r\n if (!_extraLineDef) {\r\n log(`Can't find letter definition in textures. letter: _`);\r\n }\r\n }\r\n // 省略号\r\n if (comp.overflow === TmpOverflow.ELLIPSIS) {\r\n _ellipsisDef = shareLabelInfo.fontAtlas.getLetter(ELLIPSIS_CODE + shareLabelInfo.hash);\r\n if (_ellipsisDef) {\r\n _ellipsisWidth = (_ellipsisDef.xAdvance * _bmfontScale + _spacingX) * ELLIPSIS_NUM;\r\n } else {\r\n _ellipsisWidth = 0;\r\n log(`Can't find letter definition in textures. letter: ${ELLIPSIS_CHAR}`);\r\n }\r\n }\r\n }\r\n\r\n private static _resetProperties(): void {\r\n _fntConfig = null;\r\n shareLabelInfo.hash = \"\";\r\n shareLabelInfo.margin = 0;\r\n }\r\n\r\n private static _updateContent(): void {\r\n this._computeHorizontalKerningForText();\r\n this._alignText();\r\n }\r\n\r\n private static _computeHorizontalKerningForText(): void {\r\n let string = _string;\r\n let stringLen = string.length;\r\n\r\n let horizontalKernings = _horizontalKernings;\r\n let kerningDict;\r\n // _fntConfig && (kerningDict = _fntConfig.kerningDict);\r\n // if (kerningDict && !cc.js.isEmptyObject(kerningDict)) {\r\n // let prev = -1;\r\n // for (let i = 0; i < stringLen; ++i) {\r\n // let key = string.charCodeAt(i);\r\n // let kerningAmount = kerningDict[(prev << 16) | (key & 0xffff)] || 0;\r\n // if (i < stringLen - 1) {\r\n // horizontalKernings[i] = kerningAmount;\r\n // } else {\r\n // horizontalKernings[i] = 0;\r\n // }\r\n // prev = key;\r\n // }\r\n // } else {\r\n horizontalKernings.length = 0;\r\n // }\r\n }\r\n\r\n private static _alignText(): void {\r\n _textDesiredHeight = 0;\r\n _linesWidth.length = 0;\r\n _extraLinesData = {};\r\n\r\n if (!_lineBreakWithoutSpaces) {\r\n this._multilineTextWrapByWord();\r\n } else {\r\n this._multilineTextWrapByChar();\r\n }\r\n\r\n // shrink\r\n if (_overflow === TmpOverflow.SHRINK && _fontSize > 0) {\r\n let scaleHeight = _bmfontScale;\r\n let scaleWidth = _bmfontScale;\r\n let needReset = false;\r\n if (_textDesiredHeight > _contentSize.height) {\r\n scaleHeight = (_contentSize.height / _textDesiredHeight) * _bmfontScale;\r\n needReset = true;\r\n }\r\n\r\n let maxWidth = 0;\r\n _linesWidth.forEach((v) => {\r\n if (v > maxWidth) {\r\n maxWidth = v;\r\n }\r\n });\r\n if (maxWidth > _contentSize.width) {\r\n scaleWidth = (_contentSize.width / maxWidth) * _bmfontScale;\r\n needReset = true;\r\n }\r\n _bmfontScale = Math.min(scaleHeight, scaleWidth);\r\n\r\n if (needReset) {\r\n _fontSize = _bmfontScale * _originFontSize;\r\n _textDesiredHeight = 0;\r\n _linesWidth.length = 0;\r\n _extraLinesData = {};\r\n if (!_lineBreakWithoutSpaces) {\r\n this._multilineTextWrapByWord();\r\n } else {\r\n this._multilineTextWrapByChar();\r\n }\r\n }\r\n }\r\n\r\n this._computeAlignmentOffset();\r\n\r\n // 顶点数据填充\r\n this._updateQuads();\r\n }\r\n\r\n private static _multilineTextWrapByWord(): boolean {\r\n return this._multilineTextWrap(this._getFirstWordLen);\r\n }\r\n\r\n private static _multilineTextWrapByChar(): boolean {\r\n return this._multilineTextWrap(this._getFirstCharLen);\r\n }\r\n\r\n private static _multilineTextWrap(nextTokenFunc: Function): boolean {\r\n // 省略号处理\r\n let ellipsisMaxLines = 0;\r\n let useEllipsis = false;\r\n if (_overflow === TmpOverflow.ELLIPSIS && _ellipsisDef) {\r\n ellipsisMaxLines = Math.max(1, Math.floor(_contentSize.height / _lineHeight));\r\n }\r\n\r\n let textLen = _string.length;\r\n\r\n let lineIndex = 0;\r\n let nextTokenX = 0;\r\n let nextTokenY = 0;\r\n let longestLine = 0;\r\n let letterRight = 0;\r\n\r\n let highestY = 0;\r\n let lowestY = 0;\r\n let letterDef: TmpFontLetter = null;\r\n let letterPosition = v2(0, 0);\r\n\r\n for (let index = 0; index < textLen;) {\r\n let character = _string.charAt(index);\r\n if (character === \"\\n\") {\r\n // 省略号处理\r\n if (_overflow === TmpOverflow.ELLIPSIS && _ellipsisDef && lineIndex + 1 >= ellipsisMaxLines) {\r\n this._recordEllipsis(nextTokenY, letterPosition, lineIndex);\r\n useEllipsis = true;\r\n // 更新_linesWidth\r\n let ellipsisInfo = _comp.lettersInfo[_comp.lettersInfo.length - 1];\r\n // letterRight = ellipsisInfo.x + (_ellipsisDef.w) * _bmfontScale - shareLabelInfo.margin;\r\n letterRight = ellipsisInfo.x + (_ellipsisDef.xAdvance - _ellipsisDef.offsetX) * _bmfontScale + _spacingX - shareLabelInfo.margin * 2;\r\n break;\r\n }\r\n\r\n _linesWidth.push(letterRight);\r\n letterRight = 0;\r\n lineIndex++;\r\n nextTokenX = 0;\r\n nextTokenY -= _lineHeight * this._getFontScale() + _lineSpacing;\r\n this._recordPlaceholderInfo(index, character);\r\n index++;\r\n continue;\r\n }\r\n\r\n let tokenLen = nextTokenFunc(_string, index, textLen);\r\n let tokenHighestY = highestY;\r\n let tokenLowestY = lowestY;\r\n let tokenRight = letterRight;\r\n let nextLetterX = nextTokenX;\r\n let newLine = false;\r\n\r\n for (let tmp = 0; tmp < tokenLen; ++tmp) {\r\n let letterIndex = index + tmp;\r\n character = _string.charAt(letterIndex);\r\n if (character === \"\\r\") {\r\n this._recordPlaceholderInfo(letterIndex, character);\r\n continue;\r\n }\r\n letterDef = shareLabelInfo.fontAtlas.getLetterDefinitionForChar(character);\r\n if (!letterDef) {\r\n this._recordPlaceholderInfo(letterIndex, character);\r\n log(`Can't find letter definition in textures. letter: ${character}`);\r\n continue;\r\n }\r\n\r\n let letterX = nextLetterX + letterDef.offsetX * _bmfontScale - shareLabelInfo.margin;\r\n\r\n // 斜边处理\r\n if ((_comp as TextMeshPro).enableItalic) {\r\n _italicVec.x = 0;\r\n _italicVec.y = letterDef.h * _bmfontScale / 2;\r\n _italicVec = _italicVec.rotate(ITALIC_REDIANS);\r\n letterX += Math.abs(_italicVec.x);\r\n }\r\n\r\n // 省略号处理\r\n if (_overflow === TmpOverflow.ELLIPSIS && _ellipsisDef) {\r\n if (letterX + (letterDef.xAdvance - letterDef.offsetX) * _bmfontScale > _maxLineWidth) {\r\n if (!_isWrapText || lineIndex + 1 >= ellipsisMaxLines) {\r\n this._recordEllipsis(nextTokenY, letterPosition, lineIndex);\r\n useEllipsis = true;\r\n // 更新_linesWidth\r\n let ellipsisInfo = _comp.lettersInfo[_comp.lettersInfo.length - 1];\r\n // letterRight = ellipsisInfo.x + (_ellipsisDef.w) * _bmfontScale - shareLabelInfo.margin;\r\n letterRight = ellipsisInfo.x + (_ellipsisDef.xAdvance - _ellipsisDef.offsetX) * _bmfontScale + _spacingX - shareLabelInfo.margin * 2;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (_isWrapText\r\n && _maxLineWidth > 0\r\n && nextTokenX > 0\r\n && letterX + (letterDef.xAdvance - letterDef.offsetX) * _bmfontScale > _maxLineWidth\r\n && !TmpUtils.isUnicodeSpace(character)) {\r\n _linesWidth.push(letterRight);\r\n letterRight = 0;\r\n lineIndex++;\r\n nextTokenX = 0;\r\n nextTokenY -= (_lineHeight * this._getFontScale() + _lineSpacing);\r\n newLine = true;\r\n break;\r\n } else {\r\n letterPosition.x = letterX;\r\n }\r\n\r\n letterPosition.y = nextTokenY - letterDef.offsetY * _bmfontScale + shareLabelInfo.margin;\r\n this._recordLetterInfo(letterPosition, character, letterIndex, lineIndex);\r\n\r\n if (letterIndex + 1 < _horizontalKernings.length && letterIndex < textLen - 1) {\r\n nextLetterX += _horizontalKernings[letterIndex + 1];\r\n }\r\n\r\n nextLetterX += letterDef.xAdvance * _bmfontScale + _spacingX - shareLabelInfo.margin * 2;\r\n\r\n tokenRight = nextLetterX; //letterPosition.x + letterDef.w * _bmfontScale - shareLabelInfo.margin;\r\n // 斜边处理\r\n if ((_comp as TextMeshPro).enableItalic) {\r\n _italicVec.x = 0;\r\n _italicVec.y = letterDef.h * _bmfontScale / 2;\r\n _italicVec = _italicVec.rotate(ITALIC_REDIANS);\r\n tokenRight += Math.abs(_italicVec.x);\r\n }\r\n\r\n if (tokenHighestY < letterPosition.y) {\r\n tokenHighestY = letterPosition.y;\r\n }\r\n\r\n if (tokenLowestY > letterPosition.y - letterDef.h * _bmfontScale) {\r\n tokenLowestY = letterPosition.y - letterDef.h * _bmfontScale;\r\n }\r\n\r\n } //end of for loop\r\n\r\n if (useEllipsis) { break; }\r\n\r\n if (newLine) { continue; }\r\n\r\n nextTokenX = nextLetterX;\r\n letterRight = tokenRight;\r\n\r\n if (highestY < tokenHighestY) {\r\n highestY = tokenHighestY;\r\n }\r\n if (lowestY > tokenLowestY) {\r\n lowestY = tokenLowestY;\r\n }\r\n if (longestLine < letterRight) {\r\n longestLine = letterRight;\r\n }\r\n\r\n index += tokenLen;\r\n } //end of for loop\r\n\r\n _linesWidth.push(letterRight);\r\n\r\n _numberOfLines = lineIndex + 1;\r\n _textDesiredHeight = _numberOfLines * _lineHeight * this._getFontScale();\r\n if (_numberOfLines > 1) {\r\n _textDesiredHeight += (_numberOfLines - 1) * _lineSpacing;\r\n }\r\n\r\n _contentSize.width = _labelWidth;\r\n _contentSize.height = _labelHeight;\r\n if (_labelWidth <= 0) {\r\n _contentSize.width = parseFloat(longestLine.toFixed(2)) + shareLabelInfo.margin * 2;\r\n }\r\n if (_labelHeight <= 0) {\r\n _contentSize.height = parseFloat(_textDesiredHeight.toFixed(2)) + shareLabelInfo.margin * 2;\r\n }\r\n\r\n _tailoredTopY = _contentSize.height;\r\n _tailoredBottomY = 0;\r\n\r\n if (_overflow !== TmpOverflow.CLAMP) {\r\n if (highestY > 0) {\r\n _tailoredTopY = _contentSize.height + highestY;\r\n }\r\n\r\n if (lowestY < -_textDesiredHeight) {\r\n _tailoredBottomY = _textDesiredHeight + lowestY;\r\n }\r\n }\r\n\r\n // 记录letterRight与nextTokenX的差值,供富文本排版使用\r\n _comp[\"_richTextDeltaX\"] = nextTokenX - letterRight;\r\n\r\n return true;\r\n }\r\n\r\n private static _getFirstCharLen(): number {\r\n return 1;\r\n }\r\n\r\n private static _getFontScale(): number {\r\n return _overflow === TmpOverflow.SHRINK ? _bmfontScale : 1;\r\n }\r\n\r\n private static _getFirstWordLen(text: string, startIndex: number, textLen: number): number {\r\n let character = text.charAt(startIndex);\r\n if (TmpUtils.isUnicodeCJK(character)\r\n || character === \"\\n\"\r\n || TmpUtils.isUnicodeSpace(character)) {\r\n return 1;\r\n }\r\n\r\n let len = 1;\r\n let letterDef = shareLabelInfo.fontAtlas.getLetterDefinitionForChar(character);\r\n if (!letterDef) {\r\n return len;\r\n }\r\n let nextLetterX = letterDef.xAdvance * _bmfontScale + _spacingX;\r\n let letterX;\r\n for (let index = startIndex + 1; index < textLen; ++index) {\r\n character = text.charAt(index);\r\n\r\n letterDef = shareLabelInfo.fontAtlas.getLetterDefinitionForChar(character);\r\n if (!letterDef) {\r\n break;\r\n }\r\n letterX = nextLetterX + letterDef.offsetX * _bmfontScale;\r\n\r\n if (letterX + (letterDef.xAdvance - letterDef.offsetX) * _bmfontScale > _maxLineWidth\r\n && !TmpUtils.isUnicodeSpace(character)\r\n && _maxLineWidth > 0) {\r\n return len;\r\n }\r\n nextLetterX += letterDef.xAdvance * _bmfontScale + _spacingX;\r\n if (character === \"\\n\"\r\n || TmpUtils.isUnicodeSpace(character)\r\n || TmpUtils.isUnicodeCJK(character)) {\r\n break;\r\n }\r\n len++;\r\n }\r\n\r\n return len;\r\n }\r\n\r\n /**\r\n * 从已记录的字符中倒退,直到能放下省略号\r\n */\r\n private static _recordEllipsis(nextTokenY: number, letterPosition: Vec2, lineIndex: number): void {\r\n let nextX = 0;\r\n let lastIndex = _comp.lettersInfo.length - 1;\r\n while (lastIndex >= 0) {\r\n let lastInfo = _comp.lettersInfo[lastIndex];\r\n let lastDef = shareLabelInfo.fontAtlas.getLetterDefinitionForChar(lastInfo.char);\r\n let lastW = lastDef ? lastDef.w : 0;\r\n let lastXAdvance = lastDef ? lastDef.xAdvance : 0;\r\n let lastOffsetX = lastDef ? lastDef.offsetX : 0;\r\n let lastRightX = lastInfo.x + lastW * _bmfontScale - shareLabelInfo.margin;\r\n nextX = lastInfo.x + (lastXAdvance - lastOffsetX) * _bmfontScale + _spacingX - shareLabelInfo.margin * 2;\r\n if (_maxLineWidth >= lastRightX + _ellipsisWidth) {\r\n break;\r\n }\r\n lastIndex--;\r\n _comp.lettersInfo.pop();\r\n }\r\n if (lastIndex < 0) {\r\n nextX = 0;\r\n }\r\n // 记录省略号\r\n letterPosition.y = nextTokenY - _ellipsisDef.offsetY * _bmfontScale + shareLabelInfo.margin;\r\n for (let i = 1; i <= ELLIPSIS_NUM; i++) {\r\n letterPosition.x = nextX + _ellipsisDef.offsetX * _bmfontScale - shareLabelInfo.margin;\r\n this._recordLetterInfo(letterPosition, ELLIPSIS_CHAR, lastIndex + i, lineIndex);\r\n nextX += _ellipsisDef.xAdvance * _bmfontScale + _spacingX - shareLabelInfo.margin * 2;\r\n }\r\n }\r\n\r\n /**\r\n * 记录无需渲染的占位符\r\n */\r\n private static _recordPlaceholderInfo(letterIndex: number, char: string): void {\r\n if (letterIndex >= _comp.lettersInfo.length) {\r\n let tmpInfo = new TmpLetterInfo();\r\n _comp.lettersInfo.push(tmpInfo);\r\n }\r\n\r\n _comp.lettersInfo[letterIndex].char = char;\r\n _comp.lettersInfo[letterIndex].hash = char.charCodeAt(0) + shareLabelInfo.hash;\r\n _comp.lettersInfo[letterIndex].valid = false;\r\n }\r\n\r\n /**\r\n * 记录需要渲染的字符\r\n */\r\n private static _recordLetterInfo(letterPosition: Vec2, character: string, letterIndex: number, lineIndex: number): void {\r\n if (letterIndex >= _comp.lettersInfo.length) {\r\n let tmpInfo = new TmpLetterInfo();\r\n _comp.lettersInfo.push(tmpInfo);\r\n }\r\n let char = character.charCodeAt(0);\r\n let key = char + shareLabelInfo.hash;\r\n\r\n _comp.lettersInfo[letterIndex].line = lineIndex;\r\n _comp.lettersInfo[letterIndex].char = character;\r\n _comp.lettersInfo[letterIndex].hash = key;\r\n _comp.lettersInfo[letterIndex].valid = shareLabelInfo.fontAtlas.getLetter(key).valid;\r\n _comp.lettersInfo[letterIndex].x = letterPosition.x;\r\n _comp.lettersInfo[letterIndex].y = letterPosition.y;\r\n }\r\n\r\n private static _computeAlignmentOffset(): void {\r\n _linesOffsetX.length = 0;\r\n\r\n switch (_hAlign) {\r\n case HorizontalTextAlignment.LEFT:\r\n for (let i = 0; i < _numberOfLines; ++i) {\r\n _linesOffsetX.push(0);\r\n }\r\n break;\r\n case HorizontalTextAlignment.CENTER:\r\n for (let i = 0, l = _linesWidth.length; i < l; i++) {\r\n _linesOffsetX.push((_contentSize.width - _linesWidth[i]) / 2);\r\n }\r\n break;\r\n case HorizontalTextAlignment.RIGHT:\r\n for (let i = 0, l = _linesWidth.length; i < l; i++) {\r\n _linesOffsetX.push(_contentSize.width - _linesWidth[i]);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n // TOP\r\n _letterOffsetY = _contentSize.height;\r\n if (_vAlign !== VerticalTextAlignment.TOP) {\r\n let blank = _contentSize.height - _textDesiredHeight + _lineHeight * this._getFontScale() - _originFontSize * _bmfontScale;\r\n if (_vAlign === VerticalTextAlignment.BOTTOM) {\r\n // BOTTOM\r\n _letterOffsetY -= blank;\r\n } else {\r\n // CENTER:\r\n _letterOffsetY -= blank / 2;\r\n }\r\n }\r\n }\r\n\r\n private static _setupBMFontOverflowMetrics(): void {\r\n let newWidth = _contentSize.width;\r\n let newHeight = _contentSize.height;\r\n\r\n if (_overflow === TmpOverflow.RESIZE_HEIGHT) {\r\n newHeight = 0;\r\n }\r\n\r\n if (_overflow === TmpOverflow.NONE) {\r\n newWidth = 0;\r\n newHeight = 0;\r\n }\r\n\r\n _labelWidth = newWidth;\r\n _labelHeight = newHeight;\r\n _maxLineWidth = newWidth;\r\n }\r\n\r\n /**\r\n * 更新所有顶点数据\r\n */\r\n private static _updateQuads(): void {\r\n const renderData = _comp.renderData!;\r\n renderData.dataLength = 0;\r\n renderData.resize(0, 0);\r\n const anchorPoint = _uiTrans!.anchorPoint;\r\n const contentSize = _contentSize;\r\n const appX = anchorPoint.x * contentSize.width;\r\n const appY = anchorPoint.y * contentSize.height;\r\n\r\n let quadsIndex = 0;\r\n for (let i = 0, l = _comp.lettersInfo.length; i < l; ++i) {\r\n let letterInfo = _comp.lettersInfo[i];\r\n if (!letterInfo) break;\r\n if (!letterInfo.valid) continue;\r\n letterInfo.quadsIndex = quadsIndex;\r\n let letterDef = shareLabelInfo.fontAtlas.getLetter(letterInfo.hash);\r\n\r\n _tmpUvRect.height = letterDef.h;\r\n _tmpUvRect.width = letterDef.w;\r\n _tmpUvRect.x = letterDef.u;\r\n _tmpUvRect.y = letterDef.v;\r\n\r\n let py = letterInfo.y + _letterOffsetY;\r\n\r\n if (_labelHeight > 0) {\r\n if (_overflow === TmpOverflow.CLAMP) {\r\n if (py > _tailoredTopY) {\r\n let clipTop = py - _tailoredTopY;\r\n _tmpUvRect.y += clipTop / _bmfontScale;\r\n _tmpUvRect.height -= clipTop / _bmfontScale;\r\n py = py - clipTop;\r\n }\r\n\r\n if ((py - _tmpUvRect.height * _bmfontScale < _tailoredBottomY)) {\r\n _tmpUvRect.height = (py < _tailoredBottomY) ? 0 : (py - _tailoredBottomY) / _bmfontScale;\r\n }\r\n }\r\n }\r\n\r\n let px = letterInfo.x + _linesOffsetX[letterInfo.line];\r\n if (_labelWidth > 0) {\r\n if (_overflow === TmpOverflow.CLAMP) {\r\n if (px < 0) {\r\n _tmpUvRect.x += -px / _bmfontScale;\r\n _tmpUvRect.width -= -px / _bmfontScale;\r\n px = 0;\r\n }\r\n if (px + _tmpUvRect.width * _bmfontScale > _contentSize.width) {\r\n let clipRight = px + _tmpUvRect.width * _bmfontScale - _contentSize.width;\r\n _tmpUvRect.width -= clipRight / _bmfontScale;\r\n }\r\n }\r\n }\r\n\r\n if (_tmpUvRect.height > 0 && _tmpUvRect.width > 0) {\r\n _tmpPosRect.x = px - appX;\r\n _tmpPosRect.y = py - appY;\r\n _tmpPosRect.width = _tmpUvRect.width * _bmfontScale;\r\n _tmpPosRect.height = _tmpUvRect.height * _bmfontScale;\r\n this.appendQuad(_comp, letterDef.textureId, _tmpUvRect, _tmpPosRect);\r\n\r\n quadsIndex++;\r\n // 下划线数据记录\r\n if (_extraLineDef && ((_comp as TextMeshPro).enableUnderline || (_comp as TextMeshPro).enableStrikethrough)) {\r\n if (!TmpUtils.isUnicodeSpace(letterInfo.char)) {\r\n let lineData = _extraLinesData[letterInfo.line];\r\n if (!lineData) {\r\n _extraLinesData[letterInfo.line] = {\r\n lineIndex: letterInfo.line,\r\n first: i,\r\n last: i\r\n }\r\n } else {\r\n if (lineData.last < i) {\r\n lineData.last = i;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (_extraLineDef) {\r\n // 下划线\r\n if ((_comp as TextMeshPro).enableUnderline) {\r\n this._updateLineQuads(appX, appY, -_fontSize + (_comp as TextMeshPro).underlineOffset * _bmfontScale);\r\n }\r\n // 删除线\r\n if ((_comp as TextMeshPro).enableStrikethrough) {\r\n this._updateLineQuads(appX, appY, -_fontSize / 2 + (_comp as TextMeshPro).strikethroughOffset * _bmfontScale);\r\n }\r\n }\r\n\r\n this.updateColorExtra(_comp);\r\n\r\n const indexCount = renderData.indexCount;\r\n this.createQuadIndices(indexCount);\r\n renderData.chunk.setIndexBuffer(QUAD_INDICES);\r\n }\r\n\r\n private static createQuadIndices(indexCount) {\r\n if (indexCount % 6 !== 0) {\r\n console.error('illegal index count!');\r\n return;\r\n }\r\n const quadCount = indexCount / 6;\r\n QUAD_INDICES = null;\r\n QUAD_INDICES = new Uint16Array(indexCount);\r\n let offset = 0;\r\n for (let i = 0; i < quadCount; i++) {\r\n QUAD_INDICES[offset++] = 0 + i * 4;\r\n QUAD_INDICES[offset++] = 1 + i * 4;\r\n QUAD_INDICES[offset++] = 2 + i * 4;\r\n QUAD_INDICES[offset++] = 1 + i * 4;\r\n QUAD_INDICES[offset++] = 3 + i * 4;\r\n QUAD_INDICES[offset++] = 2 + i * 4;\r\n }\r\n }\r\n\r\n /**\r\n * 更新下划线、删除线的顶点数据\r\n */\r\n private static _updateLineQuads(appx: number, appy: number, offsetY: number): void {\r\n for (let key in _extraLinesData) {\r\n let underlineInfo = _extraLinesData[key];\r\n let lineIdx = underlineInfo.lineIndex;\r\n let first = underlineInfo.first;\r\n let last = underlineInfo.last > 0 ? underlineInfo.last : first;\r\n let firstInfo = _comp.lettersInfo[first];\r\n if (!firstInfo.valid) {\r\n continue;\r\n }\r\n let lastInfo = _comp.lettersInfo[last];\r\n let firstDef = shareLabelInfo.fontAtlas.getLetter(firstInfo.hash);\r\n let lastDef = shareLabelInfo.fontAtlas.getLetter(lastInfo.hash);\r\n\r\n let maxWidth = lastInfo.x + lastDef.w * _bmfontScale - firstInfo.x;\r\n\r\n let wLeft = maxWidth >= _extraLineDef.w * _bmfontScale ? _extraLineDef.w * _bmfontScale / 3 : maxWidth / 2;\r\n let wRight = wLeft;\r\n let wMid = maxWidth - wLeft - wRight;\r\n let leftX = firstInfo.x + _linesOffsetX[lineIdx];\r\n let rightX = leftX + wLeft + wMid;\r\n let midX = leftX + wLeft;\r\n\r\n // 左\r\n _tmpUvRect.height = _extraLineDef.h;\r\n _tmpUvRect.width = wLeft / _bmfontScale;\r\n _tmpUvRect.x = _extraLineDef.u;\r\n _tmpUvRect.y = _extraLineDef.v;\r\n\r\n let py = firstInfo.y + _letterOffsetY + firstDef.offsetY * _bmfontScale + offsetY;\r\n\r\n if (_labelHeight > 0) {\r\n if (py > _tailoredTopY) {\r\n let clipTop = py - _tailoredTopY;\r\n _tmpUvRect.y += clipTop;\r\n _tmpUvRect.height -= clipTop;\r\n py = py - clipTop;\r\n }\r\n\r\n if ((py - _extraLineDef.h * _bmfontScale < _tailoredBottomY) && _overflow === TmpOverflow.CLAMP) {\r\n _tmpUvRect.height = (py < _tailoredBottomY) ? 0 : (py - _tailoredBottomY) / _bmfontScale;\r\n }\r\n }\r\n\r\n if (_tmpUvRect.height > 0 && _tmpUvRect.width > 0) {\r\n _tmpPosRect.x = leftX - appx;\r\n _tmpPosRect.y = py - appy;\r\n _tmpPosRect.width = wLeft;\r\n _tmpPosRect.height = _tmpUvRect.height * _bmfontScale;\r\n this.appendQuad(_comp, _extraLineDef.textureId, _tmpUvRect, _tmpPosRect);\r\n }\r\n\r\n // 右\r\n _tmpUvRect.width = wRight / _bmfontScale;\r\n _tmpUvRect.x = _extraLineDef.u + _extraLineDef.w - _tmpUvRect.width;\r\n\r\n if (_tmpUvRect.height > 0 && _tmpUvRect.width > 0) {\r\n _tmpPosRect.x = rightX - appx;\r\n _tmpPosRect.y = py - appy;\r\n _tmpPosRect.width = wRight;\r\n _tmpPosRect.height = _tmpUvRect.height * _bmfontScale;\r\n this.appendQuad(_comp, _extraLineDef.textureId, _tmpUvRect, _tmpPosRect);\r\n }\r\n\r\n // 中\r\n if (wMid > 0) {\r\n _tmpUvRect.width = _extraLineDef.w - wLeft * 2 / _bmfontScale;\r\n _tmpUvRect.x = _extraLineDef.u + _tmpUvRect.width;\r\n\r\n if (_tmpUvRect.height > 0 && _tmpUvRect.width > 0) {\r\n _tmpPosRect.x = midX - appx;\r\n _tmpPosRect.y = py - appy;\r\n _tmpPosRect.width = wMid;\r\n _tmpPosRect.height = _tmpUvRect.height * _bmfontScale;\r\n this.appendQuad(_comp, _extraLineDef.textureId, _tmpUvRect, _tmpPosRect);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 添加一组顶点数据(4个顶点)\r\n * @param comp\r\n * @param textureId 渲染的字符所需纹理id\r\n * @param uvRect 顶点uv数据\r\n * @param posRect 顶点坐标数据\r\n */\r\n private static appendQuad(comp: TextMeshPro, textureId: number, uvRect: Rect, posRect: Rect): void {\r\n const renderData = comp.renderData;\r\n if (!renderData) {\r\n return;\r\n }\r\n\r\n // 此处会将renderData.chunk.vb置0\r\n const dataOffset = renderData.dataLength;\r\n renderData.dataLength += 4;\r\n renderData.resize(renderData.dataLength, renderData.dataLength / 2 * 3);\r\n const dataList = renderData.data;\r\n\r\n let texture = shareLabelInfo.fontAtlas.getTexture(textureId);\r\n let texw = texture.width,\r\n texh = texture.height,\r\n rectWidth = uvRect.width,\r\n rectHeight = uvRect.height;\r\n\r\n let l, b, r, t;\r\n // uvs\r\n l = (uvRect.x) / texw;\r\n r = (uvRect.x + rectWidth) / texw;\r\n b = (uvRect.y + rectHeight) / texh;\r\n t = (uvRect.y) / texh;\r\n dataList[dataOffset].u = l;\r\n dataList[dataOffset].v = b;\r\n dataList[dataOffset + 1].u = r;\r\n dataList[dataOffset + 1].v = b;\r\n dataList[dataOffset + 2].u = l;\r\n dataList[dataOffset + 2].v = t;\r\n dataList[dataOffset + 3].u = r;\r\n dataList[dataOffset + 3].v = t;\r\n\r\n // positions\r\n l = posRect.x;\r\n r = posRect.x + posRect.width;\r\n b = posRect.y - posRect.height;\r\n t = posRect.y;\r\n this.appendVerts(comp, dataList, dataOffset, l, r, b, t);\r\n\r\n // colorExtra\r\n for (let i = 0; i < 4; i++) {\r\n dataList[dataOffset + i][\"colorExtra\"] = WHITE.clone();\r\n }\r\n\r\n // textureId\r\n for (let i = 0; i < 4; i++) {\r\n dataList[dataOffset + i][\"textureIdx\"] = textureId;\r\n }\r\n }\r\n\r\n private static appendVerts(comp: TextMeshPro, dataList, dataOffset, l, r, b, t): void {\r\n if (comp.enableItalic) {\r\n _italicVec.x = 0;\r\n _italicVec.y = (t - b) / 2;\r\n _italicVec = _italicVec.rotate(ITALIC_REDIANS);\r\n\r\n dataList[dataOffset].x = l - Math.abs(_italicVec.x);\r\n dataList[dataOffset].y = b + Math.abs((t - b) / 2 - _italicVec.y);\r\n dataList[dataOffset + 1].x = r - Math.abs(_italicVec.x);\r\n dataList[dataOffset + 1].y = b + Math.abs((t - b) / 2 - _italicVec.y);\r\n dataList[dataOffset + 2].x = l + Math.abs(_italicVec.x);\r\n dataList[dataOffset + 2].y = t - Math.abs((t - b) / 2 - _italicVec.y);\r\n dataList[dataOffset + 3].x = r + Math.abs(_italicVec.x);\r\n dataList[dataOffset + 3].y = t - Math.abs((t - b) / 2 - _italicVec.y);\r\n } else {\r\n dataList[dataOffset].x = l;\r\n dataList[dataOffset].y = b;\r\n dataList[dataOffset + 1].x = r;\r\n dataList[dataOffset + 1].y = b;\r\n dataList[dataOffset + 2].x = l;\r\n dataList[dataOffset + 2].y = t;\r\n dataList[dataOffset + 3].x = r;\r\n dataList[dataOffset + 3].y = t;\r\n }\r\n }\r\n\r\n /**\r\n * 更新额外顶点颜色,不对下划线、删除线生效\r\n */\r\n public static updateColorExtra(comp: TextMeshPro): void {\r\n const dataList = comp.renderData.data;\r\n if (!dataList || dataList.length <= 0) { return; }\r\n\r\n if (!JSB) {\r\n for (let i = 0; i < comp.lettersInfo.length; i++) {\r\n let info = comp.lettersInfo[i];\r\n if (!info.valid || TmpUtils.isUnicodeSpace(info.char)) {\r\n continue;\r\n }\r\n let alpha = info.visible ? 1 : 0;\r\n let offset = info.quadsIndex * 4;\r\n if (dataList.length < offset + 4) {\r\n break;\r\n }\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorLB);\r\n dataList[offset][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorRB);\r\n dataList[offset + 1][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorLT);\r\n dataList[offset + 2][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorRT);\r\n dataList[offset + 3][\"colorExtra\"].set(tempColor);\r\n }\r\n } else {\r\n const renderData = comp.renderData!;\r\n const vData = comp.renderData.chunk.vb;\r\n const vertexCount = renderData.vertexCount;\r\n let quadCount = vertexCount / 4;\r\n let letterIndex = 0;\r\n for (let i = 0; i < quadCount; i++) {\r\n while (letterIndex < comp.lettersInfo.length && !comp.lettersInfo[letterIndex].valid) {\r\n letterIndex++;\r\n }\r\n if (letterIndex < comp.lettersInfo.length) {\r\n let info = comp.lettersInfo[letterIndex];\r\n let alpha = info.visible ? 1 : 0;\r\n let offset = i * 4;\r\n if (dataList.length < offset + 4) {\r\n break;\r\n }\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorLB);\r\n dataList[offset][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorRB);\r\n dataList[offset + 1][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorLT);\r\n dataList[offset + 2][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorRT);\r\n dataList[offset + 3][\"colorExtra\"].set(tempColor);\r\n\r\n let colorExtraOffset = offset * this.floatsPerVert + this.colorExtraOffset;\r\n for (let i = 0; i < 4; i++) {\r\n const colorR = dataList[offset + i][\"colorExtra\"].r / 255;\r\n const colorG = dataList[offset + i][\"colorExtra\"].g / 255;\r\n const colorB = dataList[offset + i][\"colorExtra\"].b / 255;\r\n const colorA = dataList[offset + i][\"colorExtra\"].a / 255;\r\n vData[colorExtraOffset] = colorR;\r\n vData[colorExtraOffset + 1] = colorG;\r\n vData[colorExtraOffset + 2] = colorB;\r\n vData[colorExtraOffset + 3] = colorA;\r\n colorExtraOffset += this.floatsPerVert;\r\n }\r\n } else {\r\n let colorExtraOffset = i * 4 * this.floatsPerVert + this.colorExtraOffset;\r\n for (let i = 0; i < 4; i++) {\r\n vData[colorExtraOffset] = 1;\r\n vData[colorExtraOffset + 1] = 1;\r\n vData[colorExtraOffset + 2] = 1;\r\n vData[colorExtraOffset + 3] = 1;\r\n colorExtraOffset += this.floatsPerVert;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n //#region 顶点数据操作接口\r\n\r\n /**\r\n * 根据字符下标判断此字符是否可见\r\n */\r\n public static isVisble(comp: TextMeshPro, index: number): boolean {\r\n let info = comp.lettersInfo[index];\r\n return info && info.valid && info.visible && !TmpUtils.isUnicodeSpace(info.char);\r\n }\r\n\r\n /**\r\n * 根据字符下标设置字符是否可见\r\n */\r\n public static setVisible(comp: TextMeshPro, index: number, visible: boolean): void {\r\n let info = comp.lettersInfo[index];\r\n if (!info || this.isVisble(comp, index) === visible || info.visible === visible || TmpUtils.isUnicodeSpace(info.char)) {\r\n return;\r\n }\r\n\r\n let offset = info.quadsIndex * 4;\r\n const dataList = comp.renderData.data;\r\n if (!dataList || dataList.length < offset + 4) { return; }\r\n\r\n info.visible = visible;\r\n let alpha = (visible ? 1 : 0);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorLB);\r\n dataList[offset][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorRB);\r\n dataList[offset + 1][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorLT);\r\n dataList[offset + 2][\"colorExtra\"].set(tempColor);\r\n\r\n tempColor.set(WHITE);\r\n tempColor.a *= alpha;\r\n comp.colorGradient && tempColor.multiply(comp.colorRT);\r\n dataList[offset + 3][\"colorExtra\"].set(tempColor);\r\n\r\n if (JSB) {\r\n const vData = comp.renderData.chunk.vb;\r\n let colorExtraOffset = offset * this.floatsPerVert + this.colorExtraOffset;\r\n for (let i = 0; i < 4; i++) {\r\n const colorR = dataList[offset + i][\"colorExtra\"].r / 255;\r\n const colorG = dataList[offset + i][\"colorExtra\"].g / 255;\r\n const colorB = dataList[offset + i][\"colorExtra\"].b / 255;\r\n const colorA = dataList[offset + i][\"colorExtra\"].a / 255;\r\n vData[colorExtraOffset] = colorR;\r\n vData[colorExtraOffset + 1] = colorG;\r\n vData[colorExtraOffset + 2] = colorB;\r\n vData[colorExtraOffset + 3] = colorA;\r\n colorExtraOffset += this.floatsPerVert;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 根据字符下标获取颜色顶点数据,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public static getColorExtraVertices(comp: TextMeshPro, index: number): [Color, Color, Color, Color] | null {\r\n let info = comp.lettersInfo[index];\r\n if (!info || !info.valid) {\r\n return null;\r\n }\r\n\r\n let offset = info.quadsIndex * 4;\r\n const dataList = comp.renderData.data;\r\n if (!dataList || dataList.length < offset + 4) { return; }\r\n\r\n let result: [Color, Color, Color, Color] = [] as any;\r\n for (let i = 0; i < 4; i++) {\r\n let rColor: Color = dataList[offset + i][\"colorExtra\"].clone();\r\n result.push(rColor);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * 根据字符下标设置颜色顶点数据,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public static setColorExtraVertices(comp: TextMeshPro, index: number, data: [Color, Color, Color, Color]): void {\r\n let info = comp.lettersInfo[index];\r\n if (!info || !info.valid || data.length !== 4 || TmpUtils.isUnicodeSpace(info.char)) {\r\n return;\r\n }\r\n\r\n let offset = info.quadsIndex * 4;\r\n const dataList = comp.renderData.data;\r\n if (!dataList || dataList.length < offset + 4) { return; }\r\n\r\n for (let i = 0; i < 4; i++) {\r\n dataList[offset + i][\"colorExtra\"].set(data[i]);\r\n }\r\n\r\n if (JSB) {\r\n const vData = comp.renderData.chunk.vb;\r\n let colorExtraOffset = offset * this.floatsPerVert + this.colorExtraOffset;\r\n for (let i = 0; i < 4; i++) {\r\n const colorR = dataList[offset + i][\"colorExtra\"].r / 255;\r\n const colorG = dataList[offset + i][\"colorExtra\"].g / 255;\r\n const colorB = dataList[offset + i][\"colorExtra\"].b / 255;\r\n const colorA = dataList[offset + i][\"colorExtra\"].a / 255;\r\n vData[colorExtraOffset] = colorR;\r\n vData[colorExtraOffset + 1] = colorG;\r\n vData[colorExtraOffset + 2] = colorB;\r\n vData[colorExtraOffset + 3] = colorA;\r\n colorExtraOffset += this.floatsPerVert;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 根据字符下标获取坐标顶点数据,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public static getPosVertices(comp: TextMeshPro, index: number): [Vec3, Vec3, Vec3, Vec3] | null {\r\n let info = comp.lettersInfo[index];\r\n if (!info || !info.valid) {\r\n return null;\r\n }\r\n\r\n let offset = info.quadsIndex * 4;\r\n const dataList = comp.renderData.data;\r\n if (!dataList || dataList.length < offset + 4) { return; }\r\n\r\n let result: [Vec3, Vec3, Vec3, Vec3] = [] as any;\r\n for (let i = 0; i < 4; i++) {\r\n result.push(new Vec3(dataList[offset + i].x, dataList[offset + i].y, dataList[offset + i].z));\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * 根据字符下标设置坐标顶点数据,顺序为[左下, 右下, 左上, 右上]\r\n */\r\n public static setPosVertices(comp: TextMeshPro, index: number, data: [Vec3, Vec3, Vec3, Vec3]): void {\r\n let info = comp.lettersInfo[index];\r\n if (!info || !info.valid || data.length !== 4 || TmpUtils.isUnicodeSpace(info.char)) {\r\n return;\r\n }\r\n\r\n let offset = info.quadsIndex * 4;\r\n const dataList = comp.renderData.data;\r\n if (!dataList || dataList.length < offset + 4) { return; }\r\n\r\n for (let i = 0; i < 4; i++) {\r\n dataList[offset + i].x = data[i].x;\r\n dataList[offset + i].y = data[i].y;\r\n dataList[offset + i].z = data[i].z;\r\n }\r\n\r\n if (JSB) {\r\n comp.renderData.renderDrawInfo.nativeObj[\"vertDirty\"] = true;\r\n comp.renderData.renderDrawInfo.fillRender2dBuffer(comp.renderData.data);\r\n }\r\n }\r\n\r\n //#endregion\r\n}\r\n","import { js, Texture2D } from \"cc\";\r\n\r\n/**\r\n * 字体配置JSON\r\n */\r\nexport interface TmpFontJson {\r\n size: number;\r\n bold: number;\r\n italic: number;\r\n padding: [number, number, number, number];\r\n spacing: [number, number];\r\n outline: number;\r\n lineHeight: number;\r\n base: number;\r\n scaleW: number;\r\n scaleH: number;\r\n pages: number;\r\n packed: number;\r\n alphaChnl: number;\r\n redChnl: number;\r\n greenChnl: number;\r\n blueChnl: number;\r\n pageData: Array<{ id: number, file: string }>;\r\n charData: Array;\r\n}\r\n\r\n/**\r\n * BitmapFont字符数据\r\n */\r\nexport class TmpFontLetter {\r\n public u: number = 0;\r\n public v: number = 0;\r\n public w: number = 0;\r\n public h: number = 0;\r\n public offsetX: number = 0;\r\n public offsetY: number = 0;\r\n public textureId: number = 0;\r\n public valid: boolean = false;\r\n public xAdvance: number = 0;\r\n}\r\n\r\n/**\r\n * BitmapFont配置管理类\r\n */\r\nexport default class TmpFontConfig {\r\n private _letterDefinitions: { [id: number]: TmpFontLetter } = {};\r\n private _textures: { [id: number]: Texture2D } = {};\r\n private _json: TmpFontJson = null;\r\n public get json(): TmpFontJson { return this._json; }\r\n\r\n public constructor(json: any, textures: Texture2D[]) {\r\n this._json = json;\r\n textures.forEach((v, id) => {\r\n this._textures[id] = v;\r\n });\r\n\r\n json.charData.forEach((v) => {\r\n let letter = new TmpFontLetter();\r\n\r\n letter.offsetX = v.xoffset;\r\n letter.offsetY = v.yoffset;\r\n letter.w = v.width;\r\n letter.h = v.height;\r\n letter.u = v.x;\r\n letter.v = v.y;\r\n letter.textureId = v.page;\r\n letter.valid = true;\r\n letter.xAdvance = v.xadvance;\r\n\r\n this.addLetterDefinitions(v.id, letter);\r\n });\r\n }\r\n\r\n public addTexture(id: number, texture: Texture2D): void {\r\n this._textures[id] = texture;\r\n }\r\n\r\n public addLetterDefinitions(letter: number, letterDefinition: TmpFontLetter): void {\r\n this._letterDefinitions[letter] = letterDefinition;\r\n }\r\n\r\n public cloneLetterDefinition(): { [id: number]: TmpFontLetter } {\r\n let copyLetterDefinitions = {};\r\n for (let key in this._letterDefinitions) {\r\n let value = new TmpFontLetter();\r\n js.mixin(value, this._letterDefinitions[key]);\r\n copyLetterDefinitions[key] = value;\r\n }\r\n return copyLetterDefinitions;\r\n }\r\n\r\n public getTexture(id: number): Texture2D {\r\n return this._textures[id];\r\n }\r\n\r\n public getLetter(key: string): TmpFontLetter {\r\n return this._letterDefinitions[key];\r\n }\r\n\r\n public getLetterDefinitionForChar(char: string): TmpFontLetter {\r\n let key = char.charCodeAt(0);\r\n let hasKey = this._letterDefinitions.hasOwnProperty(key);\r\n let letter;\r\n if (hasKey) {\r\n letter = this._letterDefinitions[key];\r\n } else {\r\n letter = null;\r\n }\r\n return letter;\r\n }\r\n\r\n public clear(): void {\r\n this._letterDefinitions = {};\r\n }\r\n}\r\n","import { assert, CCObject, Color, Component, EventTouch, HorizontalTextAlignment, isValid, js, JsonAsset, Material, Node, NodeEventType, Sprite, SpriteAtlas, SpriteFrame, Texture2D, UITransform, v2, Vec2, VerticalTextAlignment, warnID, _decorator } from \"cc\";\r\nimport { DEV, EDITOR } from \"cc/env\";\r\nimport TextMeshPro from \"./TextMeshPro\";\r\nimport { HtmlTextParser, IHtmlTextParserResultObj, IHtmlTextParserStack } from \"./utils/HtmlParser\";\r\nimport TmpUtils from \"./utils/TmpUtils\";\r\n\r\nconst { ccclass, property, disallowMultiple, executeInEditMode } = _decorator;\r\n\r\nconst RichTextChildName = \"RICHTEXT_CHILD\";\r\nconst RichTextChildImageName = \"RICHTEXT_Image_CHILD\";\r\nconst _htmlTextParser = new HtmlTextParser();\r\n\r\nconst BASELINE_RATIO = 0.26;\r\n\r\ninterface ISegment {\r\n node: Node;\r\n comp: TextMeshPro | Sprite | null;\r\n lineCount: number;\r\n styleIndex: number;\r\n imageOffset: string;\r\n clickParam: string;\r\n clickHandler: string;\r\n type: string,\r\n}\r\n\r\n/**\r\n * 富文本池\r\n */\r\nconst labelPool: any = new js.Pool((seg: ISegment) => {\r\n if (DEV) {\r\n assert(!seg.node.parent, \"Recycling node\\'s parent should be null!\");\r\n }\r\n if (!isValid(seg.node)) {\r\n return false;\r\n }\r\n return true;\r\n}, 20);\r\n\r\nconst imagePool: any = new js.Pool((seg: ISegment) => {\r\n if (DEV) {\r\n assert(!seg.node.parent, \"Recycling node\\'s parent should be null!\");\r\n }\r\n return isValid(seg.node) as boolean;\r\n}, 10);\r\n\r\nfunction createSegment(type: string): ISegment {\r\n return {\r\n node: new Node(type),\r\n comp: null,\r\n lineCount: 0,\r\n styleIndex: 0,\r\n imageOffset: \"\",\r\n clickParam: \"\",\r\n clickHandler: \"\",\r\n type,\r\n };\r\n}\r\n\r\nfunction getSegmentByPool(type: string, content: string | SpriteFrame, mat?: Material) {\r\n let seg;\r\n if (type === RichTextChildName) {\r\n seg = labelPool[\"_get\"]();\r\n } else if (type === RichTextChildImageName) {\r\n seg = imagePool[\"_get\"]();\r\n }\r\n seg = seg || createSegment(type);\r\n let node = seg.node as Node;\r\n if (!node) {\r\n node = new Node(type);\r\n }\r\n node.hideFlags |= CCObject.Flags.DontSave | CCObject.Flags.HideInHierarchy;\r\n if (type === RichTextChildImageName) {\r\n seg.comp = node.getComponent(Sprite) || node.addComponent(Sprite);\r\n seg.comp.spriteFrame = content as SpriteFrame;\r\n seg.comp.type = Sprite.Type.SLICED;\r\n seg.comp.sizeMode = Sprite.SizeMode.CUSTOM;\r\n } else { // RichTextChildName\r\n seg.comp = node.getComponent(TextMeshPro) || node.addComponent(TextMeshPro);\r\n if (mat) {\r\n seg.comp.customMaterial = mat;\r\n }\r\n seg.comp.string = content as string;\r\n seg.comp.horizontalAlign = HorizontalTextAlignment.LEFT;\r\n seg.comp.verticalAlign = VerticalTextAlignment.TOP;\r\n seg.comp.underlineHeight = 2;\r\n }\r\n node.setPosition(0, 0, 0);\r\n const trans = node._uiProps.uiTransformComp!;\r\n trans.setAnchorPoint(0.5, 0.5);\r\n\r\n seg.node = node;\r\n seg.lineCount = 0;\r\n seg.styleIndex = 0;\r\n seg.imageOffset = \"\";\r\n seg.clickParam = \"\";\r\n seg.clickHandler = \"\";\r\n return seg as ISegment | null;\r\n}\r\n\r\n/**\r\n * TextMeshPro富文本组件\r\n */\r\n@ccclass\r\n@disallowMultiple\r\n@executeInEditMode\r\nexport default class TmpRichText extends Component {\r\n\r\n @property\r\n private _string: string = \"\";\r\n @property({ multiline: true })\r\n public get string(): string { return this._string; }\r\n public set string(v: string) {\r\n if (this._string === v) { return; }\r\n this._string = v;\r\n // this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n @property(JsonAsset)\r\n private _font: JsonAsset = null;\r\n @property({ tooltip: DEV && \"字体资源\\n依赖的纹理请勿打入图集\\n在编辑器内拖拽此文件时,纹理必须和此文件处于同一目录下\", type: JsonAsset })\r\n private get font(): JsonAsset { return this._font; }\r\n private set font(v: JsonAsset) {\r\n if (this._font === v) { return; }\r\n this._font = v;\r\n if (EDITOR) {\r\n this.editorInit();\r\n } else {\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n }\r\n\r\n @property({ type: HorizontalTextAlignment })\r\n private _horizontalAlign: HorizontalTextAlignment = HorizontalTextAlignment.LEFT;\r\n @property({ type: HorizontalTextAlignment })\r\n public get horizontalAlign(): HorizontalTextAlignment { return this._horizontalAlign; }\r\n public set horizontalAlign(v: HorizontalTextAlignment) {\r\n if (this._horizontalAlign === v) { return; }\r\n this._horizontalAlign = v;\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n @property({ type: VerticalTextAlignment })\r\n private _verticalAlign: VerticalTextAlignment = VerticalTextAlignment.TOP;\r\n @property({ type: VerticalTextAlignment })\r\n public get verticalAlign(): VerticalTextAlignment { return this._verticalAlign; }\r\n public set verticalAlign(v: VerticalTextAlignment) {\r\n if (this._verticalAlign === v) { return; }\r\n this._verticalAlign = v;\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n @property\r\n private _fontSize: number = 32;\r\n @property({ range: [0, 1024] })\r\n public get fontSize(): number { return this._fontSize; }\r\n public set fontSize(v: number) {\r\n if (this._fontSize === v) { return; }\r\n this._fontSize = v;\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n @property\r\n private _maxWidth: number = 0;\r\n @property({ tooltip: DEV && \"富文本的最大宽度\" })\r\n public get maxWidth(): number { return this._maxWidth; }\r\n public set maxWidth(v: number) {\r\n if (this._maxWidth === v) { return; }\r\n this._maxWidth = v;\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n @property\r\n private _lineHeight: number = 32;\r\n @property\r\n public get lineHeight(): number { return this._lineHeight; }\r\n public set lineHeight(v: number) {\r\n if (this._lineHeight === v) { return; }\r\n this._lineHeight = v;\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n @property(SpriteAtlas)\r\n private _imageAtlas: SpriteAtlas = null;\r\n @property(SpriteAtlas)\r\n public get imageAtlas(): SpriteAtlas { return this._imageAtlas; }\r\n public set imageAtlas(v: SpriteAtlas) {\r\n if (this._imageAtlas === v) { return; }\r\n this._imageAtlas = v;\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n @property\r\n private _handleTouchEvent: boolean = true;\r\n @property\r\n public get handleTouchEvent(): boolean { return this._handleTouchEvent; }\r\n public set handleTouchEvent(v: boolean) {\r\n if (this._handleTouchEvent === v) { return; }\r\n this._handleTouchEvent = v;\r\n if (this.enabledInHierarchy) {\r\n this.handleTouchEvent ? this._addEventListeners() : this._removeEventListeners();\r\n }\r\n }\r\n\r\n @property(Material)\r\n public material: Material = null;\r\n\r\n @property({ tooltip: DEV && \"字体所依赖的纹理\", type: Texture2D, readonly: true })\r\n public textures: Texture2D[] = [];\r\n\r\n private _textArray: IHtmlTextParserResultObj[] = [];\r\n private _segments: ISegment[] = [];\r\n private _labelSegmentsCache: ISegment[] = [];\r\n private _linesWidth: number[] = [];\r\n private _lineOffsetX: number = 0;\r\n private _lineCount: number = 1;\r\n private _labelWidth: number = 0;\r\n private _labelHeight: number = 0;\r\n private _layoutDirty: boolean = true;\r\n private _labelChildrenNum = 0;\r\n\r\n // 文本父节点\r\n private _labelContent: Node = null;\r\n private get labelContent(): Node {\r\n if (!this._labelContent) {\r\n const content = \"TMP_LABEL_CONTENT\";\r\n this._labelContent = this.node.getChildByName(content) ?? new Node(content);\r\n this._labelContent.hideFlags |= CCObject.Flags.DontSave | CCObject.Flags.HideInHierarchy;\r\n this.node.insertChild(this._labelContent, this._imageContent ? 1 : 0);\r\n }\r\n return this._labelContent;\r\n }\r\n // 图片父节点\r\n private _imageContent: Node = null;\r\n private get imageContent(): Node {\r\n if (!this._imageContent) {\r\n const content = \"TMP_IMAGE_CONTENT\";\r\n this._imageContent = this.node.getChildByName(content) ?? new Node(content);\r\n this._imageContent.hideFlags |= CCObject.Flags.DontSave | CCObject.Flags.HideInHierarchy;\r\n this.node.insertChild(this._imageContent, 0);\r\n }\r\n return this._imageContent;\r\n }\r\n\r\n private editorInit(): void {\r\n if (EDITOR) {\r\n // 加载图集\r\n if (!this._font || !this._font[\"_uuid\"]) {\r\n this.textures = [];\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n return;\r\n }\r\n Editor.Message.request(\"asset-db\", \"query-url\", this._font[\"_uuid\"]).then((url: string) => {\r\n if (!url) {\r\n return;\r\n }\r\n let start = 12;\r\n let end = url.lastIndexOf(\"/\");\r\n let dir = url.slice(start, end + 1);\r\n let arr: Promise[] = [];\r\n this._font.json[\"pageData\"].forEach((v) => {\r\n let imgUrl = dir + v.file + \"/texture\";\r\n arr.push(TmpUtils.load(imgUrl));\r\n });\r\n Promise.all(arr).then((v) => {\r\n this.textures = v;\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n });\r\n });\r\n }\r\n }\r\n\r\n public resetInEditor(): void {\r\n if (EDITOR) {\r\n TmpUtils.load(TmpUtils.TMP_MAT).then((mat) => {\r\n if (mat) {\r\n this.material = mat;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onRestore(): void {\r\n if (EDITOR) {\r\n // Because undo/redo will not call onEnable/onDisable,\r\n // we need call onEnable/onDisable manually to active/disactive children nodes.\r\n if (this.enabledInHierarchy) {\r\n this.onEnable();\r\n }\r\n else {\r\n this.onDisable();\r\n }\r\n }\r\n }\r\n\r\n public onEnable(): void {\r\n if (this.handleTouchEvent) {\r\n this._addEventListeners();\r\n }\r\n this._onFontLoaded();\r\n this._activateChildren(true);\r\n }\r\n\r\n public onDisable(): void {\r\n if (this.handleTouchEvent) {\r\n this._removeEventListeners();\r\n }\r\n this._activateChildren(false);\r\n }\r\n\r\n public onLoad() {\r\n this.node.on(NodeEventType.LAYER_CHANGED, this._applyLayer, this);\r\n }\r\n\r\n public onDestroy(): void {\r\n for (const seg of this._segments) {\r\n seg.node.removeFromParent();\r\n if (seg.type === RichTextChildName) {\r\n labelPool.put(seg);\r\n } else if (seg.type === RichTextChildImageName) {\r\n imagePool.put(seg);\r\n }\r\n }\r\n\r\n this.node.off(NodeEventType.ANCHOR_CHANGED, this._updateRichTextPosition, this);\r\n this.node.off(NodeEventType.LAYER_CHANGED, this._applyLayer, this);\r\n }\r\n\r\n public start() {\r\n this._onFontLoaded();\r\n this.node.on(NodeEventType.ANCHOR_CHANGED, this._updateRichTextPosition, this);\r\n }\r\n\r\n private _addEventListeners(): void {\r\n this.node.on(Node.EventType.TOUCH_END, this._onTouchEnded, this);\r\n }\r\n\r\n private _removeEventListeners(): void {\r\n this.node.off(Node.EventType.TOUCH_END, this._onTouchEnded, this);\r\n }\r\n\r\n private _updateLabelSegmentTextAttributes(): void {\r\n this._segments.forEach((item) => {\r\n this._applyTextAttribute(item);\r\n });\r\n }\r\n\r\n private _createFontLabel(str: string): ISegment {\r\n return getSegmentByPool(RichTextChildName, str, this.material)!;\r\n }\r\n\r\n protected _createImage(spriteFrame: SpriteFrame): ISegment {\r\n return getSegmentByPool(RichTextChildImageName, spriteFrame)!;\r\n }\r\n\r\n private _onFontLoaded(): void {\r\n this._layoutDirty = true;\r\n this._updateRichText();\r\n }\r\n\r\n protected SplitLongStringApproximatelyIn2048(text: string, styleIndex: number) {\r\n const labelSize = this._calculateSize(styleIndex, text);\r\n const partStringArr: string[] = [];\r\n if (labelSize.x < 2048) {\r\n partStringArr.push(text);\r\n } else {\r\n const multilineTexts = text.split(\"\\n\");\r\n for (let i = 0; i < multilineTexts.length; i++) {\r\n const thisPartSize = this._calculateSize(styleIndex, multilineTexts[i]);\r\n if (thisPartSize.x < 2048) {\r\n partStringArr.push(multilineTexts[i]);\r\n } else {\r\n const thisPartSplitResultArr = this.splitLongStringOver2048(multilineTexts[i], styleIndex);\r\n partStringArr.push(...thisPartSplitResultArr);\r\n }\r\n }\r\n }\r\n return partStringArr;\r\n }\r\n\r\n /**\r\n * @engineInternal\r\n */\r\n protected splitLongStringOver2048(text: string, styleIndex: number) {\r\n const partStringArr: string[] = [];\r\n const longStr = text;\r\n\r\n let curStart = 0;\r\n let curEnd = longStr.length / 2;\r\n let curString = longStr.substring(curStart, curEnd);\r\n let leftString = longStr.substring(curEnd);\r\n let curStringSize = this._calculateSize(styleIndex, curString);\r\n let leftStringSize = this._calculateSize(styleIndex, leftString);\r\n\r\n // a line should be an unit to split long string\r\n const lineCountForOnePart = 1;\r\n const sizeForOnePart = lineCountForOnePart * this.maxWidth;\r\n\r\n // divide text into some pieces of which the size is less than sizeForOnePart\r\n while (curStringSize.x > sizeForOnePart) {\r\n curEnd /= 2;\r\n // at least one char can be an entity, step back.\r\n if (curEnd < 1) {\r\n curEnd *= 2;\r\n break;\r\n }\r\n\r\n curString = curString.substring(curStart, curEnd);\r\n leftString = longStr.substring(curEnd);\r\n curStringSize = this._calculateSize(styleIndex, curString);\r\n }\r\n\r\n // avoid too many loops\r\n let leftTryTimes = 1000;\r\n // the minimum step of expansion or reduction\r\n let curWordStep = 1;\r\n while (leftTryTimes && curStart < text.length) {\r\n while (leftTryTimes && curStringSize.x < sizeForOnePart) {\r\n const nextPartExec = TmpUtils.getEnglishWordPartAtFirst(leftString);\r\n // add a character, unless there is a complete word at the beginning of the next line\r\n if (nextPartExec && nextPartExec.length > 0) {\r\n curWordStep = nextPartExec[0].length;\r\n }\r\n curEnd += curWordStep;\r\n\r\n curString = longStr.substring(curStart, curEnd);\r\n leftString = longStr.substring(curEnd);\r\n curStringSize = this._calculateSize(styleIndex, curString);\r\n\r\n leftTryTimes--;\r\n }\r\n\r\n // reduce condition:size > maxwidth && curString.length >= 2\r\n while (leftTryTimes && curString.length >= 2 && curStringSize.x > sizeForOnePart) {\r\n curEnd -= curWordStep;\r\n curString = longStr.substring(curStart, curEnd);\r\n curStringSize = this._calculateSize(styleIndex, curString);\r\n // after the first reduction, the step should be 1.\r\n curWordStep = 1;\r\n\r\n leftTryTimes--;\r\n }\r\n\r\n // consider there is a part of a word at the end of this line, it should be moved to the next line\r\n if (curString.length >= 2) {\r\n const lastWordExec = TmpUtils.getEnglishWordPartAtLast(curString);\r\n if (lastWordExec && lastWordExec.length > 0\r\n // to avoid endless loop when there is only one word in this line\r\n && curString !== lastWordExec[0]) {\r\n curEnd -= lastWordExec[0].length;\r\n curString = longStr.substring(curStart, curEnd);\r\n }\r\n }\r\n\r\n // curStart and curEnd can be float since they are like positions of pointer,\r\n // but step must be integer because we split the complete characters of which the unit is integer.\r\n // it is reasonable that using the length of this result to estimate the next result.\r\n partStringArr.push(curString);\r\n const partStep = curString.length;\r\n curStart = curEnd;\r\n curEnd += partStep;\r\n\r\n curString = longStr.substring(curStart, curEnd);\r\n leftString = longStr.substring(curEnd);\r\n leftStringSize = this._calculateSize(styleIndex, leftString);\r\n\r\n leftTryTimes--;\r\n\r\n // Exit: If the left part string size is less than 2048, the method will finish.\r\n if (leftStringSize.x < 2048) {\r\n curStart = text.length;\r\n curEnd = text.length;\r\n curString = leftString;\r\n partStringArr.push(curString);\r\n break;\r\n } else {\r\n curStringSize = this._calculateSize(styleIndex, curString);\r\n }\r\n }\r\n\r\n return partStringArr;\r\n }\r\n\r\n private _measureText(styleIndex: number, string?: string): number | ((s: string) => number) {\r\n const func = (s: string) => {\r\n const labelSize = this._calculateSize(styleIndex, s);\r\n return labelSize.width;\r\n };\r\n if (string) {\r\n return func(string);\r\n } else {\r\n return func;\r\n }\r\n }\r\n\r\n protected _calculateSize(styleIndex: number, s: string) {\r\n let label: ISegment;\r\n if (this._labelSegmentsCache.length === 0) {\r\n label = this._createFontLabel(s);\r\n this._labelSegmentsCache.push(label);\r\n } else {\r\n label = this._labelSegmentsCache[0];\r\n label.node.getComponent(TextMeshPro)!.string = s;\r\n }\r\n label.styleIndex = styleIndex;\r\n this._applyTextAttribute(label);\r\n const labelSize = label.node._uiProps.uiTransformComp!.contentSize;\r\n return labelSize;\r\n }\r\n\r\n private _onTouchEnded(event: EventTouch): void {\r\n const components = this.node.getComponents(Component);\r\n\r\n for (const seg of this._segments) {\r\n const clickHandler = seg.clickHandler;\r\n const clickParam = seg.clickParam;\r\n if (clickHandler && this._containsTouchLocation(seg, event.touch!.getUILocation())) {\r\n components.forEach((component) => {\r\n const func = component[clickHandler];\r\n if (component.enabledInHierarchy && func) {\r\n func.call(component, event, clickParam);\r\n }\r\n });\r\n event.propagationStopped = true;\r\n }\r\n }\r\n }\r\n\r\n protected _containsTouchLocation(label: ISegment, point: Vec2) {\r\n const comp = label.node.getComponent(UITransform);\r\n if (!comp) {\r\n return false;\r\n }\r\n\r\n const myRect = comp.getBoundingBoxToWorld();\r\n return myRect.contains(point);\r\n }\r\n\r\n private _resetContent(node: Node): void {\r\n if (!node) {\r\n return;\r\n }\r\n\r\n const children = node.children;\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i];\r\n if (child.name === RichTextChildName || child.name === RichTextChildImageName) {\r\n if (child.parent === node) {\r\n child.parent = null;\r\n } else {\r\n // In case child.parent !== this.node, child cannot be removed from children\r\n children.splice(i, 1);\r\n }\r\n\r\n const segment = createSegment(child.name);\r\n segment.node = child;\r\n if (child.name === RichTextChildName) {\r\n segment.comp = child.getComponent(TextMeshPro);\r\n labelPool.put(segment);\r\n } else {\r\n segment.comp = child.getComponent(Sprite);\r\n imagePool.put(segment);\r\n }\r\n this._labelChildrenNum--;\r\n }\r\n }\r\n }\r\n\r\n private _resetState(): void {\r\n this._resetContent(this._labelContent);\r\n this._resetContent(this._imageContent);\r\n\r\n this._segments.length = 0;\r\n this._labelSegmentsCache.length = 0;\r\n this._linesWidth.length = 0;\r\n this._lineOffsetX = 0;\r\n this._lineCount = 1;\r\n this._labelWidth = 0;\r\n this._labelHeight = 0;\r\n this._layoutDirty = true;\r\n }\r\n\r\n private _activateChildren(active: boolean): void {\r\n this.node.children.forEach((content) => {\r\n for (let i = content.children.length - 1; i >= 0; i--) {\r\n const child = content.children[i];\r\n if (child.name === RichTextChildName || child.name === RichTextChildImageName) {\r\n child.active = active;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private _addLabelSegment(stringToken: string, styleIndex: number): ISegment {\r\n let labelSegment: ISegment;\r\n if (this._labelSegmentsCache.length === 0) {\r\n labelSegment = this._createFontLabel(stringToken);\r\n } else {\r\n labelSegment = this._labelSegmentsCache.pop()!;\r\n const label = labelSegment.node.getComponent(TextMeshPro);\r\n if (label) {\r\n label.string = stringToken;\r\n }\r\n }\r\n\r\n // set vertical alignments\r\n // because horizontal alignment is applied with line offsets in method \"_updateRichTextPosition\"\r\n const labelComp: TextMeshPro = labelSegment.comp as TextMeshPro;\r\n if (labelComp.verticalAlign !== this._verticalAlign) {\r\n labelComp.verticalAlign = this._verticalAlign;\r\n }\r\n\r\n labelSegment.styleIndex = styleIndex;\r\n labelSegment.lineCount = this._lineCount;\r\n labelSegment.node._uiProps.uiTransformComp!.setAnchorPoint(0, 0);\r\n labelSegment.node.layer = this.node.layer;\r\n this.labelContent.insertChild(labelSegment.node, this._labelChildrenNum++);\r\n this._applyTextAttribute(labelSegment);\r\n this._segments.push(labelSegment);\r\n\r\n return labelSegment;\r\n }\r\n\r\n private _updateRichTextWithMaxWidth(labelString, labelWidth, styleIndex): void {\r\n let fragmentWidth = labelWidth;\r\n let labelSegment: ISegment;\r\n\r\n if (this._lineOffsetX > 0 && fragmentWidth + this._lineOffsetX > this._maxWidth) {\r\n // concat previous line\r\n let checkStartIndex = 0;\r\n while (this._lineOffsetX <= this._maxWidth) {\r\n const checkEndIndex = this._getFirstWordLen(labelString, checkStartIndex, labelString.length);\r\n const checkString = labelString.substr(checkStartIndex, checkEndIndex);\r\n const checkStringWidth = this._measureText(styleIndex, checkString) as number;\r\n\r\n if (this._lineOffsetX + checkStringWidth <= this._maxWidth) {\r\n this._lineOffsetX += checkStringWidth;\r\n checkStartIndex += checkEndIndex;\r\n } else {\r\n if (checkStartIndex > 0) {\r\n const remainingString = labelString.substr(0, checkStartIndex);\r\n this._addLabelSegment(remainingString, styleIndex);\r\n labelString = labelString.substr(checkStartIndex, labelString.length);\r\n fragmentWidth = this._measureText(styleIndex, labelString) as number;\r\n }\r\n this._updateLineInfo();\r\n break;\r\n }\r\n }\r\n }\r\n if (fragmentWidth > this._maxWidth) {\r\n const fragments = TmpUtils.fragmentText(labelString, fragmentWidth, this._maxWidth,\r\n this._measureText(styleIndex) as unknown as (s: string) => number);\r\n for (let k = 0; k < fragments.length; ++k) {\r\n const splitString = fragments[k];\r\n labelSegment = this._addLabelSegment(splitString, styleIndex);\r\n const labelSize = labelSegment.node._uiProps.uiTransformComp!.contentSize;\r\n this._lineOffsetX += labelSize.width;\r\n if (fragments.length > 1 && k < fragments.length - 1) {\r\n this._updateLineInfo();\r\n }\r\n }\r\n } else {\r\n this._lineOffsetX += fragmentWidth;\r\n this._addLabelSegment(labelString, styleIndex);\r\n }\r\n }\r\n\r\n private _isLastComponentCR(stringToken: string): boolean {\r\n return stringToken.length - 1 === stringToken.lastIndexOf(\"\\n\");\r\n }\r\n\r\n private _updateLineInfo(): void {\r\n this._linesWidth.push(this._lineOffsetX);\r\n this._lineOffsetX = 0;\r\n this._lineCount++;\r\n }\r\n\r\n private _needsUpdateTextLayout(newTextArray): boolean {\r\n if (this._layoutDirty || !this._textArray || !newTextArray) {\r\n return true;\r\n }\r\n\r\n if (this._textArray.length !== newTextArray.length) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < this._textArray.length; i++) {\r\n const oldItem = this._textArray[i];\r\n const newItem = newTextArray[i];\r\n if (oldItem.text !== newItem.text) {\r\n return true;\r\n } else {\r\n const oldStyle = oldItem.style; const newStyle = newItem.style;\r\n if (oldStyle) {\r\n if (newStyle) {\r\n if (!!newStyle.outline !== !!oldStyle.outline) {\r\n return true;\r\n }\r\n if (oldStyle.size !== newStyle.size\r\n || oldStyle.italic !== newStyle.italic\r\n || oldStyle.isImage !== newStyle.isImage) {\r\n return true;\r\n }\r\n if (oldStyle.src !== newStyle.src\r\n || oldStyle.imageAlign !== newStyle.imageAlign\r\n || oldStyle.imageHeight !== newStyle.imageHeight\r\n || oldStyle.imageWidth !== newStyle.imageWidth\r\n || oldStyle.imageOffset !== newStyle.imageOffset) {\r\n return true;\r\n }\r\n } else if (oldStyle.size || oldStyle.italic || oldStyle.isImage || oldStyle.outline) {\r\n return true;\r\n }\r\n } else if (newStyle) {\r\n if (newStyle.size || newStyle.italic || newStyle.isImage || newStyle.outline) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private _addRichTextImageElement(richTextElement): void {\r\n if (!richTextElement.style) {\r\n return;\r\n }\r\n\r\n const style = richTextElement.style;\r\n const spriteFrameName = style.src;\r\n const spriteFrame = this._imageAtlas && spriteFrameName && this._imageAtlas.getSpriteFrame(spriteFrameName);\r\n if (!spriteFrame) {\r\n warnID(4400);\r\n } else {\r\n const segment = this._createImage(spriteFrame);\r\n const sprite = segment.comp;\r\n switch (style.imageAlign) {\r\n case \"top\":\r\n segment.node._uiProps.uiTransformComp!.setAnchorPoint(0, 1);\r\n break;\r\n case \"center\":\r\n segment.node._uiProps.uiTransformComp!.setAnchorPoint(0, 0.5);\r\n break;\r\n default:\r\n segment.node._uiProps.uiTransformComp!.setAnchorPoint(0, 0);\r\n break;\r\n }\r\n\r\n if (style.imageOffset) {\r\n segment.imageOffset = style.imageOffset;\r\n }\r\n segment.node.layer = this.node.layer;\r\n this.imageContent.insertChild(segment.node, this._labelChildrenNum++);\r\n this._segments.push(segment);\r\n\r\n const spriteRect = spriteFrame.rect.clone();\r\n let scaleFactor = 1;\r\n let spriteWidth = spriteRect.width;\r\n let spriteHeight = spriteRect.height;\r\n const expectWidth = style.imageWidth || 0;\r\n const expectHeight = style.imageHeight || 0;\r\n\r\n if (expectHeight > 0) {\r\n scaleFactor = expectHeight / spriteHeight;\r\n spriteWidth *= scaleFactor;\r\n spriteHeight *= scaleFactor;\r\n } else {\r\n scaleFactor = this._lineHeight / spriteHeight;\r\n spriteWidth *= scaleFactor;\r\n spriteHeight *= scaleFactor;\r\n }\r\n\r\n if (expectWidth > 0) {\r\n spriteWidth = expectWidth;\r\n }\r\n\r\n if (this._maxWidth > 0) {\r\n if (this._lineOffsetX + spriteWidth > this._maxWidth) {\r\n this._updateLineInfo();\r\n }\r\n this._lineOffsetX += spriteWidth;\r\n } else {\r\n this._lineOffsetX += spriteWidth;\r\n if (this._lineOffsetX > this._labelWidth) {\r\n this._labelWidth = this._lineOffsetX;\r\n }\r\n }\r\n segment.node._uiProps.uiTransformComp!.setContentSize(spriteWidth, spriteHeight);\r\n segment.lineCount = this._lineCount;\r\n\r\n segment.clickHandler = \"\";\r\n segment.clickParam = \"\";\r\n const event = style.event;\r\n if (event) {\r\n segment.clickHandler = event.click;\r\n segment.clickParam = event.param;\r\n }\r\n }\r\n }\r\n\r\n protected _updateRichText(): void {\r\n if (!this.enabledInHierarchy) {\r\n return;\r\n }\r\n\r\n const newTextArray = _htmlTextParser.parse(this._string);\r\n if (!this._needsUpdateTextLayout(newTextArray)) {\r\n this._textArray = newTextArray.slice();\r\n this._updateLabelSegmentTextAttributes();\r\n return;\r\n }\r\n\r\n this._textArray = newTextArray.slice();\r\n this._resetState();\r\n\r\n let lastEmptyLine = false;\r\n let label: ISegment;\r\n\r\n for (let i = 0; i < this._textArray.length; ++i) {\r\n const richTextElement = this._textArray[i];\r\n let text = richTextElement.text;\r\n if (text === undefined) {\r\n continue;\r\n }\r\n\r\n // handle
tag\r\n if (text === \"\") {\r\n if (richTextElement.style && richTextElement.style.isNewLine) {\r\n this._updateLineInfo();\r\n continue;\r\n }\r\n if (richTextElement.style && richTextElement.style.isImage && this._imageAtlas) {\r\n this._addRichTextImageElement(richTextElement);\r\n continue;\r\n }\r\n }\r\n\r\n const splitArr: string[] = this.SplitLongStringApproximatelyIn2048(text, i);\r\n text = splitArr.join(\"\\n\");\r\n\r\n const multilineTexts = text.split(\"\\n\");\r\n\r\n for (let j = 0; j < multilineTexts.length; ++j) {\r\n const labelString = multilineTexts[j];\r\n if (labelString === \"\") {\r\n // for continues \\n\r\n if (this._isLastComponentCR(text) && j === multilineTexts.length - 1) {\r\n continue;\r\n }\r\n this._updateLineInfo();\r\n lastEmptyLine = true;\r\n continue;\r\n }\r\n lastEmptyLine = false;\r\n\r\n if (this._maxWidth > 0) {\r\n const labelWidth = this._measureText(i, labelString) as number;\r\n this._updateRichTextWithMaxWidth(labelString, labelWidth, i);\r\n\r\n if (multilineTexts.length > 1 && j < multilineTexts.length - 1) {\r\n this._updateLineInfo();\r\n }\r\n } else {\r\n label = this._addLabelSegment(labelString, i);\r\n\r\n this._lineOffsetX += label.node._uiProps.uiTransformComp!.width;\r\n if (this._lineOffsetX > this._labelWidth) {\r\n this._labelWidth = this._lineOffsetX;\r\n }\r\n\r\n if (multilineTexts.length > 1 && j < multilineTexts.length - 1) {\r\n this._updateLineInfo();\r\n }\r\n }\r\n }\r\n }\r\n if (!lastEmptyLine) {\r\n this._linesWidth.push(this._lineOffsetX);\r\n }\r\n\r\n if (this._maxWidth > 0) {\r\n this._labelWidth = this._maxWidth;\r\n }\r\n this._labelHeight = (this._lineCount + BASELINE_RATIO) * this._lineHeight;\r\n\r\n // trigger \"size-changed\" event\r\n this.node._uiProps.uiTransformComp!.setContentSize(this._labelWidth, this._labelHeight);\r\n\r\n this._updateRichTextPosition();\r\n this._layoutDirty = false;\r\n }\r\n\r\n private _getFirstWordLen(text, startIndex, textLen): number {\r\n let character = text.charAt(startIndex);\r\n if (TmpUtils.isUnicodeCJK(character) || TmpUtils.isUnicodeSpace(character)) {\r\n return 1;\r\n }\r\n\r\n let len = 1;\r\n for (let index = startIndex + 1; index < textLen; ++index) {\r\n character = text.charAt(index);\r\n if (TmpUtils.isUnicodeSpace(character) || TmpUtils.isUnicodeCJK(character)) {\r\n break;\r\n }\r\n\r\n len++;\r\n }\r\n\r\n return len;\r\n }\r\n\r\n private _updateRichTextPosition(): void {\r\n let nextTokenX = 0;\r\n let nextLineIndex = 1;\r\n const totalLineCount = this._lineCount;\r\n const trans = this.node._uiProps.uiTransformComp!;\r\n const anchorX = trans.anchorX;\r\n const anchorY = trans.anchorY;\r\n for (let i = 0; i < this._segments.length; ++i) {\r\n const segment = this._segments[i];\r\n const lineCount = segment.lineCount;\r\n if (lineCount > nextLineIndex) {\r\n nextTokenX = 0;\r\n nextLineIndex = lineCount;\r\n }\r\n\r\n let lineOffsetX = this._labelWidth * (this._horizontalAlign * 0.5 - anchorX);\r\n switch (this._horizontalAlign) {\r\n case HorizontalTextAlignment.LEFT:\r\n break;\r\n case HorizontalTextAlignment.CENTER:\r\n lineOffsetX -= this._linesWidth[lineCount - 1] / 2;\r\n break;\r\n case HorizontalTextAlignment.RIGHT:\r\n lineOffsetX -= this._linesWidth[lineCount - 1];\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n const pos = segment.node.position;\r\n segment.node.setPosition(nextTokenX + lineOffsetX,\r\n this._lineHeight * (totalLineCount - lineCount) - this._labelHeight * anchorY,\r\n pos.z);\r\n\r\n if (lineCount === nextLineIndex) {\r\n nextTokenX += segment.node._uiProps.uiTransformComp!.width;\r\n // 排版根据TextMeshPro字符信息适配\r\n let tmp: TextMeshPro = segment.node.getComponent(TextMeshPro);\r\n if (tmp && tmp.richTextDeltaX) {\r\n nextTokenX += tmp.richTextDeltaX;\r\n }\r\n }\r\n\r\n const sprite = segment.node.getComponent(Sprite);\r\n if (sprite) {\r\n const position = segment.node.position.clone();\r\n // adjust img align (from )\r\n const lineHeightSet = this._lineHeight;\r\n const lineHeightReal = this._lineHeight * (1 + BASELINE_RATIO); // single line node height\r\n switch (segment.node._uiProps.uiTransformComp!.anchorY) {\r\n case 1:\r\n position.y += (lineHeightSet + ((lineHeightReal - lineHeightSet) / 2));\r\n break;\r\n case 0.5:\r\n position.y += (lineHeightReal / 2);\r\n break;\r\n default:\r\n position.y += ((lineHeightReal - lineHeightSet) / 2);\r\n break;\r\n }\r\n // adjust img offset (from )\r\n if (segment.imageOffset) {\r\n const offsets = segment.imageOffset.split(\",\");\r\n if (offsets.length === 1 && offsets[0]) {\r\n const offsetY = parseFloat(offsets[0]);\r\n if (Number.isInteger(offsetY)) position.y += offsetY;\r\n } else if (offsets.length === 2) {\r\n const offsetX = parseFloat(offsets[0]);\r\n const offsetY = parseFloat(offsets[1]);\r\n if (Number.isInteger(offsetX)) position.x += offsetX;\r\n if (Number.isInteger(offsetY)) position.y += offsetY;\r\n }\r\n }\r\n segment.node.position = position;\r\n }\r\n\r\n // // adjust y for label with outline\r\n // const outline = segment.node.getComponent(LabelOutline);\r\n // if (outline) {\r\n // const position = segment.node.position.clone();\r\n // position.y -= outline.width;\r\n // segment.node.position = position;\r\n // }\r\n }\r\n }\r\n\r\n /**\r\n * 16进制颜色转换\r\n * @param color \r\n */\r\n private _convertLiteralColorValue(color: string): Color {\r\n const colorValue = color.toUpperCase();\r\n if (Color[colorValue]) {\r\n const colorUse: Color = Color[colorValue];\r\n return colorUse;\r\n }\r\n else {\r\n let hexString = (color.indexOf(\"#\") === 0) ? color.substring(1) : color;\r\n let r = parseInt(hexString.substring(0, 2), 16) || 0;\r\n let g = parseInt(hexString.substring(2, 4), 16) || 0;\r\n let b = parseInt(hexString.substring(4, 6), 16) || 0;\r\n let a = parseInt(hexString.substring(6, 8), 16);\r\n if (Number.isNaN(a)) {\r\n a = 255;\r\n }\r\n return new Color(r, g, b, a);\r\n }\r\n }\r\n\r\n /**\r\n * 更新字体样式\r\n */\r\n private _applyTextAttribute(labelSeg: ISegment): void {\r\n let labelComponent: TextMeshPro = labelSeg.node.getComponent(TextMeshPro);\r\n if (!labelComponent) {\r\n return;\r\n }\r\n\r\n const index = labelSeg.styleIndex;\r\n\r\n let textStyle: IHtmlTextParserStack = null;\r\n if (this._textArray[index]) {\r\n textStyle = this._textArray[index].style;\r\n }\r\n\r\n if (textStyle && textStyle.color) {\r\n labelComponent.color = this._convertLiteralColorValue(textStyle.color);\r\n } else {\r\n labelComponent.color = Color.WHITE;\r\n }\r\n\r\n labelComponent.setFont(this.font, this.textures);\r\n labelComponent.lineHeight = this.lineHeight;\r\n\r\n labelComponent.colorGradient = Boolean(textStyle && textStyle.colorGradient);\r\n if (labelComponent.colorGradient) {\r\n labelComponent.colorLB = this._convertLiteralColorValue(textStyle.colorGradient.lb);\r\n labelComponent.colorRB = this._convertLiteralColorValue(textStyle.colorGradient.rb);\r\n labelComponent.colorLT = this._convertLiteralColorValue(textStyle.colorGradient.lt);\r\n labelComponent.colorRT = this._convertLiteralColorValue(textStyle.colorGradient.rt);\r\n }\r\n\r\n if (textStyle && textStyle.face) {\r\n labelComponent.tmpUniform.faceColor = this._convertLiteralColorValue(textStyle.face.color);\r\n labelComponent.tmpUniform.faceDilate = textStyle.face.dilate;\r\n labelComponent.tmpUniform.faceSoftness = textStyle.face.softness;\r\n } else {\r\n labelComponent.tmpUniform.faceColor = Color.WHITE;\r\n labelComponent.tmpUniform.faceDilate = 0.5;\r\n labelComponent.tmpUniform.faceSoftness = 0.01;\r\n }\r\n\r\n labelComponent.enableItalic = Boolean(textStyle && textStyle.italic);\r\n labelComponent.enableUnderline = Boolean(textStyle && textStyle.underline);\r\n if (labelComponent.enableUnderline) {\r\n labelComponent.underlineOffset = textStyle.offset || 0;\r\n }\r\n labelComponent.enableStrikethrough = Boolean(textStyle && textStyle.strikethrough);\r\n if (labelComponent.enableStrikethrough) {\r\n labelComponent.strikethroughOffset = textStyle.offset || 0;\r\n }\r\n\r\n labelComponent.tmpUniform.enableOutline = Boolean(textStyle && textStyle.outline);\r\n if (textStyle && textStyle.outline) {\r\n labelComponent.tmpUniform.outlineColor = this._convertLiteralColorValue(textStyle.outline.color);\r\n labelComponent.tmpUniform.outlineThickness = textStyle.outline.thickness;\r\n }\r\n\r\n labelComponent.tmpUniform.enableUnderlay = Boolean(textStyle && textStyle.underlay);\r\n if (labelComponent.tmpUniform.enableUnderlay) {\r\n labelComponent.tmpUniform.underlayColor = this._convertLiteralColorValue(textStyle.underlay.color);\r\n labelComponent.tmpUniform.underlayOffset = v2(textStyle.underlay.x, textStyle.underlay.y);\r\n labelComponent.tmpUniform.underlayDilate = textStyle.underlay.dilate;\r\n labelComponent.tmpUniform.underlaySoftness = textStyle.underlay.softness;\r\n }\r\n\r\n labelComponent.tmpUniform.enableGlow = Boolean(textStyle && textStyle.glow);\r\n if (labelComponent.tmpUniform.enableGlow) {\r\n labelComponent.tmpUniform.glowColor = this._convertLiteralColorValue(textStyle.glow.color);\r\n labelComponent.tmpUniform.glowOffset = textStyle.glow.offset;\r\n labelComponent.tmpUniform.glowInner = textStyle.glow.inner;\r\n labelComponent.tmpUniform.glowOuter = textStyle.glow.outer;\r\n labelComponent.tmpUniform.glowPower = textStyle.glow.power;\r\n }\r\n\r\n if (textStyle && textStyle.size) {\r\n labelComponent.fontSize = textStyle.size;\r\n } else {\r\n labelComponent.fontSize = this.fontSize;\r\n }\r\n\r\n labelComponent.forceUpdateRenderData();\r\n\r\n labelSeg.clickHandler = \"\";\r\n labelSeg.clickParam = \"\";\r\n const event = textStyle?.event;\r\n if (event) {\r\n labelSeg.clickHandler = event.click || \"\";\r\n labelSeg.clickParam = event.param || \"\";\r\n }\r\n }\r\n\r\n protected _applyLayer(): void {\r\n for (const seg of this._segments) {\r\n seg.node.layer = this.node.layer;\r\n }\r\n }\r\n}","import { assetManager, Component, warn } from \"cc\";\r\nimport { EDITOR } from \"cc/env\";\r\n\r\nconst WORD_REG = /([a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûа-яА-ЯЁё]+|\\S)/;\r\n// eslint-disable-next-line no-useless-escape\r\nconst SYMBOL_REG = /^[!,.:;'}\\]%\\?>、‘“》?。,!]/;\r\nconst LAST_WORD_REG = /([a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłę湯ŹŚÓŃŁĘĆĄ-яА-ЯЁёáàảạãăắằẳẵặâấầẩẫậéèẻẽẹêếềểễệiíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵđÁÀẢẠÃĂẮẰẲẴẶÂẤẦẨẪẬÉÈẺẼẸÊẾỀỂỄỆIÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴĐ]+|\\S)$/;\r\nconst LAST_ENGLISH_REG = /[a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłę湯ŹŚÓŃŁĘĆĄ-яА-ЯЁёáàảạãăắằẳẵặâấầẩẫậéèẻẽẹêếềểễệiíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵđÁÀẢẠÃĂẮẰẲẴẶÂẤẦẨẪẬÉÈẺẼẸÊẾỀỂỄỆIÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴĐ]+$/;\r\nconst FIRST_ENGLISH_REG = /^[a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłę湯ŹŚÓŃŁĘĆĄ-яА-ЯЁёáàảạãăắằẳẵặâấầẩẫậéèẻẽẹêếềểễệiíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵđÁÀẢẠÃĂẮẰẲẴẶÂẤẦẨẪẬÉÈẺẼẸÊẾỀỂỄỆIÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴĐ]/;\r\nconst WRAP_INSPECTION = true;\r\n\r\n// in case truncate a character on the Supplementary Multilingual Plane\r\n// test case: a = '😉🚗'\r\n// _safeSubstring(a, 1) === '😉🚗'\r\n// _safeSubstring(a, 0, 1) === '😉'\r\n// _safeSubstring(a, 0, 2) === '😉'\r\n// _safeSubstring(a, 0, 3) === '😉'\r\n// _safeSubstring(a, 0, 4) === '😉🚗'\r\n// _safeSubstring(a, 1, 2) === _safeSubstring(a, 1, 3) === '😉'\r\n// _safeSubstring(a, 2, 3) === _safeSubstring(a, 2, 4) === '🚗'\r\nfunction _safeSubstring(targetString, startIndex, endIndex?) {\r\n let newStartIndex = startIndex;\r\n let newEndIndex = endIndex;\r\n const startChar = targetString[startIndex];\r\n // lowSurrogateRex\r\n if (startChar >= '\\uDC00' && startChar <= '\\uDFFF') {\r\n newStartIndex--;\r\n }\r\n if (endIndex !== undefined) {\r\n if (endIndex - 1 !== startIndex) {\r\n const endChar = targetString[endIndex - 1];\r\n // highSurrogateRex\r\n if (endChar >= '\\uD800' && endChar <= '\\uDBFF') {\r\n newEndIndex--;\r\n }\r\n } else if (startChar >= '\\uD800' && startChar <= '\\uDBFF') {\r\n // highSurrogateRex\r\n newEndIndex++;\r\n }\r\n }\r\n return targetString.substring(newStartIndex, newEndIndex) as string;\r\n}\r\n\r\nexport default class TmpUtils {\r\n /** TextMeshPro组件默认材质路径 */\r\n public static readonly TMP_MAT: string = \"textMeshPro/resources/shader/materials/textMeshPro.mtl\";\r\n\r\n /**\r\n * 编辑器模式下加载资源\r\n * @param url db://assets/\r\n */\r\n public static load(url: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (!EDITOR) {\r\n resolve(null);\r\n return;\r\n }\r\n Editor.Message.request(\"asset-db\", \"query-uuid\", `db://assets/${url}`).then((uuid) => {\r\n if (!uuid) {\r\n resolve(null);\r\n warn(`[EditorTool.load] uuid查询失败 url: ${url}`);\r\n return;\r\n }\r\n assetManager.loadAny(uuid, (error: any, result: T) => {\r\n if (error || !result) {\r\n resolve(null);\r\n warn(`[EditorTool.load] 资源加载失败 url: ${url}`);\r\n return;\r\n }\r\n resolve(result);\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 异步等待 - cc.Component.scheduleOnce\r\n */\r\n public static waitCmpt(cmpt: Component, seconds: number): Promise {\r\n return new Promise((resolve, reject) => {\r\n cmpt.scheduleOnce(() => {\r\n resolve();\r\n }, seconds);\r\n });\r\n }\r\n\r\n public static isUnicodeCJK(ch: string) {\r\n const __CHINESE_REG = /^[\\u4E00-\\u9FFF\\u3400-\\u4DFF]+$/;\r\n const __JAPANESE_REG = /[\\u3000-\\u303F]|[\\u3040-\\u309F]|[\\u30A0-\\u30FF]|[\\uFF00-\\uFFEF]|[\\u4E00-\\u9FAF]|[\\u2605-\\u2606]|[\\u2190-\\u2195]|\\u203B/g;\r\n const __KOREAN_REG = /^[\\u1100-\\u11FF]|[\\u3130-\\u318F]|[\\uA960-\\uA97F]|[\\uAC00-\\uD7AF]|[\\uD7B0-\\uD7FF]+$/;\r\n return __CHINESE_REG.test(ch) || __JAPANESE_REG.test(ch) || __KOREAN_REG.test(ch);\r\n }\r\n\r\n // Checking whether the character is a whitespace\r\n public static isUnicodeSpace(ch: string) {\r\n const chCode = ch.charCodeAt(0);\r\n return ((chCode >= 9 && chCode <= 13)\r\n || chCode === 32\r\n || chCode === 133\r\n || chCode === 160\r\n || chCode === 5760\r\n || (chCode >= 8192 && chCode <= 8202)\r\n || chCode === 8232\r\n || chCode === 8233\r\n || chCode === 8239\r\n || chCode === 8287\r\n || chCode === 12288);\r\n }\r\n\r\n public static getEnglishWordPartAtFirst(stringToken: string) {\r\n const result = FIRST_ENGLISH_REG.exec(stringToken);\r\n return result;\r\n }\r\n\r\n public static getEnglishWordPartAtLast(stringToken: string) {\r\n const result = LAST_ENGLISH_REG.exec(stringToken);\r\n return result;\r\n }\r\n\r\n public static fragmentText(stringToken: string, allWidth: number, maxWidth: number, measureText: (string: string) => number) {\r\n // check the first character\r\n const wrappedWords: string[] = [];\r\n // fast return if strArr is empty\r\n if (stringToken.length === 0 || maxWidth < 0) {\r\n wrappedWords.push('');\r\n return wrappedWords;\r\n }\r\n\r\n let text = stringToken;\r\n while (allWidth > maxWidth && text.length > 1) {\r\n let fuzzyLen = text.length * (maxWidth / allWidth) | 0;\r\n let tmpText = _safeSubstring(text, fuzzyLen);\r\n let width = allWidth - measureText(tmpText);\r\n let sLine = tmpText;\r\n let pushNum = 0;\r\n\r\n let checkWhile = 0;\r\n const checkCount = 100;\r\n\r\n // Exceeded the size\r\n while (width > maxWidth && checkWhile++ < checkCount) {\r\n fuzzyLen *= maxWidth / width;\r\n fuzzyLen |= 0;\r\n tmpText = _safeSubstring(text, fuzzyLen);\r\n width = allWidth - measureText(tmpText);\r\n }\r\n\r\n checkWhile = 0;\r\n\r\n // Find the truncation point\r\n // if the 'tempText' which is truncated from the next line content equals to '',\r\n // we should break this loop because there is no available character in the next line.\r\n while (tmpText && width <= maxWidth && checkWhile++ < checkCount) {\r\n const exec = WORD_REG.exec(tmpText);\r\n pushNum = exec ? exec[0].length : 1;\r\n sLine = tmpText;\r\n\r\n fuzzyLen += pushNum;\r\n tmpText = _safeSubstring(text, fuzzyLen);\r\n width = allWidth - measureText(tmpText);\r\n }\r\n\r\n fuzzyLen -= pushNum;\r\n // in case maxWidth cannot contain any characters, need at least one character per line\r\n if (fuzzyLen === 0) {\r\n fuzzyLen = 1;\r\n sLine = _safeSubstring(text, 1);\r\n } else if (fuzzyLen === 1 && text[0] >= '\\uD800' && text[0] <= '\\uDBFF') {\r\n // highSurrogateRex\r\n fuzzyLen = 2;\r\n sLine = _safeSubstring(text, 2);\r\n }\r\n\r\n let sText = _safeSubstring(text, 0, fuzzyLen);\r\n let result;\r\n\r\n // Symbols cannot be the first character in a new line.\r\n // In condition that a symbol appears at the beginning of the new line, we will move the last word of this line to the new line.\r\n // If there is only one word in this line, we will keep the first character of this word and move the rest of characters to the new line.\r\n if (WRAP_INSPECTION) {\r\n if (SYMBOL_REG.test(sLine || tmpText)) {\r\n result = LAST_WORD_REG.exec(sText);\r\n fuzzyLen -= result ? result[0].length : 0;\r\n if (fuzzyLen === 0) { fuzzyLen = 1; }\r\n\r\n sLine = _safeSubstring(text, fuzzyLen);\r\n sText = _safeSubstring(text, 0, fuzzyLen);\r\n }\r\n }\r\n\r\n // To judge whether a English words are truncated\r\n // If it starts with an English word in the next line and it ends with an English word in this line,\r\n // we consider that a complete word is truncated into two lines. The last word without symbols of this line will be moved to the next line.\r\n if (FIRST_ENGLISH_REG.test(sLine)) {\r\n result = LAST_ENGLISH_REG.exec(sText);\r\n if (result && (sText !== result[0])) {\r\n fuzzyLen -= result[0].length;\r\n sLine = _safeSubstring(text, fuzzyLen);\r\n sText = _safeSubstring(text, 0, fuzzyLen);\r\n }\r\n }\r\n\r\n // The first line And do not wrap should not remove the space\r\n if (wrappedWords.length === 0) {\r\n wrappedWords.push(sText);\r\n } else {\r\n sText = sText.trim();\r\n if (sText.length > 0) {\r\n wrappedWords.push(sText);\r\n }\r\n }\r\n text = sLine || tmpText;\r\n allWidth = measureText(text);\r\n }\r\n\r\n if (wrappedWords.length === 0) {\r\n wrappedWords.push(text);\r\n } else {\r\n text = text.trim();\r\n if (text.length > 0) {\r\n wrappedWords.push(text);\r\n }\r\n }\r\n return wrappedWords;\r\n }\r\n}\r\n","/**\n * TongXingProxy config配置文件\n */\nimport { _decorator } from 'cc';\nimport { c1056, s1056, c1057, c1058, s1058,c1059, s1059,c1060, s1060 } from '../../../proto/proto';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport { send2client } from '../../../core/WebSocket/WebSocketMgr';\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\nimport { BoxData } from '../common/Component';\nimport { BoxStyle, GlobalFunction } from '../common/GlobalFunction';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { Logger } from '../../../../core/common/log/Logger';\nimport { dataUser } from '../../gameData/dataUser';\nimport WindowManager from '../../../core/manager/WindowManager';\nimport GameConst from '../../../core/common/GameConst';\nimport { sys } from 'cc';\nimport ListView from '../../../core/component/ListView';\n@res_auto_bind()\nexport class TongXingProxy {\n private static _inst: TongXingProxy;\n public static get Inst(): TongXingProxy {\n if (TongXingProxy._inst == null) {\n TongXingProxy._inst = new TongXingProxy();\n }\n return TongXingProxy._inst;\n }\n public InitTongXingAllConfig(){\n this.InitTongXingConfig();\n this.InitTongXingLvConfig();\n this.InitTongXingTaskConfig();\n this.InitTongXingProcessConfig();\n }\n\n\n @res_assign(\"TongXing\")\n public TongXingDataList: TongXing[];\n public InitTongXingConfig() {\n if (this.TongXingDataList == null) {\n this.TongXingDataList = [];\n }\n let TongXingDataConfig = ConfigManager.GetInstance().getValue(\"TongXing\")\n for (var key in TongXingDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"TongXing\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.TongXingDataList.push(item);\n }\n }\n }\n public GetTongXingDataById(id:number){\n if (this.TongXingDataList == null) {\n this.InitTongXingConfig();\n }\n let data: TongXing = this.TongXingDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n\n\n\n @res_assign(\"TongXingLv\")\n public TongXingLvDataList: TongXingLv[];\n public InitTongXingLvConfig() {\n if (this.TongXingLvDataList == null) {\n this.TongXingLvDataList = [];\n }\n let TongXingLvDataConfig = ConfigManager.GetInstance().getValue(\"TongXingLv\")\n for (var key in TongXingLvDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"TongXingLv\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.TongXingLvDataList.push(item);\n }\n }\n }\n\n public GetCurrenTypeList(indexs :number){\n let list :TongXingLv[] =[];\n\n for (let index = 0; index < this.TongXingLvDataList.length; index++) {\n const element = this.TongXingLvDataList[index];\n if(indexs==element.id){\n list.push(element); \n }\n }\n return list;\n }\n public GetCurrenTyLvExpByLv(indexs :number,lv:number){\n let list :TongXingLv[] =[];\n\n for (let index = 0; index < this.TongXingLvDataList.length; index++) {\n const element = this.TongXingLvDataList[index];\n if(indexs==element.id){\n list.push(element); \n }\n }\n\n let data = list.find(item=>item.lv==lv);\n if(data){\n return data.exp;\n }\n return 0;\n }\n\n\n @res_assign(\"TongXingTask\")\n public TongXingTaskDataList: TongXingTask[];\n public InitTongXingTaskConfig() {\n if (this.TongXingTaskDataList == null) {\n this.TongXingTaskDataList = [];\n }\n let TongXingTaskDataConfig = ConfigManager.GetInstance().getValue(\"TongXingTask\")\n for (var key in TongXingTaskDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"TongXingTask\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.TongXingTaskDataList.push(item);\n }\n }\n }\n public GetTongXingTaskById(id:number){\n if (this.TongXingTaskDataList == null) {\n this.InitTongXingTaskConfig();\n }\n let data: TongXingTask = this.TongXingTaskDataList.find(item => item.id == id);\n if (data) {\n return data;\n }\n return null;\n }\n\n\n\n @res_assign(\"TongXingDayProcess\")\n public TongXingProcessDataList: TongXingDayProcess[];\n public InitTongXingProcessConfig() {\n if (this.TongXingProcessDataList == null) {\n this.TongXingProcessDataList = [];\n }\n let TongXingProcessDataConfig = ConfigManager.GetInstance().getValue(\"TongXingDayProcess\")\n for (var key in TongXingProcessDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"TongXingDayProcess\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.TongXingProcessDataList.push(item);\n }\n }\n }\n\n // /** 根据id获取payinfo */\n // public GetFunctionDataByID(id: number) {\n // if (this.FunctionDataList == null) {\n // this.InitFunctionForetellConfig();\n // }\n // let data: FunctionForetell = this.FunctionDataList.find(item => item.id == id);\n // if (data) {\n // return data;\n // }\n // return null;\n // }\n \n\n /***==========================服务器数据存储============================== */\n public TongXingServerData: s1056;//通行证数据\n\n\n public IsGetRewardPT(level :number){\n\n if(this.TongXingServerData.lvRewards1==undefined ||this.TongXingServerData.lvRewards1.length==0)return false;\n let data =this.TongXingServerData.lvRewards1.find(item=>item ==level);\n if(data){\n return true;\n }\n return false;\n }\n public IsGetRewardGJ(level :number){\n\n if(this.TongXingServerData.lvRewards2==undefined ||this.TongXingServerData.lvRewards2.length==0)return false;\n let data =this.TongXingServerData.lvRewards2.find(item=>item ==level);\n if(data){\n return true;\n }\n return false;\n }\n\n public SendC1056() {\n //通行证界面信息\n console.log(\"=================================发送SendC1056=====================================\");\n var c1056: c1056 = {};\n send2client(\"c1056\", c1056);\n }\n\n public SendC1057(taskId:number) {\n console.log(\"===================发送1057================taskId====\"+taskId);\n //通行证任务看完广告\n var c1057: c1057 = {taskId:taskId};\n send2client(\"c1057\", c1057);\n }\n\n public SendC1058(taskId:number) {\n //任务领奖\n console.log(\"===================发送1058================taskId====\"+taskId);\n var c1058: c1058 = {taskId:taskId};\n send2client(\"c1058\", c1058);\n }\n public SendC1059(id:number,type:number) {\n console.log(\"===================发送1059================id====\"+id +\" type===\"+type);\n //通行证进度奖励领奖\n var c1059: c1059 = {id:id,type:type};\n send2client(\"c1059\", c1059);\n }\n\n public SendC1060() {\n console.log(\"===================发送1060====================\");\n //通行证购买\n var c1060: c1060 = {};\n send2client(\"c1060\", c1060);\n }\n}\n\n// /**通行证界面信息 */\nexport function do_s1056(s1056: s1056) {\n // console.log(\"===================接收是1056================通行证界面信息====\");\n TongXingProxy.Inst.TongXingServerData = s1056;\n console.log(\"dayexp====\"+TongXingProxy.Inst.TongXingServerData.dayExp);\n console.log(\"exp====\"+TongXingProxy.Inst.TongXingServerData.exp);\n EventManager.Inst.event(EventType.REFRESH_TONGXINGZHENG_UI);\n // id?: number;\n // dayExp?: number;\n // lv?: number;\n // exp?: number;\n // isBuy?: number;\n // dayRewardList?: number[];\n // lvRewards1?: number[];\n // lvRewards2?: number[];\n // tasks?: p_tx_task[];\n}\n\n// /**通行证任务领奖 */\nexport function do_s1058(s1058: s1058) {\n console.log(\"===================接收是1058================通行证任务领奖====\"+s1058.result);\n if(s1058.result==undefined){\n \n if(s1058.rewards &&s1058.rewards.length>0){\n var data = new BoxData\n {\n data.rewards = s1058.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n\n }\n TongXingProxy.Inst.SendC1056();\n }\n\n\n}\n// /**通行证进度奖励领奖 */\nexport function do_s1059(s1059: s1059) {\n // console.log(\"===================接收是1059================通行证进度奖励领奖====\"+s1059.result);\n if(s1059.result==undefined){\n \n if(s1059.rewards &&s1059.rewards.length>0){\n var data = new BoxData\n {\n data.rewards = s1059.rewards;\n };\n GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n\n }\n TongXingProxy.Inst.SendC1056();\n\n }\n\n\n}\n\n\n// /**通行证购买 */\nexport function do_s1060(s1060: s1060) {\n // console.log(\"===================接收是1060================通行证购买====\"+s1060.result);\n if(s1060.result==undefined){\n // if(s1060.rewards &&s1060.rewards.length>0){\n // var data = new BoxData\n // {\n // data.rewards = s1060.rewards;\n // };\n // GlobalFunction.ShowBox(data, BoxStyle.BoxStyle3);\n\n // TongXingProxy.Inst.SendC1056();\n // }\n TongXingProxy.Inst.SendC1056();\n }\n\n\n}\n\nexport class TongXing{\n id: number;\n cost: number;\n heroId: number;\n ay_rewards: string[];\n iconbing: string;\n iconsmall: string;\n}\nexport class TongXingLv{\n tongyongi: number;\n id: number;\n lv: number;\n exp: number;\n kv_rewards1: Map;\n kv_rewards2: Map;\n}\n\n\n\n\nexport class TongXingTask{\n id: number;\n type: number;\n item: number;\n itemNum: number;\n txScore: number;\n isAd: number;\n share: number;\n jump_id: number;\n lan_task: string;\n ay_task: string[];\n ay_taskNum: string[];\n}\nexport class TongXingDayProcess{\n id: number;\n score: number;\n kv_rewards: Map;\n}","import { sys } from \"cc\";\r\n\r\nexport enum PlatType {\r\n WEB = 1,\r\n WECHAT = 2\r\n}\r\n\r\n\r\nexport class ToolSDK {\r\n static cache = {};\r\n /**\r\n * 拿缓存 如没 返回 null\r\n * @param {string} key \r\n */\r\n static get_cache(key: string): string {\r\n if (this.cache[key]) return this.cache[key];\r\n let data = sys.localStorage.getItem(key);\r\n if (data == null || data == \"null\" || data == undefined || data == \"\" || data == \"NaN\") {\r\n return null;\r\n }\r\n this.cache[key] = data;\r\n return data\r\n }\r\n\r\n /**\r\n * 设置缓存\r\n * @param {string} key \r\n * @param {string} value 自己转换成字符存入\r\n */\r\n static set_cache(key: string, value: string) {\r\n this.cache[key] = value;\r\n sys.localStorage.setItem(key, value);\r\n };\r\n\r\n static has(key: string): boolean {\r\n return !!this.get_cache(key);\r\n }\r\n\r\n /**\r\n * 删除缓存\r\n * @param {string} key \r\n */\r\n static delete_cache(key: string) {\r\n delete this.cache[key]\r\n sys.localStorage.removeItem(key);\r\n };\r\n\r\n static clear_cache() {\r\n this.cache = {}\r\n sys.localStorage.clear();\r\n }\r\n\r\n private static _print = false;\r\n static GET_PLT(): number {\r\n let plat_type = PlatType.WEB;\r\n let plt_str = \"浏览器\";\r\n if (window[\"wx\"] && !window['qq'] && !window['tt']) {\r\n plat_type = PlatType.WECHAT;\r\n plt_str = \"微信\";\r\n } else {\r\n plat_type = PlatType.WEB;\r\n }\r\n if (!this._print) {\r\n console.log(\"自动获取平台:\" + plt_str);\r\n this._print = true;\r\n }\r\n return plat_type;\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\nimport { math, Vec2, Vec3 } from \"cc\";\r\n\r\nexport class TweenUtils {\r\n static jumpTo_v3(to: Vec3, height: number): Readonly {\r\n return { value: to, progress: this._jumpTo_progress(3, height) } as any as Vec3;\r\n }\r\n static jumpTo_v2(to: Vec3, height: number): Readonly {\r\n return { value: to, progress: this._jumpTo_progress(2, height) } as any as Vec2;\r\n }\r\n private static _jumpTo_progress(max: number, height: number): (from: number, to: number, cur: number, pcs: number) => number {\r\n let i = max;\r\n let heightSqrt = Math.sqrt(height);\r\n return (from: number, to: number, cur: number, pcs: number) => {\r\n\r\n // 使用序列耦合区分xyz轴: 1: x, 2: y, 3: z\r\n if (i >= max) i = 1;\r\n else i++;\r\n\r\n // let rsl = from + (to - from) * pcs; // lerp\r\n let rsl = math.lerp(from, to, pcs);\r\n\r\n if (i === 2) { // y轴的增量算法\r\n let du = Math.abs(1 - pcs * 2); // [0,1] > [1,0,1]\r\n rsl += height - Math.pow(heightSqrt * du, 2);\r\n }\r\n\r\n return rsl;\r\n };\r\n }\r\n}","import { _decorator } from \"cc\";\r\nimport { Node } from \"cc\";\r\nimport { sp } from \"cc\";\r\nimport { Vec3 } from \"cc\";\r\nimport { GameModleComp } from \"../game/GameModle\";\r\nimport ResHelper from \"../core/manager/ResHelper\";\r\nimport { SoldierProxy, Soldiers } from \"../modules/game/proxy/SoldierProxy\";\r\nimport { Model, ModelPoxy } from \"../modules/game/proxy/ModelPoxy\";\r\nimport { Sprite } from \"cc\";\r\nimport { SoldierEquipProxy, SoldiersEquip } from \"../modules/game/proxy/SoldierEquipProxy\";\r\nimport { SpriteFrame } from \"cc\";\r\nimport { p_army_wear_equip } from \"../proto/proto\";\r\nimport { Component } from \"cc\";\r\nimport { GebolInTypeEnum } from \"./GebolinView\";\r\nimport { Logger } from \"../../core/common/log/Logger\";\r\nconst { ccclass,property } = _decorator;\r\n@ccclass('UiRole')\r\nexport class UiRole extends Component{\r\n @property(Node)\r\n skeleton :Node = null;\r\n @property(Node)\r\n scaleNodes : Node = null;\r\n @property(Node)\r\n wuqi:Node = null;\r\n @property(Sprite)\r\n wuqiSprite : Sprite = null;\r\n @property(Sprite)\r\n yifuSprite : Sprite = null;\r\n @property(Sprite)\r\n maoziSprite : Sprite = null;\r\n @property(Sprite)\r\n youWuqiSprite : Sprite = null;\r\n public spine!: sp.Skeleton;\r\n @property(Node)\r\n public fangxiangNode : Node = null;\r\n\r\n private _gebolinId: number = 101;\r\n public get gebolinId(): number {\r\n return this._gebolinId;\r\n }\r\n public set gebolinId(value: number) {\r\n this._gebolinId = value;\r\n }\r\n private _gebolinType: GebolInTypeEnum;\r\n public get gebolinType(): GebolInTypeEnum {\r\n return this._gebolinType;\r\n }\r\n public set gebolinType(value: GebolInTypeEnum) {\r\n this._gebolinType = value;\r\n }\r\n private soldier:Soldiers;\r\n onLoad(){\r\n }\r\n init(gebolinId:number ){\r\n this.gebolinId = gebolinId;\r\n this.initType();\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.soldier = SoldierProxy.Inst.GetSoldiersDataByID(this.gebolinId);\r\n this.showScale();\r\n this.showRole(this.soldier.model , ()=>{\r\n setTimeout(() => {\r\n this.wearWuqi();\r\n this.wearKaijia();\r\n this.wearMaozi();\r\n }, 400);\r\n });\r\n }\r\n private initType(){\r\n switch(this.gebolinId){\r\n case 101:\r\n this.gebolinType = GebolInTypeEnum.ZhanShi;\r\n break;\r\n case 201:\r\n this.gebolinType = GebolInTypeEnum.FaShi;\r\n break;\r\n case 301:\r\n this.gebolinType = GebolInTypeEnum.ChiKe;\r\n break;\r\n case 401:\r\n this.gebolinType = GebolInTypeEnum.PaoShou;\r\n break;\r\n }\r\n }\r\n private showScale(){\r\n let model:Model = ModelPoxy.Inst.getModelById(101);//this.gebolinId\r\n let v3:Vec3 = new Vec3(1 , 1 , 1);\r\n if(model.ay_battle.length){\r\n v3.x = Number(model.ay_battle[0]);\r\n v3.y = Number(model.ay_battle[1]);\r\n }\r\n this.scaleNodes.scale = v3;\r\n }\r\n private showRole(str:string , callFun:Function){\r\n let path: string = \"spineRes/characters/\"+str+\"/\" + str;\r\n let sktd = ResHelper.get(path, sp.SkeletonData,\"spineRes\") as sp.SkeletonData;\r\n if (sktd) {\r\n let ms = this.spine;\r\n ms.skeletonData = sktd;\r\n callFun();\r\n }\r\n else {\r\n ResHelper.load(path, sp.SkeletonData, (err, sp:sp.SkeletonData) => {\r\n try {\r\n let ms = this.spine;\r\n ms.skeletonData = sp;\r\n callFun();\r\n } catch (error) {\r\n }\r\n } , false,\"spineRes\")\r\n }\r\n }\r\n private wearWuqi(){\r\n let equipData:p_army_wear_equip = GameModleComp.getInstance().getEquipByType(this.gebolinType);\r\n if(equipData.wearWq){\r\n let id:number = equipData.wearWq;\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n if(this.gebolinType == GebolInTypeEnum.ChiKe){\r\n let skinArr:Array = equip.modelName.split(\"|\");\r\n for(let i = 0 ; i < skinArr.length ; i++){\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+skinArr[i])\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(\"刺客武器插槽查询失败\")\r\n }\r\n }\r\n }else{\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"武器插槽查询失败\")\r\n }\r\n }\r\n }\r\n }\r\n private wearKaijia(){\r\n let equipData:p_army_wear_equip = GameModleComp.getInstance().getEquipByType(this.gebolinType);\r\n if(equipData.wearKj){\r\n let id:number = equipData.wearKj;\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"衣服插槽查询失败\")\r\n }\r\n }\r\n }\r\n private wearMaozi(){\r\n let equipData:p_army_wear_equip = GameModleComp.getInstance().getEquipByType(this.gebolinType);\r\n if(equipData.wearHat){\r\n let id:number = equipData.wearHat;\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"帽子插槽查询失败\")\r\n }\r\n }\r\n }\r\n desTory(){\r\n super.destroy();\r\n }\r\n\r\n\r\n /**获得新的士兵显示展示界面 数据初始化 */\r\n initShow(gebolinId:number ){\r\n this.gebolinId = gebolinId;\r\n this.initType();\r\n this.spine = this.skeleton.getComponent(sp.Skeleton)!;\r\n this.soldier = SoldierProxy.Inst.GetSoldiersDataByID(this.gebolinId);\r\n this.showScale();\r\n this.showRole(this.soldier.model , ()=>{\r\n setTimeout(() => {\r\n this.wearShowWuqi();\r\n this.wearShowKaijia();\r\n this.wearShowMaozi();\r\n }, 400);\r\n });\r\n }\r\n private wearShowWuqi(){\r\n let id:number = 0;\r\n if(this.gebolinType == GebolInTypeEnum.ChiKe){\r\n id=717;\r\n }else if(this.gebolinType == GebolInTypeEnum.FaShi){\r\n id=417;\r\n }else if(this.gebolinType == GebolInTypeEnum.PaoShou){\r\n id=1017;\r\n }\r\n\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n if(this.gebolinType == GebolInTypeEnum.ChiKe){\r\n let skinArr:Array = equip.modelName.split(\"|\");\r\n for(let i = 0 ; i < skinArr.length ; i++){\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+skinArr[i])\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(\"刺客武器插槽查询失败\")\r\n }\r\n }\r\n }else{\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"武器插槽查询失败\")\r\n }\r\n }\r\n \r\n }\r\n private wearShowKaijia(){\r\n\r\n let id:number = 0;\r\n if(this.gebolinType == GebolInTypeEnum.ChiKe){\r\n id=817;\r\n }else if(this.gebolinType == GebolInTypeEnum.FaShi){\r\n id=517;\r\n }else if(this.gebolinType == GebolInTypeEnum.PaoShou){\r\n id=1117;\r\n }\r\n\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"衣服插槽查询失败\")\r\n }\r\n \r\n }\r\n private wearShowMaozi(){\r\n\r\n let id:number = 0;\r\n if(this.gebolinType == GebolInTypeEnum.ChiKe){\r\n id=917;\r\n }else if(this.gebolinType == GebolInTypeEnum.FaShi){\r\n id=617;\r\n }else if(this.gebolinType == GebolInTypeEnum.PaoShou){\r\n id=1217;\r\n }\r\n let equip:SoldiersEquip = SoldierEquipProxy.Inst.GetSoldiersEquipByID(id);\r\n let nowAdd:sp.spine.Slot = this.spine.findSlot(\"zy_\"+equip.modelName)\r\n if(nowAdd){\r\n nowAdd.setToSetupPose()\r\n nowAdd.color.a = 1;\r\n }else{\r\n Logger.logView(this.gebolinType + \"帽子插槽查询失败\")\r\n }\r\n \r\n }\r\n}","/**\r\n *

URL 提供URL格式化,URL版本管理的类。

\r\n *

引擎加载资源的时候,会自动调用formatURL函数格式化URL路径

\r\n *

通过basePath属性可以设置网络基础路径

\r\n *

通过设置customFormat函数,可以自定义URL格式化的方式

\r\n *

除了默认的通过增加后缀的格式化外,通过VersionManager类,可以开启IDE提供的,基于目录的管理方式来替代 \"?v=\" 的管理方式

\r\n * @see laya.net.VersionManager\r\n */\r\n\r\nimport { _decorator } from 'cc';\r\nexport class URL {\r\n /**URL地址版本映射表,比如{\"aaa/bb.png\":99,\"aaa/bb.png\":12},默认情况下,通过formatURL格式化后,会自动生成为\"aaa/bb.png?v=99\"的一个地址*/\r\n static version: any = {};\r\n /**@private */\r\n private _url: string;\r\n /**@private */\r\n private _path: string;\r\n /**兼容微信不支持加载scene后缀场景,设置为true,则会把scene加载替换为json*/\r\n static exportSceneToJson: boolean = false;\r\n\r\n /**创建一个新的 URL 实例。*/\r\n constructor(url: string) {\r\n this._url = URL.formatURL(url);\r\n this._path = URL.getPath(url);\r\n }\r\n\r\n /**格式化后的地址。*/\r\n get url(): string {\r\n return this._url;\r\n }\r\n\r\n /**地址的文件夹路径(不包括文件名)。*/\r\n get path(): string {\r\n return this._path;\r\n }\r\n\r\n /**@internal 基础路径。如果不设置,默认为当前网页的路径。最终地址将被格式化为 basePath+相对URL地址,*/\r\n static _basePath: string = \"\";\r\n /**root路径。只针对'~'类型的url路径有效*/\r\n static rootPath: string = \"\";\r\n /** 自定义URL格式化的方式。例如: customFormat = function(url:String):String{} */\r\n\r\n static customFormat: Function = function (url: string): string {\r\n var newUrl: string = URL.version[url];\r\n if (!((window)).conch && newUrl) url += \"?v=\" + newUrl;\r\n return url;\r\n }\r\n\r\n /**\r\n * 格式化指定的地址并返回。\r\n * @param\turl 地址。\r\n * @param\tbase 基础路径,如果没有,则使用basePath。\r\n * @return\t格式化处理后的地址。\r\n */\r\n static formatURL(url: string): string {\r\n if (!url) return \"null path\";\r\n //如果是全路径,直接返回,提高性能\r\n if (url.indexOf(\":\") > 0) return url;\r\n //自定义路径格式化\r\n if (URL.customFormat != null) url = URL.customFormat(url);\r\n //如果是全路径,直接返回,提高性能\r\n if (url.indexOf(\":\") > 0) return url;\r\n\r\n var char1: string = url.charAt(0);\r\n if (char1 === \".\") {\r\n return URL._formatRelativePath(URL._basePath + url);\r\n } else if (char1 === '~') {\r\n return URL.rootPath + url.substring(1);\r\n } else if (char1 === \"d\") {\r\n if (url.indexOf(\"data:image\") === 0) return url;\r\n } else if (char1 === \"/\") {\r\n return url;\r\n }\r\n return URL._basePath + url;\r\n }\r\n\r\n /**\r\n * @internal\r\n * 格式化相对路径。\r\n */\r\n static _formatRelativePath(value: string): string {\r\n var parts: any[] = value.split(\"/\");\r\n for (var i: number = 0, len: number = parts.length; i < len; i++) {\r\n if (parts[i] == '..') {\r\n parts.splice(i - 1, 2);\r\n i -= 2;\r\n }\r\n }\r\n return parts.join('/');\r\n }\r\n\r\n /**\r\n * 获取指定 URL 的文件夹路径(不包括文件名)。\r\n *

注意:末尾有斜杠(/)。

\r\n * @param\turl url地址。\r\n * @return 返回文件夹路径。\r\n */\r\n static getPath(url: string): string {\r\n var ofs: number = url.lastIndexOf('/');\r\n return ofs > 0 ? url.substr(0, ofs + 1) : \"\";\r\n }\r\n\r\n /**\r\n * 获取指定 URL 的文件名。\r\n * @param\turl 地址。\r\n * @return \t返回文件名。\r\n */\r\n static getFileName(url: string): string {\r\n var ofs: number = url.lastIndexOf('/');\r\n return ofs > 0 ? url.substr(ofs + 1) : url;\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n private static _adpteTypeList: any[] = [[\".scene3d\", \".json\"], [\".scene\", \".json\"], [\".taa\", \".json\"], [\".prefab\", \".json\"]];\r\n /**\r\n * @private 兼容微信\r\n */\r\n\r\n static getAdptedFilePath(url: string): string {\r\n if (!URL.exportSceneToJson || !url) return url;\r\n var i: number, len: number;\r\n len = URL._adpteTypeList.length;\r\n var tArr: any[];\r\n for (i = 0; i < len; i++) {\r\n tArr = URL._adpteTypeList[i];\r\n url = url.replace(tArr[0], tArr[1]);\r\n }\r\n return url;\r\n }\r\n}","import { s1016, s1006, s1021, p_buff } from '../../../proto/proto';\r\nimport { pt_int32 } from '../../../proto/protoRoute';\r\nimport { dataUser } from '../../gameData/dataUser';\r\nimport { GameModleComp } from '../../../game/GameModle';\r\nimport { dataBuff, buffEffect } from '../../gameData/dataBuff';\r\nimport { GlobalFunction } from '../common/GlobalFunction';\r\nimport { Logger } from '../../../../core/common/log/Logger';\r\nimport { EventManager, EventType } from '../../../core/manager/EventManager';\r\nimport { SoundManager } from '../../../core/utils/SoundManager';\r\n\r\n// 支持s1016更新玩家数据的属性类型\r\nenum S1016_Type {\r\n PLAYER_ATTR_GOLD = 1, // 金币\r\n PLAYER_ATTR_COIN = 2, // 银币\r\n PLAYER_ATTR_DIAMOND = 3, // 钻石\r\n PLAYER_ATTR_MAGIC = 4, // 矩阵\r\n PLAYER_ATTR_CALL = 5, // 召唤券\r\n PLAYER_ATTR_CHALLENGE = 6, // 挑战券\r\n PLAYER_ATTR_PASS_ID = 7, // 通关id\r\n PLAYER_ATTR_STAR = 8, // 星钻\r\n PLAYER_ATTR_POWER = 9, // 总战力\r\n PLAYER_ATTR_RES = 10, // 头像\r\n PLAYER_ATTR_FRAME = 11, // 头像边框\r\n PLAYER_ATTR_NAME = 12, //名字\r\n PLAYER_ATTR_CHANGENAME = 101, //修改名字次数\r\n}\r\n\r\nexport function do_s1016(s1016: s1016) {\r\n let value = pt_int32(s1016.attr_value);\r\n switch (s1016.attr_type) {\r\n case S1016_Type.PLAYER_ATTR_GOLD:\r\n if(value > dataUser.Instance().gold){\r\n SoundManager.getInstance().playEffectMusic(\"Gold\");\r\n }\r\n dataUser.Instance().up_data({ gold: value });\r\n EventManager.Inst.event(EventType.UPDATE_TITLE_UI);\r\n break;\r\n case S1016_Type.PLAYER_ATTR_COIN:\r\n dataUser.Instance().up_data({ coin: value });\r\n EventManager.Inst.event(EventType.UPDATE_TITLE_UI);\r\n break;\r\n case S1016_Type.PLAYER_ATTR_DIAMOND:\r\n dataUser.Instance().up_data({ diamond: value });\r\n EventManager.Inst.event(EventType.UPDATE_TITLE_UI);\r\n break;\r\n case S1016_Type.PLAYER_ATTR_MAGIC:\r\n dataUser.Instance().up_data({ magic: value });\r\n break;\r\n case S1016_Type.PLAYER_ATTR_CALL:\r\n dataUser.Instance().up_data({ call: value });\r\n EventManager.Inst.event(EventType.UPDATE_TITLE_UI);\r\n break;\r\n case S1016_Type.PLAYER_ATTR_CHALLENGE:\r\n dataUser.Instance().up_data({ challenge: value });\r\n break;\r\n case S1016_Type.PLAYER_ATTR_PASS_ID:\r\n dataUser.Instance().up_data({ passId: value });\r\n break; \r\n case S1016_Type.PLAYER_ATTR_STAR:\r\n dataUser.Instance().up_data({ star: value });\r\n EventManager.Inst.event(EventType.UPDATE_TITLE_UI);\r\n break; \r\n case S1016_Type.PLAYER_ATTR_POWER:\r\n dataUser.Instance().up_data({ power: value });\r\n EventManager.Inst.event(EventType.UPDATE_ALLPOWER_MAIN_CHANGE);\r\n break; \r\n case S1016_Type.PLAYER_ATTR_RES:\r\n dataUser.Instance().up_data({ resId: value });\r\n break; \r\n case S1016_Type.PLAYER_ATTR_FRAME:\r\n dataUser.Instance().up_data({ frameId: value });\r\n break; \r\n case S1016_Type.PLAYER_ATTR_CHANGENAME:\r\n dataUser.Instance().up_data({nickChangeTime: value });\r\n break; \r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function do_s1006(s1006: s1006) {\r\n GameModleComp.getInstance().serverTime = s1006.unixTime;\r\n}\r\nexport function do_s1021(s1021: s1021) {\r\n Logger.logModel(\"战斗数据:\" + s1021);\r\n dataBuff.Instance().allBuff = p_buff_to_buffEffect(s1021.allBuff);\r\n dataBuff.Instance().heroBuff = p_buff_to_buffEffect(s1021.heroBuff);\r\n dataBuff.Instance().allArmyBuff = p_buff_to_buffEffect(s1021.allArmyBuff);\r\n dataBuff.Instance().zhanShiBuff = p_buff_to_buffEffect(s1021.zhanShiBuff);\r\n dataBuff.Instance().faShiBuff = p_buff_to_buffEffect(s1021.faShiBuff);\r\n dataBuff.Instance().ciKeBuff = p_buff_to_buffEffect(s1021.ciKeBuff);\r\n dataBuff.Instance().paoShouBuff = p_buff_to_buffEffect(s1021.paoShouBuff);\r\n dataBuff.Instance().heroSkillCdSub = s1021.heroSkillCd;\r\n\r\n EventManager.Inst.event(EventType.HERO_ATT_CHANGE);\r\n\r\n}\r\nfunction p_buff_to_buffEffect(buff:p_buff):buffEffect{\r\n var buffEff:buffEffect = new buffEffect();\r\n var fun:Function = GlobalFunction.ConvertUndefinedToNumber;\r\n\r\n buffEff.atkValue = fun(buff.atkValue);\r\n buffEff.defValue = fun(buff.defValue);\r\n buffEff.hpValue = fun(buff.hpValue);\r\n buffEff.atkRate = fun(buff.atkRate);\r\n buffEff.defRate = fun(buff.defRate);\r\n buffEff.hpRate = fun(buff.hpRate);\r\n buffEff.hurtRate = fun(buff.hurtRate);\r\n buffEff.skillHurtRate = fun(buff.skillHurtRate);\r\n buffEff.baoJiRate = fun(buff.baoJiRate);\r\n buffEff.baoJiHurtRate = fun(buff.baoJiHurtRate);\r\n buffEff.mingZhongRate = fun(buff.mingRate);\r\n buffEff.zhiLiaoRate = fun(buff.zhiRate);\r\n buffEff.deHurtRate = fun(buff.deHurtRate);\r\n buffEff.deBaoJiRate = fun(buff.deBaoJiRate);\r\n buffEff.deShanBiRate = fun(buff.deShanRate);\r\n buffEff.deJianLiaoRate = fun(buff.deZhiRate);\r\n\r\n return buffEff;\r\n}\r\n","import { _decorator, Asset, AssetManager, Sprite, Vec2, Rect, Vec3, Node, sys, find, assetManager } from 'cc';\r\nimport { log, Texture2D, SpriteFrame, easing, UITransform, instantiate, size, view, director, screen } from 'cc';\r\nimport { GameManager } from \"../../modules/GameManager\";\r\nimport WindowManager from \"../manager/WindowManager\";\r\nimport BigNumber from \"./BigNumber\";\r\nimport { Shake } from \"./Shake\";\r\nimport CryptoES from \"crypto-es\";\r\nimport {tween, Tween, v3, sp} from \"cc\";\r\nimport { Logger } from '../../../core/common/log/Logger';\r\nimport { Long } from '../../proto/proto';\r\nimport { UiRole } from '../../role/UiRole';\r\nimport ResHelper from '../manager/ResHelper';\r\nimport { GameModleComp } from '../../game/GameModle';\r\nimport { Pass, PassPoxy } from '../../modules/game/proxy/PassPoxy';\r\nimport { MapPoxy, Maps } from '../../modules/game/proxy/MapPoxy';\r\n\r\nabstract class IAsset extends Asset {\r\n}\r\n\r\nexport default class Utils {\r\n private static _guid: string = \"\";\r\n public static guid() {\r\n if (this._guid != \"\") return this._guid;\r\n\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n\r\n var uid = sys.localStorage.getItem(\"uid\");\r\n if (!uid) {\r\n uid = (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\r\n sys.localStorage.setItem(\"uid\", uid);\r\n }\r\n this._guid = uid;\r\n return uid;\r\n }\r\n public static AngleToRadian = Math.PI / 180;\r\n public static RadianToAngle = 180 / Math.PI;\r\n public static loadingCount = {};\r\n public static randomItem(array: Array) {\r\n if (array && array.length > 0) {\r\n return array[this.getRandomInt(0, array.length)];\r\n } else {\r\n return null;\r\n }\r\n }\r\n // //检查是否同一天\r\n public static checkIsToDay(s: number): boolean {\r\n var date = new Date(s * 1000);\r\n var dateNow = new Date(GameManager.Instance().NowSecond() * 1000);\r\n let bSameDay = false;\r\n\r\n if (date.getFullYear() == dateNow.getFullYear() &&\r\n date.getMonth() == dateNow.getMonth() &&\r\n date.getDate() == dateNow.getDate()\r\n ) {\r\n bSameDay = true;\r\n }\r\n return bSameDay;\r\n }\r\n public static getRandom(lower, upper): number {\r\n return Math.random() * (upper - lower) + lower;\r\n };\r\n\r\n public static getRandomInt(lower, upper): number {\r\n return Math.floor(Math.random() * (upper - lower)) + lower;\r\n };\r\n\r\n public static formatNumber(num: number, afterdot: number = 1) {\r\n num = Math.floor(num);\r\n if (num < 10000) return num.toString()\r\n return BigNumber.getLargeString(num);\r\n };\r\n\r\n public static nFormatter(num: number, digits: number = 0) {\r\n const si = [\r\n { value: 1, symbol: \"\" },\r\n { value: 1E3, symbol: \"K\" },\r\n { value: 1E6, symbol: \"M\" },\r\n { value: 1E9, symbol: \"G\" },\r\n { value: 1E12, symbol: \"T\" },\r\n { value: 1E15, symbol: \"P\" },\r\n { value: 1E18, symbol: \"E\" }\r\n ];\r\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\r\n let i;\r\n for (i = si.length - 1; i > 0; i--) {\r\n if (num >= si[i].value) {\r\n break;\r\n }\r\n }\r\n return (num / si[i].value).toFixed(digits).replace(rx, \"$1\") + si[i].symbol;\r\n }\r\n public static Shake(duration: number, strength_x: number, strength_y: number) {\r\n let camera = find(\"Canvas/Main Camera\");\r\n camera.setPosition(v3(0,0));\r\n Tween.stopAllByTarget(camera);\r\n //camera.stopAllActions();\r\n tween(camera).delay(duration).call(() =>{Shake.create(duration, strength_x, strength_y)});\r\n// camera.runAction(Shake.create(duration, strength_x, strength_y));\r\n }\r\n static formatDate(t) {\r\n var date = new Date(t);\r\n var YY = date.getFullYear() + '-';\r\n var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';\r\n var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());\r\n var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';\r\n var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) //+ ':';\r\n // var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());\r\n return YY + MM + DD + \" \" + hh + mm //+ ss;\r\n }\r\n // //获取今日日期字符串\r\n public static get TodayDataStr() {\r\n var date = new Date(GameManager.Instance().NowSecond() * 1000);\r\n var YY = date.getFullYear() + '-';\r\n var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';\r\n var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());\r\n return YY + MM + DD\r\n }\r\n public static getTimeStrByS(second: number, zh: boolean = false, longStr = false) {\r\n second = Math.floor(second);\r\n if (second < 0) second = 0;\r\n var d = Math.floor(second / 3600 / 24);\r\n second -= d * 3600 * 24;\r\n var h = Math.floor(second / 3600);\r\n second -= h * 3600;\r\n var m = Math.floor(second / 60);\r\n second -= m * 60;\r\n var front = \"00\";\r\n if (h > 9) {\r\n front = \"\" + h;\r\n } else {\r\n front = \"0\" + h;\r\n }\r\n var mid = \"00\";\r\n if (m > 9) {\r\n mid = \"\" + m;\r\n } else {\r\n mid = \"0\" + m;\r\n }\r\n var back = \"00\";\r\n if (second > 9) {\r\n back = \"\" + second;\r\n } else {\r\n back = \"0\" + second;\r\n }\r\n\r\n if (zh) {\r\n if (d > 0) {\r\n return d + \"天\" + h + \"时\" + m + \"分\";\r\n }\r\n else {\r\n var longTime = h > 0;\r\n if (longTime) {\r\n return front + \"时\" + mid + \"分\";\r\n } else {\r\n return mid + \"分\" + back + '秒';\r\n }\r\n }\r\n }\r\n else {\r\n if (d > 0) {\r\n return d + \"天\" + h + \"时\" + m + \"分\";\r\n }\r\n else {\r\n var longTime = h > 0;\r\n if (longTime) {\r\n if (longStr) {\r\n return front + \":\" + mid + \":\" + back;\r\n } else {\r\n return front + \":\" + mid;\r\n }\r\n } else {\r\n return mid + \":\" + back;//+ '秒';\r\n }\r\n }\r\n }\r\n }\r\n public static dirBundle(){\r\n let bundle = assetManager.getBundle(\"resources\");\r\n bundle.loadDir(\"map\", (err, assets)=> {\r\n });\r\n bundle.loadDir(\"spineRes\", (err, assets)=> {\r\n });\r\n }\r\n public static loadBundle(bundleName: string) {\r\n return new Promise((resolve, reject) => {\r\n let b = assetManager.getBundle(bundleName);\r\n if (b != null) {\r\n resolve(b);\r\n return;\r\n }\r\n assetManager.loadBundle(bundleName, (error, bundle: AssetManager.Bundle) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n resolve(bundle);\r\n })\r\n })\r\n }\r\n public static getBundle(bundleName: string) {\r\n return assetManager.getBundle(bundleName);\r\n }\r\n public static releaseAssets(assetsMap: { [key: string]: Asset[] }) {\r\n for (var k in assetsMap) {\r\n let bundleCache = this.resCache[k] || {};\r\n let asstes = assetsMap[k];\r\n asstes.forEach(asset => {\r\n if (bundleCache[asset['path']] != null) {\r\n delete bundleCache[asset['path']];\r\n return;\r\n }\r\n assetManager.releaseAsset(asset);\r\n })\r\n }\r\n }\r\n public static releaseBundle(bundleName: string) {\r\n let b = assetManager.getBundle(bundleName);\r\n if (b != null) {\r\n b.releaseAll();\r\n assetManager.removeBundle(b);\r\n delete this.resCache[bundleName];\r\n return;\r\n }\r\n }\r\n public static resCache: { [key: string]: { [key: string]: any } } = {};\r\n public static loadRes(path: string, bundleName: string, type: typeof IAsset, onComplete: (error: Error, assets: T) => void, onProgress?: (finish: number, total: number, item: AssetManager.RequestItem) => void,) {\r\n if (this.resCache[bundleName] !== undefined && this.resCache[bundleName][path] !== undefined) {\r\n onComplete(null, this.resCache[bundleName][path])\r\n return;\r\n }\r\n let bundle = assetManager.getBundle(bundleName);\r\n this.resCache[bundleName] = this.resCache[bundleName] || [];\r\n if (bundle != null) {\r\n bundle.load(path, type as typeof Asset, (onProgress == null) ? (() => { }) : onProgress, (e, res: T) => {\r\n if (e == null) {\r\n this.resCache[bundleName][path] = res;\r\n res['path'] = path;\r\n } else {\r\n console.warn(e);\r\n }\r\n onComplete(e, res)\r\n });\r\n return;\r\n }\r\n assetManager.loadBundle(bundleName, (error, bundle: AssetManager.Bundle) => {\r\n if (error) {\r\n log(error)\r\n return\r\n }\r\n bundle.load(path, type as typeof Asset, (onProgress == null) ? (() => { }) : onProgress, (e, res: T) => {\r\n if (e != null) {\r\n console.error(e);\r\n } else {\r\n this.resCache[bundleName][path] = res;\r\n res['path'] = path;\r\n }\r\n onComplete(e, res)\r\n })\r\n })\r\n }\r\n public static loadResSync(path: string, bundleName: string, type: typeof IAsset) {\r\n return new Promise((resolve, rejcet) => {\r\n this.loadRes(path, bundleName, type, (e, res) => {\r\n if (e) {\r\n console.warn(path, \"未找到\")\r\n resolve(null);\r\n }\r\n resolve(res);\r\n })\r\n })\r\n }\r\n public static loadReses(paths: string[], bundleName: string, type: typeof IAsset, onComplete: (error: Error, assets: T[]) => void, onProgress?: (finish: number, total: number, item: AssetManager.RequestItem) => void,) {\r\n let needPaths: string[];\r\n if (this.resCache[bundleName] !== undefined) {\r\n needPaths = [];\r\n let bundleCache = this.resCache[bundleName];\r\n paths.forEach(p => {\r\n if (bundleCache[p] === undefined) {\r\n needPaths.push(p);\r\n }\r\n })\r\n } else {\r\n needPaths = paths;\r\n this.resCache[bundleName] = [];\r\n }\r\n if (needPaths.length == 0) {\r\n let bundleCache = this.resCache[bundleName];\r\n let rs = [];\r\n paths.forEach(p => {\r\n rs.push(bundleCache[p]);\r\n })\r\n GameManager.Instance().timer.frameOnce(1, this, () => {\r\n onComplete(null, rs)\r\n })\r\n return;\r\n }\r\n this.loadBundle(bundleName).then(bundle => {\r\n bundle.load(needPaths, type as typeof Asset, (onProgress == null) ? (() => { }) : onProgress, (e, rets) => {\r\n if (e != null) {\r\n onComplete(e, null);\r\n return;\r\n }\r\n let bundleCache = this.resCache[bundleName];\r\n for (let i = 0; i < needPaths.length; i++) {\r\n bundleCache[needPaths[i]] = rets[i];\r\n rets[i]['path'] = needPaths[i];\r\n }\r\n let rs = [];\r\n paths.forEach(p => {\r\n rs.push(bundleCache[p]);\r\n })\r\n onComplete(e, rs)\r\n })\r\n })\r\n }\r\n public static getRes(path: string, bundleName: string, type: typeof IAsset, useCache = true) {\r\n if (useCache) {\r\n\r\n if (this.resCache[bundleName] !== undefined && this.resCache[bundleName][path] !== undefined) {\r\n return this.resCache[bundleName][path];\r\n }\r\n }\r\n return assetManager.getBundle(bundleName).get(path, type as typeof Asset) as T\r\n }\r\n public static releaseAssetByName(bundleName: string, path: string) {\r\n\r\n }\r\n // //战斗外加载资源\r\n public static loadResUIOnly(path: string, bundleName: string, type: typeof IAsset, onComplete: (error: Error, assets: T) => void, onProgress?: (finish: number, total: number, item: AssetManager.RequestItem) => void,) {\r\n // if(bundleName != \"resources\"){\r\n // return;\r\n // }\r\n this.loadingCount[path]++;\r\n let bundle = assetManager.getBundle(bundleName);\r\n if (bundle != null) {\r\n bundle.load(path, type as typeof Asset, (onProgress == null) ? (() => { }) : onProgress, (e, res: T) => {\r\n if(e)\r\n console.error(\"loadResUIOnly failed,path:\",path, \",bundleName:\", bundleName, \"error:\", e, \"res:\",res);\r\n this.loadingCount[path]--;\r\n onComplete(e, res)\r\n });\r\n return;\r\n }\r\n\r\n assetManager.loadBundle(bundleName, (error, bundle: AssetManager.Bundle) => {\r\n if (error) {\r\n console.error(\"loadBundle in loadResUIOnly failed, path:\",path, \",bundleName:\", bundleName, \"error:\", error);\r\n return\r\n }\r\n bundle.load(path, type as typeof Asset, (onProgress == null) ? (() => { }) : onProgress, (e, res: T) => {\r\n if(e)\r\n console.error(\"loadResUIOnly failed,path:\",path, \",bundleName:\", bundleName, \"error:\", e, \"res:\",res);\r\n this.loadingCount[path]--;\r\n onComplete(e, res)\r\n })\r\n })\r\n }\r\n // //战斗外获取资源\r\n public static getResUIOnly(path: string, bundleName: string, type: typeof IAsset) {\r\n if(bundleName != \"resource\"){\r\n return;\r\n }\r\n if (this.resCache[bundleName] !== undefined && this.resCache[bundleName][path] !== undefined) {\r\n return this.resCache[bundleName][path];\r\n }\r\n return assetManager.getBundle(bundleName).get(path, type as typeof Asset) as T\r\n }\r\n public static weight(v: number[]): number {\r\n var mTotalWeight = 0;\r\n for (var i = 0; i < v.length; ++i) {\r\n mTotalWeight += v[i];\r\n }\r\n if (mTotalWeight <= 0) return -1;\r\n var randnum = Math.round(Math.random() * Number.MAX_VALUE) % mTotalWeight;\r\n for (var i = 0; i < v.length; ++i) {\r\n if (randnum < v[i]) {\r\n return i;\r\n }\r\n else {\r\n randnum -= v[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n public static shuffle(arr) {\r\n for (let i = arr.length - 1; i >= 0; i--) {\r\n let rIndex = Math.floor(Math.random() * (i + 1));\r\n let temp = arr[rIndex];\r\n arr[rIndex] = arr[i];\r\n arr[i] = temp;\r\n }\r\n return arr;\r\n }\r\n // /**注意自定义shader覆盖为内置shader bug */\r\n static setGray(icon: Sprite, isGray: boolean) {\r\n // TODO 没有找到3.x的替代函数\r\n // if (isGray) {\r\n // icon.setSharedMaterial(Material.getBuiltinMaterial('2d-gray-sprite'), 0);\r\n // } else {\r\n // icon.setSharedMaterial(Material.getBuiltinMaterial('2d-sprite'), 0);\r\n // }\r\n }\r\n static setSpriteFrame(sp: Sprite, path: string, bundle: string = 'resources', callback = null): void {\r\n let loader = assetManager.getBundle(bundle)\r\n loader.load(path, Texture2D, (error, assets: Texture2D) => {\r\n if (error) {\r\n log('error', path)\r\n return\r\n }\r\n sp.spriteFrame = new SpriteFrame()\r\n sp.spriteFrame.texture = assets;\r\n callback && callback()\r\n })\r\n }\r\n // /*最远轴距离 */\r\n public static GetFastAxisDist(a: Vec2, b: Vec2) {\r\n return Math.max(Math.abs(a.x - b.x), Math.abs(a.y - b.y));\r\n }\r\n public static RectContainsCircle(rect: Rect, p: Vec2, radius: number) {\r\n return (p.x + radius >= rect.xMin && p.x - radius <= rect.xMax && p.y + radius >= rect.yMin && p.y - radius <= rect.yMax)\r\n }\r\n public static vectorAngle(ma: Vec3, mb: Vec3) {\r\n var v1 = (ma.x * mb.x) + (ma.y * mb.y) + (ma.z * mb.z);\r\n var ma_val = Math.sqrt(ma.x * ma.x + ma.y * ma.y + ma.z * ma.z);\r\n var mb_val = Math.sqrt(mb.x * mb.x + mb.y * mb.y + mb.z * mb.z);\r\n var cosM = v1 / (ma_val * mb_val);\r\n if (cosM < -1) cosM = -1;\r\n if (cosM > 1) cosM = 1;\r\n var angleAMB = Math.acos(cosM) * 180 / Math.PI;\r\n let fh = ma.x > mb.x ? 1 : -1;\r\n return fh * angleAMB;\r\n };\r\n\r\n public static RandomSmart(min: number, max: number) {\r\n let r = Math.random();\r\n r = easing.quadIn(r);\r\n return min + (max - min) * r;\r\n }\r\n public static compareVersion(v1: string, v2: string) {\r\n let v1s = v1.split(\".\");\r\n let v2s = v2.split(\".\");\r\n const len = Math.max(v1s.length, v1s.length);\r\n while (v1s.length < len) {\r\n v1s.push(\"0\");\r\n }\r\n while (v2s.length < len) {\r\n v2s.push(\"0\");\r\n }\r\n for (let i = 0; i < len; i++) {\r\n const num1 = parseInt(v1s[i]);\r\n const num2 = parseInt(v2s[i]);\r\n if (num1 > num2) {\r\n return 1;\r\n }\r\n if (num1 < num2) {\r\n return -1;\r\n }\r\n }\r\n return 0;\r\n }\r\n public static showReardAniJump(prefab: Node, count: number, endNode: Node) {\r\n let parent = WindowManager.Instance().getWinContainer()\r\n let endpos: Vec3 = endNode.parent.getComponent(UITransform).convertToWorldSpaceAR(endNode.position);\r\n endpos = parent.getComponent(UITransform).convertToNodeSpaceAR(endpos)\r\n\r\n for (var i = 0; i < count; ++i) {\r\n setTimeout(() => {\r\n let node: Node = instantiate(prefab);\r\n parent.addChild(node);\r\n node.setPosition(this.getRandomInt(-50, 50), this.getRandomInt(0, 100), 0);\r\n let h1 = this.getRandomInt(80, 120)\r\n let h2 = this.getRandomInt(50, 80)\r\n\r\n tween(node).by(1, {position: v3(0, h1)}).by(1, {position: v3(0, -h1)}).by(1, {position: v3(0, h2)}).\r\n by(1, {position: v3(0, -h2)}).to(1, {position: v3(0, endpos.x, endpos.y)}).start();\r\n// node.runAction(sequence(moveBy(0, h1), moveBy(0, -h1), moveBy(0, h2), moveBy(0, -h2), moveTo(endpos.x, endpos.y), removeSelf(true)))\r\n }, i * 100);\r\n }\r\n }\r\n public static showReardAni(prefab: Node, count: number, endNode: Node, soundid: number) {\r\n let parent = WindowManager.Instance().getWinContainer()\r\n let endpos: Vec3 = endNode.parent.getComponent(UITransform).convertToWorldSpaceAR(endNode.position);\r\n endpos = parent.getComponent(UITransform).convertToNodeSpaceAR(endpos)\r\n\r\n for (var i = 0; i < count; ++i) {\r\n let node: Node = instantiate(prefab);\r\n parent.addChild(node);\r\n\r\n node.setPosition(Utils.getRandomInt(-100, 100), Utils.getRandomInt(-100, 100), 0);\r\n\r\n node.setScale(0.2, 0.2, 0.2);\r\n tween(node).to(0.1, { scale: v3(1.5, 1.5, 1.5) }).delay(0.2 + i * 0.05).to(.4, { position: v3(endpos.x,endpos.y) }).call(() => {\r\n tween(endNode).to(0.1, { scale: v3(1.1, 1.1, 1.1) }).to(0.1, { scale: v3(0.9, 0.9, 0.9) }).to(0.1, { scale: v3(1, 1, 1) }).start();\r\n }).removeSelf().start()\r\n\r\n }\r\n }\r\n public static Utf8ArrayToStr(e: Uint8Array): string {\r\n var r, a, t, n;\r\n var o, i;\r\n r = \"\";\r\n t = e.length;\r\n a = 0;\r\n while (a < t) {\r\n n = e[a++];\r\n switch (n >> 4) {\r\n case 0:\r\n case 1:\r\n case 2:\r\n case 3:\r\n case 4:\r\n case 5:\r\n case 6:\r\n case 7:\r\n r += String.fromCharCode(n);\r\n break;\r\n case 12:\r\n case 13:\r\n o = e[a++];\r\n r += String.fromCharCode((n & 31) << 6 | o & 63);\r\n break;\r\n case 14:\r\n o = e[a++];\r\n i = e[a++];\r\n r += String.fromCharCode((n & 15) << 12 | (o & 63) << 6 | (i & 63) << 0);\r\n break\r\n }\r\n }\r\n return r\r\n };\r\n\r\n\r\n /**\r\n * @param skinName 要替换的部件皮肤名称\r\n * @param slotName 要替换的部件的插槽名称\r\n * @param targetAttaName Spine中皮肤占位符的名字\r\n */\r\n public static changeSlot(spine: sp.Skeleton, skinName: string, slotName: string, targetAttaName: string) {\r\n if (skinName == null) return;\r\n //查找局部皮肤\r\n let skeletonData = spine.skeletonData.getRuntimeData();\r\n let targetSkin: sp.spine.Skin = skeletonData.findSkin(skinName);\r\n if (!targetSkin) return;\r\n\r\n //查找局部皮肤下的插槽与附件\r\n let targetSkinSlotIndex = skeletonData.findSlotIndex(slotName);\r\n let atta = targetSkin.getAttachment(targetSkinSlotIndex, targetAttaName);\r\n\r\n //查找全身皮肤下的插槽\r\n let curSlot = spine.findSlot(slotName);\r\n\r\n //替换全身皮肤插槽的附件\r\n if (curSlot) curSlot.setAttachment(atta);\r\n }\r\n static getTexGPUMemory() {\r\n let textureMem = 0;\r\n // let list = []\r\n let assets = assetManager.assets\r\n assets.forEach((asset, key) => {\r\n if (asset && asset instanceof Texture2D && asset.isValid) {\r\n // 显存估计量\r\n\r\n const bytes = asset.getPixelFormat() == Texture2D.PixelFormat.RGBA8888 ? 4 : 3;\r\n let total = (asset.width * asset.height * bytes)\r\n textureMem += total;\r\n // list.push({ uid: asset, value: total / (1024 * 1024) })\r\n }\r\n })\r\n // if (dynamicAtlasManager.enabled) {\r\n // let total = dynamicAtlasManager.textureSize * dynamicAtlasManager.textureSize * 4;\r\n // textureMem += total * dynamicAtlasManager.atlasCount;\r\n // }\r\n return textureMem / (1024 * 1024);\r\n }\r\n\r\n static createAuthorizeBtn(btnNode: Node, callback: Function): any {\r\n let wx = window['wx']\r\n if (!wx) return null;\r\n Logger.logView(\"createAuthorizeBtn\")\r\n let btnSize = size(btnNode.getComponent(UITransform).width, btnNode.getComponent(UITransform).height);\r\n let frameSize = view.getViewportRect().size;\r\n let winSize = screen.windowSize;\r\n\r\n let left = (winSize.width * 0.5 + btnNode.position.x - btnSize.width * 0.5) / winSize.width * frameSize.width;\r\n let top = (winSize.height * 0.5 - btnNode.position.y - btnSize.height * 0.5) / winSize.height * frameSize.height;\r\n let width = btnSize.width / winSize.width * frameSize.width;\r\n let height = btnSize.height / winSize.height * frameSize.height;\r\n var wxButton = wx.createUserInfoButton({\r\n type: 'text',\r\n text: '',\r\n style: {\r\n left: left,\r\n top: top,\r\n width: width,\r\n height: height,\r\n lineHeight: 20,\r\n backgroundColor: '',\r\n color: '#ffffff',\r\n textAlign: 'center',\r\n fontSize: 16,\r\n borderRadius: 4\r\n }\r\n });\r\n wxButton.onTap((uinfo) => {\r\n if (uinfo.userInfo) {\r\n\r\n var userInfo = uinfo.userInfo\r\n var nickName = userInfo.nickName\r\n var avatarUrl = userInfo.avatarUrl\r\n // GameManager.Instance().user.nickname = nickName;\r\n GameManager.Instance().user.avatarUrl = avatarUrl;\r\n // NetManager.setWxAvatar(avatarUrl, nickName);\r\n callback(true);\r\n // wx.showToast({ title: \"授权成功\" });\r\n Logger.logView(\"wxLogin auth succ\");\r\n } else {\r\n Logger.logView(\"wxLogin auth fail\");\r\n callback(false);\r\n // wx.showToast({ title: \"授权失败\" });\r\n }\r\n });\r\n return wxButton;\r\n }\r\n private static numberlist = [10, 3, 0, 20, 4, 0.1, 30, 5, 50, 9, 60, 70, 11, 132, 12, 0.25, 154, 14, 176, 16, 198, 18, 231,\r\n 21, 285, 25, 330, 380, 35, 450, 40, 8, 100, 0.12, 200, 15, 220, 275, 385, 440, 495, 45, 550, 0.36, 750, 1000,\r\n 1250, 120, 1500, 150, 0.20, 2, 24, 0.08, 7, 48, 56, 106, 123, 141, 13, 158, 185, 17, 0.24, 228, 264, 304, 28,\r\n 360, 32, 38, 53, 6, 75, 165, 206, 19, 248, 23, 289, 26, 371, 34, 413, 563, 938, 90, 1125, 113, 42, 49, 92, 0.50,\r\n 108, 139, 162, 266, 315, 0.10, 0.5, 0.48, 1, 0.15, 105, 0.4, 297, 347, 428, 570, 675, 300, 578, 660, 743, 825,\r\n 1875, 2250, 36, 72, 84, 159, 212, 237, 278, 342, 396, 456, 540, 57, 80, 0.2, 225, 309, 372, 434, 557, 620,\r\n 845, 1407, 1688, 63, 74, 138, 209, 243, 399, 473]\r\n private static bModifyMemory = false;\r\n private static lastChekMemoryTime = 0\r\n static chekModifyMemory() {\r\n\r\n if (this.bModifyMemory) return\r\n if (Date.now() - this.lastChekMemoryTime < 60 * 1000) return\r\n this.lastChekMemoryTime = Date.now();\r\n\r\n this.numberlist = Utils.shuffle(this.numberlist)\r\n var sum = 0;\r\n for (var i = 0; i < this.numberlist.length; ++i) {\r\n sum += this.numberlist[i];\r\n }\r\n\r\n this.bModifyMemory = sum.toFixed(2) != Number(\"39\" + \"0\" + \"18\" + \".68\").toFixed(2);\r\n Logger.logView(this.bModifyMemory ? \"发现作弊\" : \"沒有作弊\")\r\n }\r\n\r\n public static md5(str:string){\r\n return CryptoES.MD5(str).toString();\r\n }\r\n\r\n\r\n public static IDHead:number = 0;\r\n public static IDBuildHead:number = 0;\r\n public static AddId():string{\r\n Utils.IDHead++;\r\n return \"role\" + Utils.IDHead;\r\n }\r\n public static AddBuildId():string{\r\n Utils.IDBuildHead++;\r\n return \"build\" + Utils.IDBuildHead;\r\n }\r\n\r\n\r\n}\r\n\r\nexport function IsLongEqual(v1:Long, v2:Long):boolean{\r\n return v1!=undefined && v2 !=undefined && (v1.high == v2.high) && (v1.low == v2.low) && (v1.unsigned == v2.unsigned);\r\n}","import { Vec3 , macro} from \"cc\";\r\nimport { MathUtil } from \"./MathUtil\";\r\nimport { Mat4 } from \"cc\";\r\n\r\n/** 向量工具 */\r\nexport class Vec3Util {\r\n /**\r\n * X轴\r\n */\r\n static get x(): Readonly {\r\n return new Vec3(1, 0, 0);\r\n }\r\n\r\n /**\r\n * Y轴\r\n */\r\n static get y(): Readonly {\r\n return new Vec3(0, 1, 0);\r\n }\r\n\r\n /**\r\n * Z轴\r\n */\r\n static get z(): Readonly {\r\n return new Vec3(0, 0, 1);\r\n }\r\n\r\n /**\r\n * 左向量\r\n */\r\n static get left(): Readonly {\r\n return new Vec3(-1, 0, 0);\r\n }\r\n\r\n /**\r\n * 右向量\r\n */\r\n static get right(): Readonly {\r\n return new Vec3(1, 0, 0);\r\n }\r\n\r\n /**\r\n * 上向量\r\n */\r\n static get up(): Readonly {\r\n return new Vec3(0, 1, 0);\r\n }\r\n\r\n /**\r\n * 下向量\r\n */\r\n static get down(): Readonly {\r\n return new Vec3(0, -1, 0);\r\n }\r\n\r\n /**\r\n * 前向量\r\n */\r\n static get forward(): Readonly {\r\n return new Vec3(0, 0, 1);\r\n }\r\n\r\n /**\r\n * 后向量\r\n */\r\n static get back(): Readonly {\r\n return new Vec3(0, 0, -1);\r\n }\r\n\r\n /**\r\n * 1向量\r\n */\r\n static get one(): Readonly {\r\n return new Vec3(1, 1, 1);\r\n }\r\n\r\n /**\r\n * 0向量\r\n */\r\n static get zero(): Readonly {\r\n return new Vec3(0, 0, 0);\r\n }\r\n\r\n /**\r\n * 随时间变化进度值\r\n * @param start 起始位置\r\n * @param end 结束位置\r\n * @param t 进度[0,1]\r\n */\r\n static progress(start: Vec3, end: Vec3, t: number): Vec3 {\r\n var current = new Vec3();\r\n current.x = MathUtil.progress(start.x, end.x, t);\r\n current.y = MathUtil.progress(start.y, end.y, t);\r\n current.z = MathUtil.progress(start.z, end.z, t);\r\n return current;\r\n }\r\n\r\n /**\r\n * 求两个三维向量的和\r\n * @param pos1 向量1\r\n * @param pos2 向量2\r\n */\r\n static add(pos1: Vec3, pos2: Vec3): Vec3 {\r\n var outPos: Vec3 = new Vec3();\r\n Vec3.add(outPos, pos1, pos2);\r\n return outPos;\r\n }\r\n\r\n /**\r\n * 求两个三维向量的差\r\n * @param pos1 向量1\r\n * @param pos2 向量2\r\n */\r\n static sub(pos1: Vec3, pos2: Vec3): Vec3 {\r\n var outPos: Vec3 = new Vec3();\r\n Vec3.subtract(outPos, pos1, pos2);\r\n return outPos;\r\n }\r\n\r\n /**\r\n * 三维向量乘以常量\r\n * @param pos 向量\r\n * @param scalar 常量\r\n */\r\n static mul(pos: Vec3, scalar: number): Vec3 {\r\n var outPos: Vec3 = new Vec3();\r\n Vec3.multiplyScalar(outPos, pos, scalar);\r\n return outPos;\r\n }\r\n\r\n /**\r\n * 三维向量除常量\r\n * @param pos 向量\r\n * @param scalar 常量\r\n */\r\n static div(pos: Vec3, scalar: number): Vec3 {\r\n var outPos: Vec3 = new Vec3();\r\n\r\n outPos.x = pos.x / scalar;\r\n outPos.y = pos.y / scalar;\r\n outPos.z = pos.z / scalar;\r\n\r\n return outPos;\r\n }\r\n\r\n /**\r\n * 判断两个三维向量的值是否相等\r\n * @param pos1 向量1\r\n * @param pos2 向量2\r\n */\r\n static equals(pos1: Vec3, pos2: Vec3): boolean {\r\n if (pos1.x == pos2.x && pos1.y == pos2.y && pos1.z == pos2.z) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * 三维向量的模\r\n * @param pos 向量\r\n */\r\n static magnitude(pos: Vec3): number {\r\n return pos.length();\r\n }\r\n\r\n /**\r\n * 三维向量归一化\r\n * @param pos 向量\r\n */\r\n static normalize(pos: Vec3): Vec3 {\r\n var outPos: Vec3 = new Vec3(pos.x, pos.y, pos.z);\r\n return outPos.normalize();\r\n }\r\n\r\n /**\r\n * 获得位置1,到位置2的方向\r\n * @param pos1 向量1\r\n * @param pos2 向量2\r\n */\r\n static direction(pos1: Vec3, pos2: Vec3): Vec3 {\r\n var outPos: Vec3 = new Vec3();\r\n Vec3.subtract(outPos, pos2, pos1)\r\n return outPos.normalize();\r\n }\r\n\r\n /**\r\n * 获得两点间的距离\r\n * @param pos1 向量1\r\n * @param pos2 向量2\r\n */\r\n static distance(pos1: Vec3, pos2: Vec3): number {\r\n return Vec3.distance(pos1, pos2);\r\n }\r\n\r\n /**\r\n * 插值运算\r\n * @param posStart 开始俏步\r\n * @param posEnd 结束位置\r\n * @param t 时间\r\n */\r\n static lerp(posStart: Vec3, posEnd: Vec3, t: number): Vec3 {\r\n return this.bezierOne(t, posStart, posEnd);\r\n }\r\n\r\n /**\r\n * 球面插值\r\n * @param from 起点\r\n * @param to 终点\r\n * @param t 时间\r\n */\r\n static slerp(from: Vec3, to: Vec3, t: number): Vec3 {\r\n if (t <= 0) {\r\n return from;\r\n }\r\n else if (t >= 1) {\r\n return to;\r\n }\r\n\r\n var dir: Vec3 = this.rotateTo(from, to, (Vec3.angle(from, to) / Math.PI * 180) * t);\r\n var lenght: number = to.length() * t + from.length() * (1 - t);\r\n\r\n return (dir.normalize()).multiplyScalar(lenght);\r\n }\r\n\r\n /**\r\n * 向量旋转一个角度\r\n * @param from 起点\r\n * @param to 终点\r\n * @param angle 角并\r\n */\r\n static rotateTo(from: Vec3, to: Vec3, angle: number): Vec3 {\r\n //如果两个方向角度为0,则返回目标\r\n if (Vec3.angle(from, to) == 0) {\r\n return to;\r\n }\r\n\r\n var axis: Vec3 = new Vec3() // 获得旋转轴\r\n Vec3.cross(axis, from, to);\r\n axis.normalize();\r\n\r\n var radian: number = angle * Math.PI / 180; // 获得弧度\r\n var rotateMatrix: Mat4 = new Mat4();\r\n rotateMatrix.rotate(radian, axis);\r\n\r\n return new Vec3(\r\n from.x * rotateMatrix.m00 + from.y * rotateMatrix.m04 + from.z * rotateMatrix.m08,\r\n from.x * rotateMatrix.m01 + from.y * rotateMatrix.m05 + from.z * rotateMatrix.m09,\r\n from.x * rotateMatrix.m02 + from.y * rotateMatrix.m06 + from.z * rotateMatrix.m10\r\n );\r\n }\r\n\r\n /**\r\n * 一次贝塞尔即为线性插值函数\r\n * @param t \r\n * @param posStart \r\n * @param posEnd \r\n * @returns \r\n */\r\n static bezierOne(t: number, posStart: Vec3, posEnd: Vec3): Vec3 {\r\n if (t > 1) {\r\n t = 1;\r\n }\r\n else if (t < 0) {\r\n t = 0\r\n }\r\n\r\n var pStart: Vec3 = posStart.clone();\r\n var pEnd: Vec3 = posEnd.clone();\r\n\r\n return pStart.multiplyScalar(1 - t).add(pEnd.multiplyScalar(t));\r\n }\r\n\r\n /**\r\n * 二次贝塞尔曲线\r\n * @param t \r\n * @param posStart \r\n * @param posCon \r\n * @param posEnd \r\n * @returns \r\n */\r\n static bezierTwo(t: number, posStart: Vec3, posCon: Vec3, posEnd: Vec3): Vec3 {\r\n if (t > 1) {\r\n t = 1;\r\n }\r\n else if (t < 0) {\r\n t = 0\r\n }\r\n\r\n var n = (1 - t);\r\n var tt = t * t;\r\n\r\n var pStart: Vec3 = posStart.clone();\r\n var pos = new Vec3();\r\n\r\n var pCon: Vec3 = posCon.clone();\r\n var pEnd: Vec3 = posEnd.clone();\r\n\r\n pos.add(pStart.multiplyScalar(n * n));\r\n pos.add(pCon.multiplyScalar(2 * n * t));\r\n pos.add(pEnd.multiplyScalar(tt));\r\n\r\n return pos;\r\n }\r\n\r\n /**\r\n * 三次贝塞尔\r\n * @param t \r\n * @param posStart \r\n * @param posCon1 \r\n * @param posCon2 \r\n * @param posEnd \r\n * @returns \r\n */\r\n static bezierThree(t: number, posStart: Vec3, posCon1: Vec3, posCon2: Vec3, posEnd: Vec3): Vec3 {\r\n if (t > 1) {\r\n t = 1;\r\n }\r\n else if (t < 0) {\r\n t = 0\r\n }\r\n\r\n var n = (1 - t);\r\n var nn = n * n;\r\n var nnn = nn * n;\r\n var tt = t * t;\r\n var ttt = tt * t;\r\n\r\n var pStart: Vec3 = posStart.clone();\r\n var pos = posStart.clone();\r\n\r\n var pCon1: Vec3 = posCon1.clone();\r\n var pCon2: Vec3 = posCon2.clone();\r\n var pEnd: Vec3 = posEnd.clone();\r\n\r\n pos.add(pStart.multiplyScalar(nnn));\r\n pos.add(pCon1.multiplyScalar(3 * nn * t));\r\n pos.add(pCon2.multiplyScalar(3 * n * tt));\r\n pos.add(pEnd.multiplyScalar(ttt));\r\n\r\n return pos;\r\n }\r\n\r\n /**\r\n * 点乘\r\n * @param dir1 方向量1\r\n * @param dir2 方向量2\r\n */\r\n static dot(dir1: Vec3, dir2: Vec3): number {\r\n var tempDir1: Vec3 = dir1;\r\n var tempDir2: Vec3 = dir2;\r\n\r\n return tempDir1.x * tempDir2.x + tempDir1.y * tempDir2.y + tempDir1.z * tempDir2.z;\r\n }\r\n\r\n /**\r\n * 叉乘\r\n * @param dir1 方向量1\r\n * @param dir2 方向量2\r\n */\r\n static cross(dir1: Vec3, dir2: Vec3): Vec3 {\r\n var i: Vec3 = new Vec3(1, 0, 0);\r\n var j: Vec3 = new Vec3(0, 1, 0);\r\n var k: Vec3 = new Vec3(0, 0, 1);\r\n\r\n var tempDir1: Vec3 = new Vec3(dir1.x, dir1.y, dir1.z);\r\n var tempDir2: Vec3 = new Vec3(dir2.x, dir2.y, dir2.z);\r\n\r\n var iv: Vec3 = i.multiplyScalar(tempDir1.y * tempDir2.z - tempDir2.y * tempDir1.z);\r\n var jv: Vec3 = j.multiplyScalar(tempDir2.x * tempDir1.z - tempDir1.x * tempDir2.z);\r\n var kv: Vec3 = k.multiplyScalar(tempDir1.x * tempDir2.y - tempDir2.x * tempDir1.y);\r\n\r\n return iv.add(jv).add(kv);\r\n }\r\n\r\n /**\r\n * 获得两个方向向量的角度\r\n * @param dir1 方向量1\r\n * @param dir2 方向量2\r\n */\r\n static angle(dir1: Vec3, dir2: Vec3): number {\r\n var dotValue = this.dot(dir1.clone().normalize(), dir2.clone().normalize());\r\n return Math.acos(dotValue) / Math.PI * 180 * Math.sign(dotValue);\r\n }\r\n\r\n /**\r\n * 获得方向a到方向b的角度(带有方向的角度)\r\n * @param a 角度a\r\n * @param b 角度b\r\n */\r\n static dirAngle(a: Vec3, b: Vec3): number {\r\n var c: Vec3 = Vec3Util.cross(a, b);\r\n var angle: number = Vec3Util.angle(a, b);\r\n // a 到 b 的夹角\r\n var sign = Math.sign(Vec3Util.dot(c.normalize(), Vec3Util.cross(b.normalize(), a.normalize())));\r\n\r\n return angle * sign;\r\n }\r\n \r\n\r\n static lootAt(caster: Vec3, target: Vec3): number {\r\n var x = target.x - caster.x;\r\n var y = target.y - caster.y;\r\n var ag = (Math.atan2(y, x) * macro.DEG) % 360;\r\n return ag;\r\n }\r\n}\r\n","/**\n * village config配置文件\n *\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { VillageAttrType } from './CampPoxy';\nimport { Logger } from '../../../../core/common/log/Logger';\n@res_auto_bind()\nexport class VillagePoxy {\n private static _inst: VillagePoxy;\n public static get Inst(): VillagePoxy {\n if (VillagePoxy._inst == null) {\n VillagePoxy._inst = new VillagePoxy();\n }\n return VillagePoxy._inst;\n }\n @res_assign(\"Village\")\n public villageDataList: Village[];\n public InitVillageConfig() {\n if (!this.villageDataList) {\n this.villageDataList = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"Village\")) {\n let achieveitem = ConfigManager.GetInstance().getValue(\"Village\")[key];\n if (achieveitem) {\n for (var keys in achieveitem) {\n achieveitem[keys] = GlobalFunction.Inst.ParamDef(keys, achieveitem[keys]);\n }\n this.villageDataList.push(achieveitem);\n }\n }\n }\n public GetVillageById(buildId: number, level: number,type:number): Village {\n\n\n if (!this.villageDataList) {\n this.InitVillageConfig();\n }\n return this.villageDataList.find(element => element.buildId == buildId && element.level == level&&element.type==type);\n }\n\n //获取下一等级数数据\n public GetVillageNextLvById(id: number, level: number,type :VillageAttrType) {\n if (!this.villageDataList) {\n this.InitVillageConfig();\n }\n Logger.logNet(\"type.valueOf()===================\"+type.valueOf());\n let MaxLevel = this.GetVillageMaxLvById(id,type);\n if (level < MaxLevel) {\n return this.villageDataList.find(element => element.buildId == id && element.level == (level + 1)&&element.type==type.valueOf());\n }\n return undefined;\n\n }\n\n //获取最大等级数\n public GetVillageMaxLvById(buildId: number,type:VillageAttrType) {\n if (!this.villageDataList) {\n this.InitVillageConfig();\n }\n let count = 0;\n for (let i = 0; i < this.villageDataList.length; i++) {\n let data: Village = this.villageDataList[i];\n if (data.buildId == buildId && data.type==type.valueOf()) {\n count++;\n }\n }\n return count;\n }\n //获取村庄当前运行事件\n public GetVillageTimeById(buildId: number,level:number) {\n if (!this.villageDataList) {\n this.InitVillageConfig();\n }\n for (let i = 0; i < this.villageDataList.length; i++) {\n let data: Village = this.villageDataList[i];\n if (data.buildId == buildId && data.level==level && data.type == VillageAttrType.shichang) {\n return Number(data.typeNum);\n }\n }\n Logger.logView(\"当前ID:\"+buildId + \",当前等级:\" + level + \"在配置表中照不到匹配的时常\");\n return 3;\n }\n}\n\nexport class Village {\n /** 村落表 ID */\n villageID: number;\n /** 建筑Id */\n buildId: number;\n /** 建筑等级*/\n level: number;\n /** 类型 1:生产数量 2 时长*/\n type: number;\n /**类型值*/\n typeNum: number;\n /** 消耗类型 */\n upType: string;\n /** 消耗值 */\n upRes: number;\n}","import { _decorator } from 'cc';\nimport { OpCode } from \"./constrains\";\n\nexport class Scope {\n private parent?: Scope;\n private content: Map = new Map();\n constructor(parent?: Scope) {\n this.parent = parent;\n }\n\n var(name: any) {\n this.content.set(name, undefined);\n }\n\n load(name: string | any): unknown {\n if (this.content.has(name)) {\n return this.content.get(name);\n } else if (this.parent) {\n return this.parent.load(name);\n }\n throw new Error(`Variable ${name} not found`);\n }\n\n out(name: string | any, value: unknown) {\n if (this.content.has(name)) {\n this.content.set(name, value);\n return value;\n } else if (this.parent) {\n return this.parent.out(name, value);\n }\n throw new Error(`Variable ${name} not found`);\n }\n}\n\nexport class GlobalScope extends Scope {\n public global: any;\n constructor(global: any) {\n super()\n this.global = global;\n if (window['wx']) {\n this.global['wx'] = window['wx'];\n }\n }\n\n public pushScope(global: any) {\n for (var key in global) {\n this.global[key] = global;\n }\n }\n\n load(name: string | any) {\n try { return super.load(name) } catch (e) { }\n if (this.global.hasOwnProperty(name)) {\n return this.global[name];\n }\n if (window.hasOwnProperty(name)) {\n return window[name];\n }\n throw new Error(`Variable ${name} not found`);\n }\n\n out(name: string | any, value: unknown) {\n try { return super.out(name, value) } catch (e) { }\n this.global[name] = value;\n }\n}\n\nexport class SmartConfig {\n private scope: Scope;\n private codes: number[];\n private stack: unknown[];\n private pc: number;\n constructor(scope: Scope, codes: number[], pc: number = 0, stack: unknown[] = []) {\n this.scope = scope;\n this.codes = codes;\n this.pc = pc;\n this.stack = stack;\n }\n\n private loadAddress() {\n const dv = new DataView(new ArrayBuffer(8));\n for (let i = 0; i < 4; i++) {\n dv.setUint8(i, this.codes[this.pc + i]);\n }\n this.pc += 4;\n this.stack.push(dv.getUint32(0));\n }\n\n private loadNumber() {\n const dv = new DataView(new ArrayBuffer(8));\n for (let i = 0; i < 8; i++) {\n dv.setUint8(i, this.codes[this.pc + i]);\n }\n this.pc += 8;\n this.stack.push(dv.getFloat64(0));\n }\n\n private loadString() {\n const dv = new DataView(new ArrayBuffer(2));\n let str = '';\n for (let i = 0; true; i += 2) {\n dv.setUint16(0, this.codes[this.pc + i] << 8 | this.codes[this.pc + i + 1]);\n const charCode = dv.getUint16(0);\n if (charCode) {\n str += String.fromCharCode(charCode);\n } else {\n this.pc = this.pc + i + 2;\n this.stack.push(str);\n return;\n }\n }\n }\n\n run() {\n while (true) {\n const code = this.codes[this.pc++];\n switch (code) {\n case OpCode.NOP: break;\n\n case OpCode.UNDEF: this.stack.push(undefined); break;\n case OpCode.NULL: this.stack.push(null); break;\n case OpCode.OBJ: this.stack.push({}); break;\n case OpCode.ARR: this.stack.push([]); break;\n case OpCode.TRUE: this.stack.push(true); break;\n case OpCode.FALSE: this.stack.push(false); break;\n\n case OpCode.NUM: this.loadNumber(); break;\n case OpCode.ADDR: this.loadAddress(); break;\n case OpCode.STR: this.loadString(); break;\n\n case OpCode.POP: this.stack.pop(); break;\n case OpCode.TOP: this.stack.push(this.stack[this.stack.length - 1]); break;\n case OpCode.TOP2: this.stack.push(\n this.stack[this.stack.length - 2],\n this.stack[this.stack.length - 1],\n ); break;\n\n case OpCode.VAR: this.scope.var(this.stack.pop()); break;\n case OpCode.LOAD: this.stack.push(this.scope.load(this.stack.pop())); break;\n case OpCode.OUT: this.stack.push(this.scope.out(this.stack.pop(), this.stack.pop())); break;\n\n case OpCode.JUMP: this.pc = this.stack.pop() as number; break;\n case OpCode.JUMPIF: {\n const addr = this.stack.pop();\n const test = this.stack.pop();\n if (test) { this.pc = addr as number };\n break;\n }\n case OpCode.JUMPNOT: {\n const addr = this.stack.pop();\n const test = this.stack.pop();\n if (!test) { this.pc = addr as number };\n break;\n }\n\n // 函数\n case OpCode.FUNC: {\n const addr = this.stack.pop();\n const len = this.stack.pop();\n const name = this.stack.pop();\n const _this = this;\n\n const func = function (this: any, ...args: unknown[]) {\n const scope = new Scope(_this.scope);\n scope.var('this');\n scope.out('this', this);\n if (name) {\n scope.var(name as string);\n scope.out(name as string, func);\n }\n const vm = new SmartConfig(scope, _this.codes, addr as number, [args]);\n return vm.run();\n }\n\n Object.defineProperty(func, 'name', { value: name });\n Object.defineProperty(func, 'length', { value: len });\n\n this.stack.push(func);\n break;\n }\n case OpCode.CALL: {\n const args = this.stack.pop();\n const func = this.stack.pop() as Function;\n const _this = this.stack.pop();\n this.stack.push(func.apply(_this, args));\n break;\n }\n case OpCode.NEW: {\n const args = this.stack.pop() as unknown[];\n const func = this.stack.pop() as Function;\n this.stack.push(new (func.bind.apply(func, [null, ...args])));\n break;\n }\n case OpCode.RET: return this.stack.pop();\n\n case OpCode.GET: {\n const key = this.stack.pop() as string;\n const object = this.stack.pop() as any;\n this.stack.push(object[key])\n break;\n }\n case OpCode.SET: {\n const value = this.stack.pop();\n const key = this.stack.pop() as string;\n const object = this.stack.pop() as any;\n this.stack.push(object[key] = value)\n break;\n }\n case OpCode.IN: {\n const key = this.stack.pop() as string;\n const object = this.stack.pop() as any;\n this.stack.push(key in object);\n break;\n }\n case OpCode.DELETE: {\n const key = this.stack.pop() as string;\n const object = this.stack.pop() as any;\n this.stack.push(delete object[key]);\n }\n // 表运算\n case OpCode.EQ: {\n const right = this.stack.pop();\n const left = this.stack.pop();\n this.stack.push(left == right);\n break;\n }\n case OpCode.NEQ: {\n const right = this.stack.pop();\n const left = this.stack.pop();\n this.stack.push(left != right);\n break;\n }\n case OpCode.SEQ: {\n const right = this.stack.pop();\n const left = this.stack.pop();\n this.stack.push(left === right);\n break;\n }\n case OpCode.SNEQ: {\n const right = this.stack.pop();\n const left = this.stack.pop();\n this.stack.push(left !== right);\n break;\n }\n case OpCode.LT: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left < right);\n break;\n }\n case OpCode.LTE: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left <= right);\n break;\n }\n case OpCode.GT: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left > right);\n break;\n }\n case OpCode.GTE: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left >= right);\n break;\n }\n\n // 数学运算\n case OpCode.ADD: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left + right);\n break;\n }\n case OpCode.SUB: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left - right);\n break;\n }\n case OpCode.MUL: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left * right);\n break;\n }\n case OpCode.EXP: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left ** right);\n break;\n }\n case OpCode.DIV: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left / right);\n break;\n }\n case OpCode.MOD: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left % right);\n break;\n }\n\n // 位运算\n case OpCode.BNOT: {\n const arg = this.stack.pop() as any;\n this.stack.push(~arg);\n break;\n }\n case OpCode.BOR: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left | right);\n break;\n }\n case OpCode.BXOR: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left ^ right);\n break;\n }\n case OpCode.BAND: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left & right);\n break;\n }\n case OpCode.LSHIFT: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left << right);\n break;\n }\n case OpCode.RSHIFT: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left >> right);\n break;\n }\n case OpCode.URSHIFT: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left >>> right);\n break;\n }\n\n // 逻辑运算\n case OpCode.OR: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left || right);\n break;\n }\n case OpCode.AND: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left && right);\n break;\n }\n case OpCode.NOT: {\n const arg = this.stack.pop() as any;\n this.stack.push(!arg);\n break;\n }\n\n // 类型运算\n case OpCode.INSOF: {\n const right = this.stack.pop() as any;\n const left = this.stack.pop() as any;\n this.stack.push(left instanceof right);\n break;\n }\n case OpCode.TYPEOF: {\n const arg = this.stack.pop() as any;\n this.stack.push(typeof arg);\n break;\n }\n\n default:\n throw new Error(`Unexpected code ${code.toString(16)}`);\n }\n }\n }\n}","import MsgHints from \"../../core/component/MsgHints\";\r\nimport { BusyNetDone } from \"../../core/manager/BusyLoadingManager\";\r\nimport { HttpGame } from \"../../core/http/HttpGame\";\r\nimport Utils from \"../../core/utils/Utils\";\r\nimport { E_VIDEO_STATE } from \"../GameDefines\";\r\nimport { GameManager } from \"../GameManager\";\r\nimport { BaseSdk } from \"./BaseSDK\";\r\nimport ConfigManager from \"../../_config/ConfigManager\";\r\nimport { RegisterData } from \"../../AutoStorages/PersistentData/RegisterData\";\r\nimport { dataAccout } from \"../gameData/dataAccout\";\r\n\r\n\r\nexport default class Web extends BaseSdk {\r\n autoRegister(callback: Function, fail_callback: Function) {\r\n let rand1 = Math.floor(Math.random() * 1000);\r\n let userName = (Date.now() % 10000000000) +\"r\"+ Math.floor(Math.random() * 1000);\r\n let passwd = \"111111\";\r\n let sysConfig = ConfigManager.GetInstance().getValue(\"sys\");\r\n let validCode = Utils.guid();\r\n let str = sysConfig.apiVersion + userName + passwd + sysConfig.channel + sysConfig.platform + validCode + sysConfig.sub_v;\r\n var sign = Utils.md5(str);\r\n var obj = {\r\n apiVersion: sysConfig.apiVersion, userName: userName, userPassword: passwd, channel: sysConfig.channel,\r\n loginVersion: sysConfig.loginVersion, client: sysConfig.platform, validCode: validCode, sign: sign\r\n };\r\n HttpGame.sendRequest(\"user/apiRegister\", obj, (ret) => {\r\n var retJson = this.toJson(ret);\r\n if (retJson.success == true) {\r\n RegisterData.save_register_data(userName, passwd);\r\n callback();\r\n }\r\n else {\r\n BusyNetDone();\r\n console.log(\"register failed; ret:\" + ret)\r\n fail_callback()\r\n }\r\n }, null, (msg) => {\r\n BusyNetDone();\r\n fail_callback()\r\n })\r\n }\r\n\r\n login(callback: Function, fail_callback: Function) {\r\n let userName = RegisterData.get_user_id();\r\n let passwd = RegisterData.get_passwd();\r\n let sysConfig = ConfigManager.GetInstance().getValue(\"sys\");\r\n let validCode = Utils.guid();\r\n let str = sysConfig.apiVersion + userName + passwd + sysConfig.channel + sysConfig.platform + validCode + sysConfig.sub_v;\r\n var sign = Utils.md5(str);\r\n var obj = {\r\n apiVersion: sysConfig.apiVersion, userName: userName, userPassword: passwd, channel: sysConfig.channel,\r\n loginVersion: sysConfig.loginVersion, client: sysConfig.platform, validCode: validCode, sign: sign\r\n };\r\n\r\n HttpGame.sendRequest(\"user/login\", obj, (ret) => {\r\n BusyNetDone();\r\n var retJson = JSON.parse(ret);\r\n if (retJson.success == true) {\r\n dataAccout.Instance().set_value(retJson.content);\r\n super.getDefaultServer(callback, fail_callback);\r\n }\r\n else {\r\n BusyNetDone();\r\n console.log(ret)\r\n fail_callback(ret)\r\n }\r\n }, null, (msg) => {\r\n BusyNetDone();\r\n fail_callback({ msg })\r\n })\r\n }\r\n\r\n play(call: Function, reason: string): void {\r\n call(E_VIDEO_STATE.SUCC)\r\n }\r\n\r\n setClipboardData(data: string, callback?: Function) {\r\n if (navigator) {\r\n var clipboard = navigator.clipboard;\r\n if (clipboard) {\r\n MsgHints.show(\"复制成功\")\r\n clipboard.writeText(GameManager.Instance().user.Userid + \"\");\r\n }\r\n } else {\r\n MsgHints.show(\"复制失败\")\r\n }\r\n }\r\n\r\n getClipboardData(callback?: Function) {\r\n }\r\n\r\n toJson(str) {\r\n if (typeof str == 'string') {\r\n try {\r\n var obj = JSON.parse(str);\r\n return obj;\r\n } catch (e) {\r\n return str;\r\n }\r\n }\r\n else {\r\n return str;\r\n }\r\n }\r\n}\r\n","import { _decorator, Texture2D, Label, Node, Sprite, ProgressBar, Button, sys, assetManager, game } from 'cc';\nconst { ccclass, property } = _decorator;\nimport { PREVIEW } from 'cc/env';\n\nimport GameConst from \"../../core/common/GameConst\";\nimport BasePanel from \"../../core/component/BasePanel\";\nimport WindowManager, { UILayer } from \"../../core/manager/WindowManager\";\nimport { EventManager, EventType } from '../../core/manager/EventManager';\nimport { instantiate } from 'cc';\nimport { GameModleComp } from '../../game/GameModle';\nimport { Pass, PassPoxy } from '../game/proxy/PassPoxy';\nimport { MapPoxy, Maps } from '../game/proxy/MapPoxy';\nimport { Logger } from '../../../core/common/log/Logger';\nimport GameEntry from '../GameEntry';\nimport { StoryUIViewComp } from '../game/mainui/StoryUIViewComp';\nimport { Asset } from 'cc';\nimport { GuideManager } from '../game/guilde/GuideManager';\nimport { FestivalTimeProxy } from '../game/proxy/FestivalTimeProxy';\nimport { AdGiftProxy } from '../game/proxy/AdGiftProxy';\nconst wx = window['wx'];\n\n@ccclass('WebLoadingUI')\nexport default class WebLoadingUI extends BasePanel {\n @property(Node) Label_num: Node | null = null;\n @property(Node) ProgressBar_exp: Node = null; // 进度条\n @property(Node) Label_dec: Node = null; // 描述文本 \n \n private isCoontServer:boolean = false;\n private isLoadingEnd:boolean = false;\n private isOpenGame:boolean = false;\n private loadLoaclAll:boolean = false;\n private loadCdnAll:boolean = false;\n private loadCdnResourceArrAll:Array = [];\n private totalFiles: number = 0;\n private loadedFiles: number = 0;\n private localPaths = [\"prefabs\"];\n private cdnPaths = [];\n private loadTime:number = 0;\n\n onShow(data: any) {\n this.loadResources();\n }\n protected onLoad(): void {\n this.loadTime = Date.now();\n this.cdnPaths.push(\"resources\");\n console.log(\"CDN加载列表:\" + this.cdnPaths)\n this.cdnPaths.push(\"spineRes\");\n console.log(\"CDN加载列表:\" + this.cdnPaths)\n }\n loadResources() {\n // 获取已加载的分包\n let resourceBundle = assetManager.bundles.get(\"resources\");\n resourceBundle = assetManager.getBundle(\"resources\");\n resourceBundle = assetManager.resources;\n // 获取某个指定文件夹下的所有资源信息\n const resourcePaths = resourceBundle.getDirWithPath(\"./\");\n const maxLen = resourcePaths.length;\n this.totalFiles = maxLen;\n }\n \n countLocalFiles(localPaths: string[]) {\n this.loadLoaclAll = true;\n return;\n assetManager.loadBundle(\"loading\" , (err, bundle)=>{\n if (err) {\n console.error(`Failed to load bundle from loading:`, err);\n return;\n }\n bundle.loadDir(\"config/prefabs/\" , (err, res)=>{\n if (err) {\n console.log(\"加载配置文件失败:fileType.json, error:\" + err);\n return;\n }\n res.forEach(asset => {\n this.updateProgress(`Loaded local file: ${asset.name}`);\n });\n this.loadLoaclAll = true;\n })\n })\n }\n loadCDNResources(cdnPaths: string[]) {\n this.totalFiles = this.cdnPaths.length;\n console.log(\"GameModleComp.getInstance().cdnMapSrc==\"+GameModleComp.getInstance().cdnMapSrc)\n cdnPaths.forEach(url => {\n assetManager.loadBundle(GameModleComp.getInstance().cdnMapSrc + url, (err, bundle) => {\n if (err) {\n console.error(`Failed to load bundle from ${url}:`, err);\n return;\n }\n let dir:string = \"\";\n if(url == \"mapRes\"){\n let changePass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId)\n let map:Maps = MapPoxy.Inst.getMapById(changePass.mapId);\n console.log(\"获取到服务器数据,当前关卡:\"+GameModleComp.getInstance().selectGuankaId)\n dir = \"map/\" + map.mapSource+\"/\";\n }else if(url == \"spineRes\"){\n dir = \"spineRes/scene/\"\n }else if(url == \"resources\"){\n dir = \"prefabs/\"\n }\n let resourceBundle = assetManager.bundles.get(url);\n const resourcePaths = resourceBundle.getDirWithPath(\"./\");\n const maxLen = resourcePaths.length;\n // this.totalFiles += maxLen;\n console.log(\"this.totalFiles==\"+this.totalFiles)\n bundle.loadDir(dir, Asset, (err, assets) => {\n if (err) {\n console.error(`Failed to load files from ${url}:`, err);\n return;\n }\n this.loadedFiles++;\n this.loadCdnResourceArrAll.push(url)\n console.log(\"CDN加载成功:\" + url + \"----\"+this.loadCdnResourceArrAll)\n if(this.loadCdnResourceArrAll.length == this.cdnPaths.length && this.loadCdnResourceArrAll.length == 3){\n this.loadCdnAll = true;\n }\n assets.forEach(asset => {\n // console.log(\"CDN:\" + asset.name)\n this.updateProgress(`Loaded CDN file: ${asset.name}`);\n });\n });\n });\n });\n }\n updateProgress(message: string) {\n if(this.Label_dec){\n this.Label_dec.getComponent(Label).string = message;\n this.ProgressBar_exp.getComponent(ProgressBar).progress = this.loadedFiles / this.totalFiles;\n }\n if (this.loadLoaclAll && this.loadCdnAll) {\n if(this.Label_dec){\n this.Label_dec.getComponent(Label).string = 'All resources loaded!';\n }\n this.isLoadingEnd = true;\n }\n }\n /**update中主要用来判断当前服务器是否连接成功.\n * 以及连接成功后 资源加载是否已经完成\n * 如果都已经完成 进入游戏初始化\n */\n protected update(dt: number): void {\n if(this.isOpenGame){\n return;\n }\n if(GameModleComp.getInstance().selectGuankaId && !this.isCoontServer){\n GameModleComp.getInstance().starTime();\n this.isCoontServer = true;\n Logger.logNet(\"WebLoadingUI 中获取到服务器连接成功 , 准备加载资源\");\n this.cdnPaths.push(\"mapRes\");\n console.log(\"CDN加载列表:\" + this.cdnPaths)\n this.countLocalFiles(this.localPaths);\n this.loadCDNResources(this.cdnPaths);\n }else{\n if(this.isLoadingEnd){\n console.log(\"加载耗时\"+ (Date.now() - this.loadTime) / 1000);\n setTimeout(() => {\n this.changeUi();\n this.isOpenGame = true;\n }, 200);\n }\n }\n }\n private changeUi(){\n if(this.node){\n this.node.active = false;\n }\n if(GameModleComp.getInstance().selectGuankaId == 1){\n let bossCome:StoryUIViewComp = instantiate(GameEntry.Inst.storyPrefab).getComponent(StoryUIViewComp);\n let laye:Node = WindowManager.Instance().getLayer(UILayer.最顶层);\n laye.addChild(bossCome.node);\n }\n WindowManager.Instance().open(GameConst.winPath.MainUI)\n .then(() => {\n if(GameModleComp.getInstance().selectGuankaId > 1){\n GuideManager.getInstance().initGuideData();\n if(FestivalTimeProxy.Inst.FestivalGiftList && FestivalTimeProxy.Inst.FestivalGiftList.length){\n EventManager.Inst.event(EventType.AD_FEST_REWARD_SHOW , true);\n }\n if(AdGiftProxy.Inst.rewardsList && AdGiftProxy.Inst.rewardsList.length){\n EventManager.Inst.event(EventType.AD_GIFT_REWARD_SHOW , true);\n }\n }\n WindowManager.Instance().removeWindow(GameConst.winPath.WebLoadingUI, true);\n GameModleComp.getInstance().isOpenGame = true;\n })\n EventManager.Inst.event(EventType.LOGIN_OVER_LOAD_MAP);\n }\n protected onDestroy(): void {\n\n }\n\n}","// WebSocket的管理逻辑实现\r\n\r\nimport { dataServerList } from \"../../modules/gameData/dataServerList\";\r\nimport MyWebSocekt from \"./MyWebSocekt\";\r\nimport {ConnectType} from \"./MyWebSocekt\";\r\nimport { dataServer } from \"../../modules/gameData/dataServer\";\r\nimport {pack} from \"../../proto/protoRoute\"\r\n\r\nexport function initWebSocket(){\r\n var server:dataServer = dataServerList.Instance().selectServer;\r\n var url = \"ws://\"+server.serverIp+\":\"+server.serverPort;\r\n MyWebSocekt.Instance().connect(url, ConnectType.INIT);\r\n}\r\n\r\nexport function reconnect(){\r\n var server:dataServer = dataServerList.Instance().selectServer;\r\n var url = \"ws://\"+server.serverIp+\":\"+server.serverPort;\r\n MyWebSocekt.Instance().connect(url, ConnectType.RECONNNECT);\r\n}\r\n\r\nexport function send2client(protoName:string, data){\r\n var dataBin = pack(protoName, data);\r\n //console.log(\"send2client======================\"+protoName);\r\n MyWebSocekt.Instance().send(dataBin);\r\n}","import BasePanel from \"../../../core/component/BasePanel\";\nimport { _decorator } from \"cc\";\nimport { TitleData, TitleProxy, titleStyle } from \"../proxy/TitleProxy\";\nimport { Label, Node } from \"cc\";\nimport { dataUser } from \"../../gameData/dataUser\";\nimport { GlobalFunction } from \"../common/GlobalFunction\";\nimport { instantiate } from \"cc\";\nimport { Sprite } from \"cc\";\nimport { Button } from \"cc\";\nimport { Component } from \"cc\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { ShopGoodType, ShopProxy, ShopUiType } from \"../proxy/ShopProxy\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\nimport GameEntry from \"../../GameEntry\";\nimport { MapModelComp } from \"../../../map/MapModel\";\nimport { Vec3 } from \"cc\";\nimport { UITransform } from \"cc\";\nconst { ccclass, property } = _decorator;\n\n@ccclass('WelfareUI')\nexport default class WelfareUI extends BasePanel {\n\n @property(Node) Panle_top: Node | null = null;\n item: Node | null = null;\n prfabitem: Node | null = null;\n\n onBtnClicked(e: any, name: string) {\n if(name == \"Button_close\") {\n this.close(true)\n }else if(name == \"Button_Mask\") {\n this.close(true)\n }\n else if (name == \"Button_sign\") {\n WindowManager.Instance().open(GameConst.winPath.DaySignUI, null, true);\n }else if(name == \"Button_mooncard\"){\n WindowManager.Instance().open(GameConst.winPath.MoonCardUI, null, true);\n }\n \n }\n start() {\n this.addEvent();\n }\n private addEvent(){\n\n // EventManager.Inst.on(EventType.UPDATE_TITLE_UI , this , this.UpdateTitleUI);\n\n }\n\n onShow(data: any): void {\n\n \n }\n \n protected onLoad(): void {\n }\n\n protected onDestroy(): void {\n }\n\n onHide(): void {\n }\n clearRes() {\n }\n}\n","import { _decorator, Node, Widget, log, instantiate, tween, Prefab, v3, isValid, Component } from 'cc';\r\nimport BasePanel from \"../component/BasePanel\";\r\nimport Utils from \"../utils/Utils\";\r\nimport BusyLoadingManager, { BUSY_TYPE } from \"./BusyLoadingManager\";\r\nimport { EventManager, EventType } from \"./EventManager\";\r\nimport ResClean from \"./ResClean\";\r\nimport Singleton from \"./Singleton\";\r\nimport { UITransform } from 'cc';\r\nimport { GlobalFunction } from '../../modules/game/common/GlobalFunction';\r\nimport { Logger } from '../../../core/common/log/Logger';\r\nimport GameConst from '../common/GameConst';\r\nimport { Vec3 } from 'cc';\r\nimport { Vec2 } from 'cc';\r\nimport { math } from 'cc';\r\nimport { TitleProxy } from '../../modules/game/proxy/TitleProxy';\r\nimport { SoundManager } from '../utils/SoundManager';\r\nexport enum UILayer {\r\n 背景 = '背景',\r\n 地图特效 = '地图特效',\r\n 弹窗 = '弹窗',\r\n 二级弹窗 = '二级弹窗',\r\n 三级弹窗 = '三级弹窗',\r\n 标题 = '标题',\r\n 最顶层 = '最顶层',\r\n 最顶顶层 = '最顶顶层',\r\n}\r\n\r\nexport default class WindowManager extends Singleton {\r\n private _windowContainer: Node;\r\n //弹出框字典\r\n private _windows: { [key: string]: BasePanel; } = {};\r\n public get windows(): { [key: string]: BasePanel; } {\r\n return this._windows;\r\n }\r\n public set windows(value: { [key: string]: BasePanel; }) {\r\n this._windows = value;\r\n }\r\n // //标记在显示列表里面的弹出框\r\n // private _showlist: { [key: string]: boolean } = {};\r\n private uiLayerMap: Map = new Map();\r\n\r\n public getWinContainer() {\r\n return this._windowContainer;\r\n }\r\n\r\n public register(container: Node): void {\r\n this._windowContainer = container;\r\n\r\n for (let name in UILayer) {\r\n let node = new Node(name);\r\n node.addComponent(UITransform);\r\n node.getComponent(UITransform).setContentSize(new math.Size(720, 1422));\r\n container.addChild(node);\r\n let w = node.addComponent(Widget);\r\n w.left = w.right = w.top = w.bottom = 0;\r\n w.isAlignBottom = w.isAlignLeft = w.isAlignTop = w.isAlignRight = true;\r\n w.updateAlignment();\r\n\r\n this.uiLayerMap.set(name as any, []);\r\n }\r\n }\r\n\r\n public getLayer(layer: UILayer) {\r\n return this._windowContainer.getChildByName(layer);\r\n }\r\n\r\n private _loadingwindows = {};\r\n async open(winInfo: { name: string, path: string, bundle: string, layer?: UILayer, pauseGame?: boolean, motion?: boolean }, showData: Object = null, showBusy: boolean = true) {\r\n return new Promise((resolove, reject) => {\r\n let t = Date.now();\r\n // log(\"OPEN--------\" + winInfo.name);\r\n let layer = winInfo.layer ? winInfo.layer : UILayer.弹窗\r\n if(winInfo.name == \"Box3UI\" || winInfo.name == \"Box10UI\"){\r\n SoundManager.getInstance().playEffectMusic(\"Reward\");\r\n }else{\r\n if(layer == UILayer.弹窗){\r\n SoundManager.getInstance().playEffectMusic(\"FullScreen\");\r\n }else{\r\n SoundManager.getInstance().playEffectMusic(\"Eject\");\r\n }\r\n }\r\n let layerStack = this.uiLayerMap.get(layer);\r\n\r\n let hidename = null;\r\n if (layerStack.length > 0) {\r\n let topUI = layerStack[layerStack.length - 1];\r\n if (topUI && topUI.winInfo && topUI.winInfo.name != winInfo.name) {\r\n hidename = topUI.winInfo.name;\r\n }\r\n }\r\n // log(\"1-OPEN--------\" + winInfo.name);\r\n let ll:number = Date.now();\r\n if (winInfo.pauseGame) EventManager.Inst.event(EventType.BattlePause, true, winInfo.name);\r\n if (this._windows[winInfo.name] == null) {\r\n //log(\"2-OPEN--------\" + winInfo.name);\r\n if (this._loadingwindows[winInfo.name]) {\r\n Logger.logView(\"加载中,请勿频繁添加\")\r\n return;\r\n }\r\n //加载Loading\r\n // if (showBusy) BusyLoadingManager.ins.addBusy(BUSY_TYPE.SHORT);\r\n this._loadingwindows[winInfo.name] = true;\r\n // log(\"5-OPEN--------\" + winInfo.name);\r\n Utils.loadResUIOnly(winInfo.path + winInfo.name, winInfo.bundle, Prefab, (error, assets: Prefab) => {\r\n\r\n // log(\"6-OPEN--------\" + winInfo.name);\r\n if (!assets) {\r\n // Logger.logView(winInfo)\r\n debugger;\r\n }\r\n Logger.logView(winInfo.name + \"加载耗时\"+ (Date.now() - ll) / 1000);\r\n let node = instantiate(assets)\r\n\r\n node.parent = this.getLayer(winInfo.layer || UILayer.弹窗);\r\n\r\n delete this._loadingwindows[winInfo.name];\r\n let comp = node.getComponent(winInfo.name);\r\n if (!comp) {\r\n comp = node.addComponent(winInfo.name);\r\n }\r\n if (winInfo.name != \"TitleUI\" && (winInfo.layer == UILayer.弹窗 || winInfo.layer == UILayer.背景)) {\r\n TitleProxy.Inst.OpenTitlePoup(winInfo.name, \"\");\r\n }\r\n node.getComponent(UITransform)\r\n let basePanel = node.getComponent(BasePanel)\r\n basePanel.winInfo = winInfo;\r\n this._windows[winInfo.name] = basePanel\r\n basePanel.onCreate(showData);\r\n this.checkStack(layerStack, basePanel);\r\n layerStack.push(basePanel);\r\n basePanel.onShow(showData);\r\n\r\n\r\n // log(\"7-OPEN--------\" + winInfo.name);\r\n if (winInfo.motion) {\r\n node.scale = v3(0.1);\r\n tween(node).to(0.2, { scale: v3(1) }, { easing: \"backOut\" }).start();\r\n }\r\n\r\n if (showBusy) BusyLoadingManager.ins.removeBusy(BUSY_TYPE.SHORT);\r\n\r\n if (hidename) this.hide(hidename);\r\n Logger.logView(winInfo.name + \"耗时\"+ (Date.now() - t) / 1000);\r\n resolove(basePanel);\r\n })\r\n\r\n } else {\r\n //log(\"3-OPEN--------\" + winInfo.name);\r\n this.checkStack(layerStack, this._windows[winInfo.name]);\r\n var panel: BasePanel = this._windows[winInfo.name];\r\n layerStack.push(panel);\r\n panel.node.active = true;\r\n\r\n\r\n if (winInfo.motion) {\r\n panel.node.scale = v3(0.1, 0.1, 0.1);\r\n tween(panel.node).to(0.4, { scale: v3(1, 1, 1) }, { easing: \"backOut\" }).start();\r\n }\r\n\r\n panel.onShow(showData)\r\n //log(\"4-OPEN--------\" + winInfo.name);\r\n if (hidename) this.hide(hidename);\r\n resolove(panel);\r\n }\r\n })\r\n }\r\n async Update(winInfo: { name: string, path: string, bundle: string, layer?: UILayer, pauseGame?: boolean, motion?: boolean }, showData: Object = null, showBusy: boolean = true) {\r\n return new Promise((resolove, reject) => {\r\n let t = Date.now();\r\n let layer = winInfo.layer ? winInfo.layer : UILayer.弹窗\r\n let layerStack = this.uiLayerMap.get(layer);\r\n\r\n let hidename = null;\r\n if (layerStack.length > 0) {\r\n let topUI = layerStack[layerStack.length - 1];\r\n if (topUI && topUI.winInfo && topUI.winInfo.name != winInfo.name) {\r\n hidename = topUI.winInfo.name;\r\n }\r\n }\r\n if (winInfo.pauseGame) EventManager.Inst.event(EventType.BattlePause, true, winInfo.name);\r\n this.checkStack(layerStack, this._windows[winInfo.name]);\r\n var panel: BasePanel = this._windows[winInfo.name];\r\n if (panel) {\r\n layerStack.push(panel);\r\n if (!panel.node.active) return;\r\n // panel.node.active = true;\r\n panel.onLoadUpdate(showData)\r\n if (hidename) this.hide(hidename);\r\n resolove(panel);\r\n } else {\r\n Logger.logNet(winInfo.name + \"界面未准备好\")\r\n }\r\n\r\n })\r\n }\r\n private checkStack(uis: BasePanel[], ui: BasePanel) {\r\n let i = uis.indexOf(ui);\r\n if (i >= 0) {\r\n uis.splice(i, 1);\r\n }\r\n }\r\n public removeWindow(winInfo: { name: string, path: string, bundle: string, layer?: UILayer, pauseGame?: boolean }, destory: boolean = true, destorys: boolean = true): void {\r\n // if (!this._showlist[winInfo.name]) {\r\n // \treturn null;\r\n // }\r\n\r\n let layer = winInfo.layer ? winInfo.layer : UILayer.弹窗;\r\n let layerStack = this.uiLayerMap.get(layer);\r\n //Logger.logView(\"removeWindow--------\", winInfo, layerStack.length)\r\n if (layerStack.length > 0) {\r\n let topUI = layerStack[layerStack.length - 1];\r\n if (topUI.winInfo === winInfo) {\r\n if (topUI.winInfo.pauseGame) EventManager.Inst.event(EventType.BattlePause, false, winInfo.name);\r\n topUI.onHide();\r\n layerStack.pop();\r\n }\r\n else {\r\n this.checkStack(layerStack, this._windows[winInfo.name]);\r\n }\r\n\r\n //恢复栈顶窗口\r\n topUI = layerStack[layerStack.length - 1];\r\n if (topUI && this._hidewindows[topUI.winInfo.name]) {\r\n try {\r\n // Logger.logView(\"恢复栈顶UI\")\r\n topUI.node.active = true;\r\n if (topUI.winInfo.pauseGame) EventManager.Inst.event(EventType.BattlePause, true, winInfo.name);\r\n topUI.onShow(topUI.data);\r\n } catch (error) {\r\n Logger.logView(error)\r\n }\r\n }\r\n }\r\n\r\n // this._showlist[winInfo.name] = null;\r\n // delete this._showlist[winInfo.name];\r\n\r\n if (destory) {\r\n var panel: BasePanel = this._windows[winInfo.name];\r\n if (panel) {\r\n panel.onRecycle()\r\n panel.node.destroy()\r\n this._windows[winInfo.name] = null\r\n delete this._windows[winInfo.name]\r\n }\r\n }\r\n else {\r\n var panel: BasePanel = this._windows[winInfo.name];\r\n if (panel) panel.node.active = false;\r\n }\r\n if (destorys) {\r\n if (layer == UILayer.弹窗) {\r\n GlobalFunction.OpenTitlePoup(\"MainUI\", \"\");\r\n }\r\n }\r\n\r\n delete this._hidewindows[winInfo.name];\r\n\r\n ResClean.ins.clean(false, false)\r\n }\r\n\r\n public clearWindows(...excepts: string[]) {\r\n let keys = Object.keys(this._windows);\r\n if (excepts != null && excepts.length > 0) {\r\n keys = keys.filter(r => excepts.indexOf(r) < 0);\r\n }\r\n keys.forEach(key => {\r\n this._windows[key].node.destroy();\r\n delete this._windows[key];\r\n delete this._hidewindows[key];\r\n });\r\n keys = Object.keys(this.uiLayerMap);\r\n this.uiLayerMap.forEach((v, k) => {\r\n for (let i = v.length - 1; i >= 0; i--) {\r\n let b = v[i];\r\n if (isValid(b.node.isValid, true)) {\r\n v.splice(i, 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getWin(name: string) {\r\n if (this._windows[name]) {\r\n return this._windows[name]\r\n }\r\n return null\r\n }\r\n\r\n private _hidewindows = {};\r\n private hide(name: string) {\r\n var panel: BasePanel = this._windows[name];\r\n if (panel) {\r\n this._hidewindows[name] = true;\r\n\r\n if (panel.winInfo.pauseGame) EventManager.Inst.event(EventType.BattlePause, false, panel.winInfo.name);\r\n panel.onHide();\r\n panel.node.active = false;\r\n }\r\n }\r\n\r\n\r\n public GetLayerToSome() {\r\n\r\n let isMainUI :boolean;\r\n let isNotOtherUI: boolean;\r\n for (let index = 0; index < this._windowContainer.children.length; index++) {\r\n let layer = this._windowContainer.children[index];\r\n if (layer.name == UILayer.背景) {\r\n if (layer.children.length > 0) {\r\n isMainUI = true;\r\n break;\r\n }\r\n\r\n }\r\n }\r\n for (let index = 0; index < this._windowContainer.children.length; index++) {\r\n let layer = this._windowContainer.children[index];\r\n if (layer.name != UILayer.背景 && layer.name != UILayer.标题) {\r\n if (layer.children.length > 0) {\r\n isNotOtherUI = true;\r\n break;\r\n }\r\n\r\n }\r\n }\r\n return isMainUI && isNotOtherUI;\r\n }\r\n public CloseALlLayer() {\r\n for (let index = 0; index < this._windowContainer.children.length; index++) {\r\n let layer = this._windowContainer.children[index];\r\n if (layer.name != UILayer.背景) {\r\n if (layer.children.length > 0) {\r\n for (let i = 0; i < layer.children.length; i++) {\r\n if(layer.children[i]){\r\n if(this._windows[layer.children[i].name] && this._windows[layer.children[i].name].winInfo){\r\n this.removeWindow(this._windows[layer.children[i].name].winInfo)\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n // GlobalFunction.OpenTitlePoup(\"MainUI\", \"\");\r\n }\r\n\r\n public IsNowInMainUILayer() {\r\n\r\n let isMainUI :boolean;\r\n for (let index = 0; index < this._windowContainer.children.length; index++) {\r\n let layer = this._windowContainer.children[index];\r\n if (layer.name == UILayer.背景) {\r\n if (layer.children.length > 0) {\r\n isMainUI = true;\r\n break;\r\n }\r\n\r\n }\r\n }\r\n\r\n return isMainUI;\r\n }\r\n // changeMapClearWindow() {\r\n // WindowManager.Instance().removeWindow(GameConst.winPath.MainUI, true, false)\r\n // }\r\n // changeMapOver() {\r\n // WindowManager.Instance().removeWindow(GameConst.winPath.MainUI, true, false)\r\n // }\r\n}\r\n\r\n","/**\n * WordMap config配置文件\n */\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\n@res_auto_bind()\nexport class WordMapPoxy {\n private static _inst: WordMapPoxy;\n public static get Inst(): WordMapPoxy {\n if (WordMapPoxy._inst == null) {\n WordMapPoxy._inst = new WordMapPoxy();\n }\n return WordMapPoxy._inst;\n }\n @res_assign(\"WordMap\")\n public WordMapDataConfigList: WordMap[]; \n public InitWordMapConfig(){\n\n if(!this.WordMapDataConfigList){\n this.WordMapDataConfigList =[];\n } \n let MapDataConfig = ConfigManager.GetInstance().getValue(\"WordMap\")\n for (var key in MapDataConfig) {\n let item = ConfigManager.GetInstance().getValue(\"WordMap\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.WordMapDataConfigList.push(item);\n }\n \n }\n return this.WordMapDataConfigList;\n }\n\n public getWordMapById(id:number):WordMap{\n\n if (this.WordMapDataConfigList == null) {\n this.InitWordMapConfig();\n }\n return this.WordMapDataConfigList.find(element=>element.wordMapID==id); \n }\n}\n\nexport class WordMap {\n /** 地图ID */\n wordMapID: number;\n /** 大类 */\n typeId: number;\n /** 归类 */\n lan_classify: string;\n /** 按钮图片 */\n icon: string;\n /** 按钮名称 */\n lan_button: string;\n passId:number;\n left_build:string;\n build:string;\n lan_building:string;\n right_build:string;\n Model:number;\n}","import { _decorator, sys } from 'cc';\nimport { GameManager } from \"../../modules/GameManager\";\nimport Utils from \"./Utils\";\nimport { Logger } from '../../../core/common/log/Logger';\nexport enum WorkerEventType {\n CollisionIn,\n CollisionOut,\n Debug,\n}\nexport interface WorkerMsg {\n type: WorkerEventType;\n size?: number\n}\nconst Samplinginterval = 100;\n\nexport class WorkerEntity {\n static worker: any = null;\n frameCount = 0;\n frameTimer = 0;\n frame = 100;\n onMessage: (msg: WorkerMsg) => void;\n constructor() {\n // return;\n // if (window['wx'] != null && cc.sys.os !== \"iOS\") {\n // return;\n // }\n if (window['wx'] != null && window['wx'].getSystemInfoSync != null) {\n let info = window['wx'].getSystemInfoSync();\n if (Utils.compareVersion(info.SDKVersion, '2.20.2') < 0) {\n return;\n }\n if (info.platform == 'windows' || info.platform == 'mac') {\n return;\n }\n }\n if (!GameManager.Instance().workerOpen) return;\n this.Destroy();\n switch (sys.platform) {\n case sys.Platform.WECHAT_GAME:\n case sys.Platform.BYTEDANCE_MINI_GAME:\n WorkerEntity.worker = window['wx'].createWorker('workers/index.js')\n break;\n default:\n try {\n WorkerEntity.worker = new Worker('workers/index.js', { type: 'module' });\n } catch (e) {\n console.warn(e);\n }\n break;\n }\n if (WorkerEntity.worker == null) return;\n Logger.logView(\"worker开启\");\n if (WorkerEntity.worker.onMessage != null) {\n\n WorkerEntity.worker.onMessage((msg: WorkerMsg) => {\n let dt = Date.now() - this.postTime;\n this.frameTimer += dt;\n this.frameCount++;\n if (this.frameTimer >= Samplinginterval) {\n this.frameTimer -= Samplinginterval;\n this.frame = Math.round(this.frameCount / (Samplinginterval * 0.001));\n this.frameCount = 0;\n }\n if (this.onMessage != null) {\n this.onMessage(msg);\n }\n })\n } else {\n WorkerEntity.worker.onmessage = (msg: any) => {\n let dt = Date.now() - this.postTime;\n this.frameTimer += dt;\n this.frameCount++;\n if (this.frameTimer >= Samplinginterval) {\n this.frameTimer -= Samplinginterval;\n this.frame = Math.round(this.frameCount / (Samplinginterval * 0.001));\n this.frameCount = 0;\n }\n if (this.onMessage != null) {\n this.onMessage(msg.data);\n }\n }\n }\n }\n\n public get IsVaild() {\n return WorkerEntity.worker != null;\n }\n\n Destroy() {\n if (WorkerEntity.worker != null && WorkerEntity.worker.terminate != null) {\n WorkerEntity.worker.terminate();\n }\n WorkerEntity.worker = null;\n }\n postTime = 0;\n postMessage(res: { msg: 'init' | 'update', type: 'sab' | 'normal', buf?: any }) {\n if (WorkerEntity.worker != null) {\n this.postTime = Date.now();\n WorkerEntity.worker.postMessage(res);\n }\n };\n}\n\nwindow[\"WorkerEntity\"] = WorkerEntity;","import { Node } from \"cc\";\r\nimport { RichText } from \"cc\";\r\nimport { Label } from \"cc\";\r\nimport { Component } from \"cc\";\r\nimport { _decorator } from \"cc\";\r\nimport { Pass, PassPoxy } from \"../proxy/PassPoxy\";\r\nimport { GameModleComp } from \"../../../game/GameModle\";\r\nimport { WordMap, WordMapPoxy } from \"../proxy/WordMapPoxy\";\r\nimport { GlobalFunction } from \"../common/GlobalFunction\";\r\nimport { find } from \"cc\";\r\nimport { instantiate } from \"cc\";\r\nimport { Logger } from \"../../../../core/common/log/Logger\";\r\nimport { Input } from \"cc\";\r\nimport { EventTouch } from \"cc\";\r\nimport { Sprite } from \"cc\";\r\nimport { ProgressBar } from \"cc\";\r\nimport { StringUtil } from \"../../../core/utils/StringUtil\";\r\nimport { Monster, MonsterPoxy } from \"../proxy/MonsterPoxy\";\r\nimport { Skeleton } from \"cc\";\r\nimport ResHelper from \"../../../core/manager/ResHelper\";\r\nimport { sp } from \"cc\";\r\nimport { ItemData, ItemProxy } from \"../proxy/ItemProxy\";\r\nimport { Build, BuildPoxy } from \"../proxy/BuildPoxy\";\r\nimport { Model, ModelPoxy } from \"../proxy/ModelPoxy\";\r\nimport { Vec3 } from \"cc\";\r\nimport { dataUser } from \"../../gameData/dataUser\";\r\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\r\nconst { ccclass, property } = _decorator;\r\n@ccclass(\"WorldMapViewComp\")\r\nexport class WorldMapViewComp extends Component{\r\n @property(Label)\r\n uidLabel:Label = null;\r\n @property(Node)\r\n heroIcon:Node = null;\r\n @property(RichText)\r\n Label_title:RichText = null;\r\n @property(Node)\r\n Panle_center:Node = null;\r\n @property(Label)\r\n nameLabel:Label = null;\r\n\r\n @property(Node)\r\n clickNode : Node = null;\r\n @property(Node)\r\n isKillNode:Node = null;\r\n @property(Node)\r\n monsterModle : Node = null;\r\n @property(Label)\r\n guanqiaLabel:Label = null;\r\n @property(Sprite)\r\n rewardKuang:Sprite = null;\r\n @property(Sprite)\r\n rewardIcon:Sprite = null;\r\n @property(Label)\r\n rewardNum:Label = null;\r\n @property(Label)\r\n buildNameLabel:Label = null;\r\n @property(Sprite)\r\n soldierSprite:Sprite = null;\r\n @property(Sprite)\r\n soldierUpSprite:Sprite = null;\r\n @property(Sprite)\r\n buildSprite:Sprite = null;\r\n @property(ProgressBar)\r\n guanqiaPro:ProgressBar = null;\r\n @property(Label)\r\n guanqiaProLabel : Label = null;\r\n @property(Node)\r\n fightNode:Node = null;\r\n @property(Node)\r\n openAllBuild:Node = null;\r\n @property(Node)\r\n CloseAllBuild:Node = null;\r\n @property(Node)\r\n reward_1:Node = null;\r\n @property(Node)\r\n reward_2:Node = null;\r\n @property(Node)\r\n reward_3:Node = null;\r\n @property(Node)\r\n headpoint:Node = null;\r\n\r\n onLoad(){\r\n this.hideMapItem()\r\n this.showNowSelect();\r\n // this.uidLabel.string = dataUser.Instance().unitUID + \"\";\r\n EventManager.Inst.on(EventType.CLOSE_ALL_UI , this, this.desTory)\r\n }\r\n\r\n showNowSelect(){\r\n let pass:Pass = PassPoxy.Inst.getPassById(GameModleComp.getInstance().selectGuankaId);\r\n let world:WordMap = WordMapPoxy.Inst.getWordMapById(pass.wordMapID);\r\n this.Label_title.string = \"\"+world.lan_classify+\"\";\r\n let myIndex:number = Math.floor(pass.wordMapID/12)*12;\r\n let have:number = pass.wordMapID;\r\n for(let i = 1 ; i <= 12 ; i++){\r\n let wordMap:Node = find(\"wordMap_\"+i , this.Panle_center);\r\n let close:Node = find(\"close\" , wordMap);\r\n let closeGuanqia:Label = find(\"Label_guanka\" , close).getComponent(Label);\r\n let open:Node = find(\"open\" , wordMap);\r\n let openLabel:Label = find(\"Label_open\" , open).getComponent(Label);\r\n let openGuanqia:Label = find(\"Label_guanka1\" , open).getComponent(Label);\r\n let get:Node = find(\"get\" , wordMap);\r\n let getGuanqia:Label = find(\"Label_guanka\" , get).getComponent(Label);\r\n let head:Node = find(\"head\" + i , this.headpoint);\r\n \r\n let wordId:number = myIndex + i;\r\n let tempWord:WordMap = WordMapPoxy.Inst.getWordMapById(wordId);\r\n closeGuanqia.string = tempWord.lan_button\r\n openGuanqia.string = tempWord.lan_button\r\n getGuanqia.string = tempWord.lan_button\r\n let type:number = 1;\r\n if(wordId < have){\r\n close.active = false;\r\n open.active = false;\r\n get.active = true;\r\n openLabel.string = tempWord.passId+\"/\"+tempWord.passId;\r\n type = 1;\r\n }else{\r\n close.active = true;\r\n open.active = false;\r\n get.active = false;\r\n type = 2;\r\n }\r\n if(wordId == have){\r\n open.active = true;\r\n openLabel.string = GameModleComp.getInstance().selectGuankaId+\"/\"+tempWord.passId;\r\n head.active = true;\r\n let headIcon:Node = instantiate(this.heroIcon);\r\n headIcon.active = true;\r\n headIcon.position = new Vec3(0,0,0);\r\n head.addChild(headIcon);\r\n type = 3;\r\n }else{\r\n head.active = false;\r\n }\r\n wordMap[\"changeId\"] = wordId;\r\n wordMap[\"killType\"] = type;\r\n wordMap.on(Node.EventType.TOUCH_END , this.onMapClick , this);\r\n }\r\n }\r\n\r\n private onMapClick(event:EventTouch){\r\n let node = event.currentTarget;\r\n let index:number = node[\"changeId\"];\r\n /**1:已通关 2:未达到 3:进行中*/\r\n let type:number = node[\"killType\"];\r\n this.showMapItem(index , type);\r\n }\r\n onItemCloseClick(){\r\n this.hideMapItem();\r\n }\r\n\r\n private showMapItem(index:number , type:number){\r\n let tempWord:WordMap = WordMapPoxy.Inst.getWordMapById(index);\r\n //当前地图起始章节ID\r\n let starId:number;\r\n if(index == 1){\r\n starId = 1;\r\n }else{\r\n let temp:WordMap = WordMapPoxy.Inst.getWordMapById(index-1);\r\n starId = temp.passId+1;\r\n }\r\n //当前地图终点章节ID\r\n let endId:number = tempWord.passId;\r\n //章节开启建筑\r\n let buildId:number;\r\n let buildArr:Array = PassPoxy.Inst.getPassById(starId).ay_build;\r\n buildId = Number(buildArr[buildArr.length-1]);\r\n\r\n //已击杀\r\n if(type == 1){\r\n this.isKillNode.active = true;\r\n }else{\r\n this.isKillNode.active = false;\r\n \r\n }\r\n //进行中\r\n if(type==3){\r\n this.fightNode.active = true;\r\n }else{\r\n this.fightNode.active = false;\r\n }\r\n \r\n //关卡名\r\n let psdata = PassPoxy.Inst.getPassById(tempWord.passId);\r\n let wordMapdata = WordMapPoxy.Inst.getWordMapById(psdata.wordMapID);\r\n this.guanqiaLabel.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20065), wordMapdata.lan_classify, wordMapdata.typeId, psdata.typeId);\r\n\r\n //关卡进度\r\n if(type==1){\r\n this.guanqiaProLabel.string = \"关卡:\" + endId + \"/\" + endId;\r\n this.guanqiaPro.progress = 1;\r\n }else if(type==2){\r\n this.guanqiaProLabel.string = StringUtil.stringFormat(GlobalFunction.GetMsg(20194), starId);\r\n this.guanqiaPro.progress = 0;\r\n }else{\r\n this.guanqiaProLabel.string = \"关卡:\" + GameModleComp.getInstance().selectGuankaId + \"/\" + endId;\r\n this.guanqiaPro.progress = (GameModleComp.getInstance().selectGuankaId - starId) / (endId - starId) ;\r\n }\r\n\r\n //怪物\r\n let monster:Monster = MonsterPoxy.Inst.getMonsterById(tempWord.Model);\r\n let path: string = \"spineRes/characters/\"+monster.modle+\"/\" + monster.modle;\r\n let spine = this.monsterModle.getComponent(sp.Skeleton);\r\n ResHelper.load(path, sp.SkeletonData,(err, sp:sp.SkeletonData)=>{\r\n try {\r\n let ms = spine;\r\n ms.skeletonData = sp;\r\n if(ms && ms.skeletonData){\r\n ms!.setAnimation(0 , \"goblin_wait2\" , true)\r\n }\r\n } catch (error) {\r\n }\r\n },false,\"spineRes\");\r\n let model:Model = ModelPoxy.Inst.getModelById(tempWord.Model);\r\n let v3:Vec3 = new Vec3(1 , 1 , 1);\r\n if(model && model.ay_map && model.ay_map.length==2){\r\n v3.x = Number(model.ay_map[0]);\r\n v3.y = Number(model.ay_map[1]);\r\n }\r\n this.monsterModle!.setScale(v3)\r\n\r\n //建筑和小兵\r\n if(tempWord.build && tempWord.build.length > 1){\r\n this.CloseAllBuild.active = true;\r\n this.openAllBuild.active = false;\r\n GlobalFunction.SetSpriteFrame(this.buildSprite,tempWord.build);\r\n GlobalFunction.SetSpriteFrame(this.soldierSprite,tempWord.left_build);\r\n GlobalFunction.SetSpriteFrame(this.soldierUpSprite,tempWord.right_build);\r\n this.buildNameLabel.string = tempWord.lan_building;\r\n }else{\r\n this.CloseAllBuild.active = false;\r\n this.openAllBuild.active = true;\r\n }\r\n\r\n //奖励\r\n let rewarPass:Pass = PassPoxy.Inst.getPassById(tempWord.passId);\r\n let rewardArr:Array = [];\r\n for (const [key, value] of Array.from(rewarPass.kv_pass.entries())) {\r\n let reward = {\r\n id:Number(key),\r\n num:Number(value)\r\n };\r\n rewardArr.push(reward);\r\n }\r\n\r\n\r\n for(let i = 1 ; i <= 3 ; i++){\r\n let node:Node = this[\"reward_\" + i];\r\n if(rewardArr[i-1]){\r\n node.active = true;\r\n let kuang:Sprite = find(\"Sprite_rewardkaung\" , node).getComponent(Sprite);\r\n let icon:Sprite = find(\"Sprite_reward\" , node).getComponent(Sprite);\r\n let label:Label = find(\"Label_reward\" , node).getComponent(Label);\r\n let itemCfg:ItemData = ItemProxy.Inst.GetItemDataByID(rewardArr[i-1].id);\r\n label.string = GlobalFunction.ConvertNumberWithUnit(rewardArr[i-1].num) + \"\";\r\n GlobalFunction.SetSpriteFrame(icon,itemCfg.icon);\r\n GlobalFunction.SetSpriteFrame(kuang,ItemProxy.Inst.GetItemKuangByColor(itemCfg.color));\r\n }else{\r\n node.active = false;\r\n }\r\n }\r\n\r\n\r\n this.clickNode.active = true;\r\n }\r\n private hideMapItem(){\r\n this.clickNode.active = false;\r\n }\r\n\r\n protected update(dt: number): void {\r\n }\r\n\r\n onBackClick(){\r\n this.desTory();\r\n }\r\n\r\n desTory(){\r\n EventManager.Inst.off(EventType.CLOSE_ALL_UI , this, this.desTory)\r\n if(this.node && this.node.parent){\r\n this.node.parent.removeChild(this.node);\r\n }\r\n if(this.node){\r\n this.node.destroy();\r\n }\r\n }\r\n}","/**\n * XiaoTouPoxy config配置文件\n */\nimport { c1300, s1300, c1301, s1301, c1302, s1302, c1405, s1405, p_build, p_army_equip } from \"../../../proto/proto\";\nimport { _decorator } from 'cc';\nimport { res_assign, res_auto_bind } from '../../../_ConfigInject/Config_Decorator';\nimport ConfigManager from '../../../_config/ConfigManager';\nimport { GlobalFunction } from '../common/GlobalFunction';\nimport { send2client } from \"../../../core/WebSocket/WebSocketMgr\";\nimport WindowManager from \"../../../core/manager/WindowManager\";\nimport GameConst from \"../../../core/common/GameConst\";\nimport { EventManager, EventType } from \"../../../core/manager/EventManager\";\n@res_auto_bind()\nexport class XiaoTouPoxy {\n private static _inst: XiaoTouPoxy;\n public static get Inst(): XiaoTouPoxy {\n if (XiaoTouPoxy._inst == null) {\n XiaoTouPoxy._inst = new XiaoTouPoxy();\n }\n return XiaoTouPoxy._inst;\n }\n /***==========================建筑升级 配置表 数据存储============================== */\n public CampDataList: XiaoTou[];\n @res_assign(\"XiaoTou\")\n public InitXiaoTouConfig() {/***建筑升级属性配置表 */\n if (!this.CampDataList) {\n\n this.CampDataList = [];\n }\n for (var key in ConfigManager.GetInstance().getValue(\"XiaoTou\")) {\n let item = ConfigManager.GetInstance().getValue(\"XiaoTou\")[key];\n if (item) {\n for (var keys in item) {\n item[keys] = GlobalFunction.Inst.ParamDef(keys, item[keys]);\n }\n this.CampDataList.push(item);\n }\n }\n\n return this.CampDataList;\n }\n public GetXiaoTouById(buildId: number): XiaoTou {\n if (!this.CampDataList) {\n this.InitXiaoTouConfig();\n }\n return this.CampDataList.find(element => element.id == buildId);\n\n }\n\n}\nexport class XiaoTou{\n aliveTime:number;\n click:number;\n id:number;\n minute:number;\n rate:number;\n time:number;\n}","import { _decorator } from 'cc';\nimport Http from \"../core/http/HTTP\";\nimport Utils from \"../core/utils/Utils\";\nimport { GameManager } from \"./GameManager\";\nimport { Logger } from '../../core/common/log/Logger';\n\nexport class XxxEventReport {\n //事件上报\n static sendEvent(eventName: string) {\n if (!window['wx']) return;\n let version = window['__wxConfig'].envVersion;\n if (version != \"release\") return;\n\n\n Logger.logView(\"-----------------------------事件打点\"+ eventName)\n let openid = \"\"\n let newPlayer = false\n if (GameManager.Instance().user.openid == \"\") {\n //未登录\n openid = Utils.guid()\n }\n else {\n //登录\n openid = GameManager.Instance().user.openid;\n newPlayer = GameManager.Instance().user.new_player;\n }\n\n Http.sendRequest(\"\", {\n eventName,\n openid,\n params: \"\",\n gameId: 1,\n platform: 5,\n uuid: Utils.guid(),\n newPlayer: newPlayer,\n action: \"event\",\n }, null, \"https://log.xxx.com/index/api.do\", null)\n }\n\n // status=0 开启0 成功1\n static sendVideoEvent(point: string, status: number) {\n if (!window['wx']) return;\n let version = window['__wxConfig'].envVersion;\n if (version != \"release\") return;\n\n Logger.logView(\"-----------------------------视频打点\"+ point+ status)\n Http.sendRequest(\"\", {\n point,\n gameId: 1,\n platform: 5,\n openid: GameManager.Instance().user.openid, //肯定登录了\n uuid: Utils.guid(),\n newPlayer: GameManager.Instance().user.new_player, //肯定登录了\n status,\n action: \"video\",\n }, null, \"https://log.xxx.com/index/api.do\", null)\n }\n}"]}