77062dc261982c898a08e9f4054fc61b8af1518f 18 KB

12345678910111213141516171819
  1. {
  2. "code": "import { WindowManager, WindowType } from \"./WindowManager\";\r\nimport PoolManager from \"../Util/PoolManager\";\r\nimport { PROTOCOLS, NetworkManager } from \"../Network/NetworkManager\";\r\nimport { skintype, AccountUser, skinstate, rewarddata } from \"../Main/DataMaker\";\r\nimport { PlayerAccount } from \"../Network/PlayerAccount\";\r\nimport { EventManager, EventType } from \"../Main/EventManager\";\r\nimport { AssetManager } from \"../Main/AssetManager\";\r\nimport { GameUtils } from \"../Util/GameUtils\";\r\nimport { ui } from \"../ui/layaMaxUI\";\r\nimport { TtSdk } from \"../Util/TtSdk\";\r\nexport class SkinWindow extends ui.Window.SkinWindowUI {\r\n constructor() {\r\n super();\r\n this.curskindatas = [];\r\n this.rootspeed1 = -0.015;\r\n this.currotspeed = -0.015;\r\n this.canwear = true;\r\n SkinWindow.instance = this;\r\n }\r\n static get Instance() {\r\n return SkinWindow.instance;\r\n }\r\n OnOpen(_data = null) {\r\n this.height = Laya.stage.height;\r\n this.moneypan.y = Laya.stage.height / 1280 * this.moneypan.y;\r\n this.homebtn.y = Laya.stage.height / 1280 * this.homebtn.y;\r\n this.listpan.top = Laya.stage.height / 1280 * this.listpan.top;\r\n this.RegEvent();\r\n this.moneyclip.text = PlayerAccount.CurAccountData.GetUser(AccountUser.money);\r\n Laya.timer.once(10, this, () => {\r\n this.NewShow();\r\n });\r\n }\r\n RegEvent() {\r\n this.homebtn.clickHandler = Laya.Handler.create(this, this.OnClickClose, null, false);\r\n this.pfbtn.clickHandler = Laya.Handler.create(this, this.OnClickXGG, null, false);\r\n this.wqbtn.clickHandler = Laya.Handler.create(this, this.OnClickXJJ, null, false);\r\n EventManager.On(EventType.UseSkin, this, this.ReFreshData);\r\n EventManager.On(EventType.getmoney, this, this.ReFreshData);\r\n }\r\n OnClickXGG() {\r\n this.SetBtnShow(skintype.role);\r\n this.ShowBoySkin();\r\n }\r\n OnClickXJJ() {\r\n this.SetBtnShow(skintype.weapon);\r\n this.ShowGirlSkin();\r\n }\r\n SetBtnShow(_skintype) {\r\n for (var i = 0; i < this.skinpan.numChildren; i++) {\r\n var skin = this.skinpan.getChildAt(i);\r\n var closeskin = skin.getChildAt(1);\r\n if (i + 1 == _skintype) {\r\n closeskin.visible = false;\r\n }\r\n else {\r\n closeskin.visible = true;\r\n }\r\n }\r\n }\r\n OnHide() {\r\n if (this.mainrole)\r\n PoolManager.RecoverSprite3D(this.mainrole);\r\n Laya.timer.clear(this, this.RotLoop);\r\n if (this.panCamera) {\r\n this.panCamera.active = false;\r\n this.panCamera.removeSelf();\r\n this.panCamera.destroy();\r\n }\r\n if (this.panlight) {\r\n this.panlight.active = false;\r\n this.panlight.removeSelf();\r\n this.panlight.destroy();\r\n }\r\n if (this.showpan) {\r\n this.showpan.active = false;\r\n this.showpan.removeSelf();\r\n this.showpan.destroy();\r\n }\r\n if (this.panScence) {\r\n this.panScence.active = false;\r\n this.panScence.removeSelf();\r\n this.panScence.destroy();\r\n }\r\n EventManager.Off(EventType.UseSkin, this, this.ReFreshData);\r\n EventManager.Off(EventType.getmoney, this, this.ReFreshData);\r\n }\r\n GetSkinDatas(_skintype) {\r\n var skins = PlayerAccount.CurAccountData.m_skinDic.values;\r\n var gets = [];\r\n var locks = [];\r\n for (var i = 0; i < skins.length; i++) {\r\n var curskin = skins[i];\r\n if (curskin.skintype != _skintype)\r\n continue;\r\n if (curskin.curskinstate != skinstate.lock) {\r\n gets.push(curskin);\r\n }\r\n else {\r\n locks.push(curskin);\r\n }\r\n }\r\n return gets.concat(locks);\r\n }\r\n NewShow() {\r\n this.panScence = new Laya.Scene3D();\r\n this.addChild(this.panScence);\r\n this.panCamera = new Laya.Camera();\r\n this.panCamera.orthographic = true;\r\n this.panScence.addChild(this.panCamera);\r\n this.panCamera.transform.position = new Laya.Vector3(0, 10, 10);\r\n this.panCamera.viewport = new Laya.Viewport(0, 0, Laya.stage.width, Laya.stage.height);\r\n this.panCamera.clearFlag = 2;\r\n var screensize = Laya.stage.height / 1280;\r\n this.panCamera.orthographicVerticalSize = 20 * screensize;\r\n this.panlight = new Laya.DirectionLight();\r\n this.panScence.addChild(this.panlight);\r\n this.panlight.intensity = 0.6;\r\n this.showpan = new Laya.Sprite3D();\r\n this.panScence.addChild(this.showpan);\r\n var sfasf = this.patbg.localToGlobal(new Laya.Point(this.pt.x, this.pt.y));\r\n var viewpos = new Laya.Vector3(sfasf.x, sfasf.y, 0);\r\n var outworldpos = new Laya.Vector3();\r\n this.panCamera.convertScreenCoordToOrthographicCoord(viewpos, outworldpos);\r\n this.showpan.transform.position = new Laya.Vector3(outworldpos.x, outworldpos.y, 0);\r\n Laya.timer.frameLoop(1, this, this.RotLoop);\r\n this.skinlist.vScrollBarSkin = \"\";\r\n this.skinlist.renderHandler = Laya.Handler.create(this, this.OnRender, null, false);\r\n this.OnClickXGG();\r\n }\r\n RotLoop() {\r\n if (this.mainrole && this.mainrole.active) {\r\n this.showpan.transform.rotate(new Laya.Vector3(0, this.currotspeed, 0));\r\n }\r\n }\r\n OnClickClose() {\r\n GameUtils.TweenButton(this.homebtn, () => {\r\n WindowManager.Instance.ShowWindow(WindowType.HomeWindow);\r\n });\r\n }\r\n OnRender(_cell, index) {\r\n var data = _cell.dataSource;\r\n var icon = _cell.getChildAt(2);\r\n var selectim = _cell.getChildAt(1);\r\n selectim.visible = false;\r\n var getbtn = _cell.getChildAt(5);\r\n getbtn.visible = false;\r\n var getbtnbg = _cell.getChildAt(4);\r\n this.SetGetBtn(getbtnbg, data);\r\n getbtn.clickHandler = null;\r\n if (data.curskinstate == skinstate.getnoues) {\r\n getbtn.visible = true;\r\n getbtn.clickHandler = Laya.Handler.create(this, this.WearSkin, [data], false);\r\n }\r\n else if (data.curskinstate == skinstate.lock) {\r\n if (data.require_type == 2) {\r\n getbtn.visible = true;\r\n getbtn.clickHandler = Laya.Handler.create(this, this.MoneyGet, [data], false);\r\n }\r\n else if (data.require_type == 3) {\r\n getbtn.visible = true;\r\n getbtn.clickHandler = Laya.Handler.create(this, this.VideoGet, [data], false);\r\n }\r\n }\r\n icon.skin = \"icon/\" + data.skinicon + \".png\";\r\n var showbtn = _cell.getChildAt(3);\r\n showbtn.clickHandler = Laya.Handler.create(this, this.ShowRole, [data, index], false);\r\n }\r\n SetGetBtn(_btn, _data) {\r\n var getuseing = _btn.getChildAt(1);\r\n getuseing.visible = _data.curskinstate == skinstate.useing;\r\n var getuse = _btn.getChildAt(2);\r\n getuse.visible = _data.curskinstate == skinstate.getnoues;\r\n var getvideo = _btn.getChildAt(3);\r\n getvideo.visible = false;\r\n var videoclip = getvideo.getChildAt(1);\r\n var getmoney = _btn.getChildAt(4);\r\n getmoney.visible = false;\r\n var moneyclip = getmoney.getChildAt(1);\r\n var getactiveity = _btn.getChildAt(5);\r\n getactiveity.visible = false;\r\n var getsign = _btn.getChildAt(6);\r\n getsign.visible = false;\r\n var getstage = _btn.getChildAt(7);\r\n getstage.visible = false;\r\n if (_data.curskinstate == skinstate.lock) {\r\n if (_data.require_type == 2) {\r\n getmoney.visible = true;\r\n moneyclip.text = _data.require_num.toString();\r\n }\r\n else if (_data.require_type == 3) {\r\n getvideo.visible = true;\r\n videoclip.text = this.GetProgress(_data.skinid) + \"/\" + _data.require_num;\r\n }\r\n else if (_data.require_type == 5) {\r\n getsign.visible = true;\r\n }\r\n else if (_data.require_type == 7) {\r\n getstage.visible = true;\r\n getstage.text = \"通过第\" + _data.require_num + \"关\";\r\n }\r\n else {\r\n getactiveity.visible = true;\r\n }\r\n }\r\n }\r\n ShowRole(_skin, _cellindex = 0) {\r\n for (var i = 0; i < this.skinlist.cells.length; i++) {\r\n var selected = this.skinlist.cells[i].getChildAt(1);\r\n selected.visible = i == _cellindex;\r\n }\r\n if (this.roomfangjianmaterial)\r\n this.roomfangjianmaterial.albedoTexture = null;\r\n if (!_skin || this.curskin == _skin) {\r\n return;\r\n }\r\n this.showpan.transform.rotationEuler = new Laya.Vector3(0, 0, 0);\r\n if (this.curskin != null && this.mainrole) {\r\n PoolManager.RecoverSprite3D(this.mainrole);\r\n }\r\n this.curskin = _skin;\r\n var asset;\r\n if (this.curskin.skintype == skintype.role) {\r\n asset = AssetManager.role.getValue(this.curskin.skinid);\r\n }\r\n else {\r\n asset = AssetManager.weapon.getValue(this.curskin.skinid - 6);\r\n }\r\n this.mainrole = PoolManager.GetSprite3D(asset);\r\n this.showpan.addChild(this.mainrole);\r\n this.mainrole.transform.localPosition = new Laya.Vector3(0, 0, 0);\r\n if (this.curskin.skintype != skintype.role)\r\n this.mainrole.transform.setWorldLossyScale(new Laya.Vector3(2.5, 2.5, 2.5));\r\n }\r\n GetProgress(_id) {\r\n var ccc = PlayerAccount.CurAccountData.GetUser(AccountUser.progress_themes);\r\n var progress = ccc[_id] ? ccc[_id] : 0;\r\n return progress;\r\n }\r\n MoneyGet(_skindata) {\r\n console.log(\"点击金币购买:\" + _skindata.skinname, \"1\");\r\n var money = Number(PlayerAccount.CurAccountData.GetUser(AccountUser.money));\r\n if (money < _skindata.require_num) {\r\n TtSdk.showToast(\"金币不足!\");\r\n return;\r\n }\r\n ;\r\n var key = PROTOCOLS.Buy;\r\n var agrs = [{ \"id\": _skindata.skinid.toString() }];\r\n NetworkManager.Instance.HttpPostRequest(key, agrs, Laya.Handler.create(this, () => {\r\n this.ReFreshData();\r\n console.log(\"点击金币购买成功:\" + _skindata.skinname, \"1\");\r\n var reward = new rewarddata(_skindata.skinid + 6000);\r\n reward.type = 1;\r\n reward.rewardicon = _skindata.skinicon;\r\n reward.rewardname = _skindata.skinname;\r\n reward.rewardnum = 1;\r\n WindowManager.Instance.OpenPopView(WindowType.RewardWindow, reward);\r\n }), null);\r\n }\r\n VideoGet(_skindata) {\r\n console.log(\"商城界面:点击看视频获得皮肤->\" + _skindata.skinname, \"1\");\r\n if (Laya.Browser.onMobile) {\r\n TtSdk.ShowVideo((flag) => {\r\n if (flag) {\r\n var getkey = PROTOCOLS.fission;\r\n var agrs = [{ \"id\": _skindata.skinid.toString() }, { \"channel\": \"video\" }, { \"t\": PlayerAccount.ServerTime.toString() }];\r\n NetworkManager.Instance.HttpPostRequest(getkey, agrs, Laya.Handler.create(this, () => {\r\n this.ReFreshData();\r\n console.log(\"点击看视频获得皮肤成功:\" + _skindata.skinname, \"1\");\r\n var curskin = PlayerAccount.CurAccountData.m_skinDic.getValue(_skindata.skinid);\r\n if (curskin.curskinstate == skinstate.getnoues) {\r\n var reward = new rewarddata(_skindata.skinid + 6000);\r\n reward.type = 1;\r\n reward.rewardicon = _skindata.skinicon;\r\n reward.rewardname = _skindata.skinname;\r\n reward.rewardnum = 1;\r\n WindowManager.Instance.OpenPopView(WindowType.RewardWindow, reward);\r\n }\r\n }), Laya.Handler.create(this, () => { }));\r\n }\r\n });\r\n }\r\n else {\r\n var getkey = PROTOCOLS.fission;\r\n var agrs21 = [{ \"id\": _skindata.skinid.toString() }, { \"channel\": \"video\" }, { \"t\": PlayerAccount.ServerTime.toString() }];\r\n NetworkManager.Instance.HttpPostRequest(getkey, agrs21, Laya.Handler.create(this, () => {\r\n this.ReFreshData();\r\n var curskin = PlayerAccount.CurAccountData.m_skinDic.getValue(_skindata.skinid);\r\n if (curskin.curskinstate == skinstate.getnoues) {\r\n var reward = new rewarddata(_skindata.skinid + 6000);\r\n reward.type = 1;\r\n reward.rewardicon = _skindata.skinicon;\r\n reward.rewardname = _skindata.skinname;\r\n reward.rewardnum = 1;\r\n WindowManager.Instance.OpenPopView(WindowType.RewardWindow, reward);\r\n }\r\n }), Laya.Handler.create(this, () => { }));\r\n }\r\n }\r\n ReFreshData() {\r\n this.moneyclip.text = PlayerAccount.CurAccountData.GetUser(AccountUser.money);\r\n PlayerAccount.CurAccountData.UpdateSkinDic();\r\n this.skinlist.array = this.GetSkinDatas(this.curskintype);\r\n var equip = PlayerAccount.CurAccountData.GetUser(AccountUser.equip_themes)[this.curskintype];\r\n var curskin = PlayerAccount.CurAccountData.m_skinDic.getValue(equip);\r\n console.log(this.curskintype, equip, curskin);\r\n this.ShowRole(curskin);\r\n }\r\n WearSkin(_skin) {\r\n if (!this.canwear)\r\n return;\r\n this.canwear = false;\r\n console.log(\"wear:\", _skin.skinid);\r\n var agrs = [{ \"id\": _skin.skinid.toString() }];\r\n NetworkManager.Instance.HttpPostRequest(PROTOCOLS.Equip, agrs, Laya.Handler.create(this, (e) => {\r\n this.ReFreshData();\r\n var equip = PlayerAccount.CurAccountData.GetUser(AccountUser.equip_themes)[this.curskintype];\r\n var curskin = PlayerAccount.CurAccountData.m_skinDic.getValue(equip);\r\n EventManager.Trigger(EventType.UseSkin, [_skin]);\r\n this.ShowRole(curskin);\r\n this.canwear = true;\r\n }), null);\r\n }\r\n ShowBoySkin() {\r\n this.curskintype = skintype.role;\r\n this.curskindatas = this.GetSkinDatas(skintype.role);\r\n this.skinlist.array = this.curskindatas;\r\n var equip = PlayerAccount.CurAccountData.GetUser(AccountUser.equip_themes)[this.curskintype];\r\n var equipskin = PlayerAccount.CurAccountData.m_skinDic.getValue(equip);\r\n this.ShowRole(equipskin);\r\n }\r\n ShowGirlSkin() {\r\n this.curskintype = skintype.weapon;\r\n this.curskindatas = this.GetSkinDatas(skintype.weapon);\r\n this.skinlist.array = this.curskindatas;\r\n var equip = PlayerAccount.CurAccountData.GetUser(AccountUser.equip_themes)[this.curskintype];\r\n var equipskin = PlayerAccount.CurAccountData.m_skinDic.getValue(equip);\r\n if (equipskin)\r\n this.ShowRole(equipskin);\r\n }\r\n ShowTwSkin() {\r\n this.curskintype = skintype.tw;\r\n this.curskindatas = this.GetSkinDatas(skintype.tw);\r\n this.skinlist.array = this.curskindatas;\r\n var equip = PlayerAccount.CurAccountData.GetUser(AccountUser.equip_themes)[this.curskintype];\r\n if (equip == undefined) {\r\n equip = 12;\r\n }\r\n var equipskin = PlayerAccount.CurAccountData.m_skinDic.getValue(equip);\r\n if (equipskin)\r\n this.ShowRole(equipskin);\r\n }\r\n ShowQZSkin() {\r\n this.curskintype = skintype.tw;\r\n this.curskindatas = this.GetSkinDatas(skintype.tw);\r\n this.skinlist.array = this.curskindatas;\r\n var equip = PlayerAccount.CurAccountData.GetUser(AccountUser.equip_themes)[this.curskintype];\r\n var equipskin = PlayerAccount.CurAccountData.m_skinDic.getValue(equip);\r\n if (equipskin)\r\n this.ShowRole(equipskin);\r\n }\r\n}\r\n",
  3. "references": [
  4. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Window/Component/IWindow.ts",
  5. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Window/WindowManager.ts",
  6. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Window/Component/SwitchButton.ts",
  7. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Util/PoolManager.ts",
  8. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Network/NetworkManager.ts",
  9. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/DataMaker.ts",
  10. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Network/PlayerAccount.ts",
  11. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/SkinMaker.ts",
  12. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/EventManager.ts",
  13. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/AssetManager.ts",
  14. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Util/GameUtils.ts",
  15. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/ui/layaMaxUI.ts",
  16. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Util/TtSdk.ts"
  17. ]
  18. }