CharacterSlotMgr.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { _decorator, Component, Node, Sprite, UITransform, Vec2 } from 'cc';
  2. import { RoleCard } from './RoleCard';
  3. import { PopupUIDataConfig } from './GameScene/Data/PopupUIDataConfig';
  4. const { ccclass, property } = _decorator;
  5. @ccclass('CharacterSlotMgr')
  6. export class CharacterSlotMgr extends Component {
  7. private _roleList: Node = null;
  8. protected onLoad(): void {
  9. this._roleList = this.node.parent.parent.getChildByName("RoleList");
  10. }
  11. start() {
  12. this.setCardSlots();
  13. }
  14. private setCardSlots(){
  15. const ownCardSlot: number = PopupUIDataConfig.Instance.getAvailableCardSlot();
  16. for (const element of this.node.children) {
  17. if(element.getSiblingIndex() === (ownCardSlot - 1)){
  18. if(element.getChildByName("Lock").active){
  19. element.getChildByName("Label").active = false;
  20. element.getChildByName("Lock").active = false;
  21. this.node.children[ownCardSlot].getChildByName("Label").active = true;
  22. }
  23. };
  24. if(element.getChildByName("Lock").active){
  25. if(element.getSiblingIndex() < ownCardSlot){
  26. element.getChildByName("Label").active = false;
  27. element.getChildByName("Lock").active = false;
  28. }
  29. }
  30. }
  31. }
  32. removeCardImg(pos: Vec2) {
  33. for (const element1 of this.node.children) {
  34. const box = element1.getComponent(UITransform).getBoundingBoxToWorld();
  35. if (box.contains(pos)) {
  36. let a: Node = element1.getChildByName('Sprite');
  37. if(!a.getComponent(Sprite).spriteFrame){
  38. return;
  39. }
  40. for (const element2 of this._roleList.getChildByPath("view/content").children) {
  41. if (element2.getChildByName("Role_Img").getComponent(Sprite).spriteFrame.name
  42. === a.getComponent(Sprite).spriteFrame.name) {
  43. element2.getComponent(RoleCard).isOpenShadow(false);
  44. a.getComponent(Sprite).spriteFrame = null;
  45. return;
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }