244 lines
6.9 KiB
C#
244 lines
6.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.U2D;
|
|
using UnityEngine.UI;
|
|
|
|
public class InvitePanel : BasePanel
|
|
{
|
|
public Button btnClose;
|
|
//帮助按钮
|
|
public Button btnHelp;
|
|
//礼物按钮
|
|
public Button btnGift1;
|
|
private bool isOpen1 = false;
|
|
public Button btnGift2;
|
|
private bool isOpen2 = false;
|
|
public Button btnGift3;
|
|
private bool isOpen3 = false;
|
|
public Button btnGift4;
|
|
private bool isOpen4 = false;
|
|
public Button btnGift5;
|
|
private bool isOpen5 = false;
|
|
public Button btnGift6;
|
|
private bool isOpen6 = false;
|
|
|
|
//玩家数据
|
|
private PlayerData player;
|
|
|
|
//获取图集
|
|
private SpriteAtlas sa;
|
|
|
|
|
|
public override void Init()
|
|
{
|
|
player = GameDataMgr.Instance.player;
|
|
//打开面板,就更新面板
|
|
UpdateGift();
|
|
|
|
btnClose.onClick.AddListener(() =>
|
|
{
|
|
UIManager.Instance.HidePanel<InvitePanel>(false);
|
|
});
|
|
btnGift1.onClick.AddListener(() =>
|
|
{
|
|
if (isOpen1)
|
|
{
|
|
//关闭按钮
|
|
OpenGift(btnGift1);
|
|
//通知服务器,奖励已领取
|
|
player.inviteGiftOpen[0] = true;
|
|
GetGold();
|
|
}
|
|
});
|
|
btnGift2.onClick.AddListener(() =>
|
|
{
|
|
if (isOpen2)
|
|
{
|
|
//关闭按钮
|
|
OpenGift(btnGift2);
|
|
//获取奖励,更新游戏面板金币数据,通知服务器,哪一个关卡奖励已领取
|
|
player.inviteGiftOpen[1] = true;
|
|
GetGold();
|
|
}
|
|
|
|
});
|
|
btnGift3.onClick.AddListener(() =>
|
|
{
|
|
if (isOpen3)
|
|
{
|
|
//关闭按钮
|
|
OpenGift(btnGift3);
|
|
//获取奖励,更新游戏面板金币数据,通知服务器,哪一个关卡奖励已领取
|
|
player.inviteGiftOpen[2] = true;
|
|
GetGold();
|
|
}
|
|
});
|
|
btnGift4.onClick.AddListener(() =>
|
|
{
|
|
if (isOpen4)
|
|
{
|
|
//关闭按钮
|
|
OpenGift(btnGift4);
|
|
//获取奖励,更新游戏面板金币数据,通知服务器,哪一个关卡奖励已领取
|
|
player.inviteGiftOpen[3] = true;
|
|
GetGold();
|
|
}
|
|
});
|
|
btnGift5.onClick.AddListener(() =>
|
|
{
|
|
if (isOpen5)
|
|
{
|
|
//关闭按钮
|
|
OpenGift(btnGift5);
|
|
//获取奖励,更新游戏面板金币数据,通知服务器,哪一个关卡奖励已领取
|
|
player.inviteGiftOpen[4] = true;
|
|
GetGold();
|
|
}
|
|
});
|
|
btnGift6.onClick.AddListener(() =>
|
|
{
|
|
if (isOpen6)
|
|
{
|
|
//关闭按钮
|
|
OpenGift(btnGift6);
|
|
//获取奖励,更新游戏面板金币数据,通知服务器,哪一个关卡奖励已领取
|
|
player.inviteGiftOpen[5] = true;
|
|
GetGold();
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
//获得随机金币
|
|
private void GetGold()
|
|
{
|
|
int gold = 0;
|
|
int valueRan = Random.Range(0, 10); // 生成0到1之间的随机数
|
|
|
|
if (valueRan < 6)
|
|
{
|
|
// 60% 概率获得 1-100 金币
|
|
gold = Random.Range(1, 101);
|
|
}
|
|
else if (valueRan >= 6 && valueRan < 9f)
|
|
{
|
|
// 30% 概率获得 101-500 金币
|
|
gold = Random.Range(101, 501);
|
|
}
|
|
else
|
|
{
|
|
// 10% 概率获得 501-1000 金币
|
|
gold = Random.Range(501, 1001);
|
|
}
|
|
//获取奖励,更新游戏面板金币数据,通知服务器,哪一个关卡奖励已领取
|
|
player.gold += gold;
|
|
StartCoroutine(NetMgr.Instance.ChangeDataPost(player));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新通关关数的面板
|
|
/// </summary>
|
|
private void UpdateGift()
|
|
{
|
|
sa = Resources.Load<SpriteAtlas>("Atlas/OnlinePanel");
|
|
if (player.invite >= 1 && !isOpen1)
|
|
{
|
|
if (!player.inviteGiftOpen[0])
|
|
{
|
|
btnGift1.image.sprite = sa.GetSprite("icn_giftfixed");
|
|
isOpen1 = true;
|
|
}
|
|
else
|
|
{
|
|
OpenGift(btnGift1);
|
|
}
|
|
}
|
|
if (player.invite >=2 && !isOpen2)
|
|
{
|
|
if (!player.inviteGiftOpen[1])
|
|
{
|
|
btnGift2.image.sprite = sa.GetSprite("icn_giftfixed");
|
|
isOpen2 = true;
|
|
}
|
|
else
|
|
{
|
|
OpenGift(btnGift2);
|
|
}
|
|
}
|
|
if (player.invite >= 3 && !isOpen3)
|
|
{
|
|
if (!player.inviteGiftOpen[2])
|
|
{
|
|
btnGift3.image.sprite = sa.GetSprite("icn_giftfixed");
|
|
isOpen3 = true;
|
|
}
|
|
else
|
|
{
|
|
OpenGift(btnGift3);
|
|
}
|
|
}
|
|
if (player.invite >= 5 && !isOpen4)
|
|
{
|
|
if (!player.inviteGiftOpen[3])
|
|
{
|
|
btnGift4.image.sprite = sa.GetSprite("icn_giftfixed");
|
|
isOpen4 = true;
|
|
}
|
|
else
|
|
{
|
|
OpenGift(btnGift4);
|
|
}
|
|
}
|
|
if (player.invite >= 10 && !isOpen5)
|
|
{
|
|
if (!player.inviteGiftOpen[4])
|
|
{
|
|
btnGift5.image.sprite = sa.GetSprite("icn_giftfixed");
|
|
isOpen5 = true;
|
|
}
|
|
else
|
|
{
|
|
OpenGift(btnGift5);
|
|
}
|
|
}
|
|
if (player.invite >= 15 && !isOpen6)
|
|
{
|
|
if (!player.inviteGiftOpen[5])
|
|
{
|
|
btnGift6.image.sprite = sa.GetSprite("icn_giftfixed");
|
|
isOpen6 = true;
|
|
}
|
|
else
|
|
{
|
|
OpenGift(btnGift6);
|
|
}
|
|
}
|
|
if (player.invite < 1)
|
|
{
|
|
btnGift1.image.sprite = sa.GetSprite("icn_giftfixedgray");
|
|
btnGift1.GetComponent<RectTransform>().sizeDelta = new Vector2(108f, 112f);
|
|
btnGift2.image.sprite = sa.GetSprite("icn_giftfixedgray");
|
|
btnGift2.GetComponent<RectTransform>().sizeDelta = new Vector2(108f, 112f);
|
|
btnGift3.image.sprite = sa.GetSprite("icn_giftfixedgray");
|
|
btnGift3.GetComponent<RectTransform>().sizeDelta = new Vector2(108f, 112f);
|
|
btnGift4.image.sprite = sa.GetSprite("icn_giftfixedgray");
|
|
btnGift4.GetComponent<RectTransform>().sizeDelta = new Vector2(108f, 112f);
|
|
btnGift5.image.sprite = sa.GetSprite("icn_giftfixedgray");
|
|
btnGift5.GetComponent<RectTransform>().sizeDelta = new Vector2(108f, 112f);
|
|
btnGift6.image.sprite = sa.GetSprite("icn_giftfixedgray");
|
|
btnGift6.GetComponent<RectTransform>().sizeDelta = new Vector2(108f, 112f);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 打开礼包之后的显示图片
|
|
/// </summary>
|
|
/// <param name="btn"></param>
|
|
private void OpenGift(Button btn)
|
|
{
|
|
btn.image.sprite = sa.GetSprite("icn_giftfixedopen");
|
|
btn.GetComponent<RectTransform>().sizeDelta = new Vector2(134f, 112f);
|
|
}
|
|
}
|