111 lines
3.6 KiB
C#
111 lines
3.6 KiB
C#
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
|
|||
|
public class ShopComm
|
|||
|
{
|
|||
|
/*
|
|||
|
初始价格是20金币,购买后会涨价,第n次购买所需金币10n*(n-1)+20
|
|||
|
4层商店每次加2点攻或4点防
|
|||
|
12层商店每次加4点攻或8点防
|
|||
|
32层商店每次加8点攻或16点防
|
|||
|
46层商店每次加10点攻或20点防
|
|||
|
*/
|
|||
|
public enum E_ShopFloor
|
|||
|
{
|
|||
|
F4,
|
|||
|
F12,
|
|||
|
F32,
|
|||
|
F46
|
|||
|
}
|
|||
|
public class FloorShopInfo
|
|||
|
{
|
|||
|
public E_ShopFloor Floor;
|
|||
|
public int AddHP;
|
|||
|
public int AddAtk;
|
|||
|
public int AddDef;
|
|||
|
}
|
|||
|
|
|||
|
static Dictionary<E_ShopFloor, FloorShopInfo> dictShopFloor = new Dictionary<E_ShopFloor, FloorShopInfo>()
|
|||
|
{
|
|||
|
{ E_ShopFloor.F4,new FloorShopInfo(){Floor = E_ShopFloor.F4,AddAtk = 2,AddDef = 4 ,AddHP = 100}},
|
|||
|
{ E_ShopFloor.F12,new FloorShopInfo(){Floor = E_ShopFloor.F4,AddAtk = 4,AddDef = 8,AddHP = 100 }},
|
|||
|
{ E_ShopFloor.F32,new FloorShopInfo(){Floor = E_ShopFloor.F4,AddAtk = 8,AddDef = 16,AddHP = 100 }},
|
|||
|
{ E_ShopFloor.F46,new FloorShopInfo(){Floor = E_ShopFloor.F4,AddAtk = 10,AddDef = 20,AddHP = 100 }},
|
|||
|
};
|
|||
|
|
|||
|
public static FloorShopInfo GetFloorShopInfo(E_ShopFloor floor)
|
|||
|
{
|
|||
|
return dictShopFloor[floor];
|
|||
|
}
|
|||
|
public static int GetShopNeedMoney(E_ShopFloor floor)
|
|||
|
{
|
|||
|
int BuyNum = 0;
|
|||
|
switch (floor)
|
|||
|
{
|
|||
|
case E_ShopFloor.F4: BuyNum = GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F4; break;
|
|||
|
case E_ShopFloor.F12: BuyNum = GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F12; break;
|
|||
|
case E_ShopFloor.F32: BuyNum = GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F32; break;
|
|||
|
case E_ShopFloor.F46: BuyNum = GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F46; break;
|
|||
|
}
|
|||
|
return (10 * BuyNum * (BuyNum - 1) + 20);
|
|||
|
}
|
|||
|
public static bool CheckMoney(E_ShopFloor floor)
|
|||
|
{
|
|||
|
int needMoney = GetShopNeedMoney(floor);
|
|||
|
// 判断金币是否足够
|
|||
|
if (GameManager.Instance.PlayerManager.PlayerInfo.Gold < needMoney)
|
|||
|
{
|
|||
|
GameManager.Instance.UIManager.ShowInfo($"不会有人连 {needMoney} 金币都没有吧!");
|
|||
|
// 音频播放
|
|||
|
GameManager.Instance.SoundManager.PlaySound(ESoundType.Effect, "No");
|
|||
|
return false;
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
public static void SetShopUseMoney(E_ShopFloor floor)
|
|||
|
{
|
|||
|
int needMoney = GetShopNeedMoney(floor);
|
|||
|
GameManager.Instance.PlayerManager.PlayerInfo.Gold -= needMoney;
|
|||
|
|
|||
|
//追加购买次数
|
|||
|
switch (floor)
|
|||
|
{
|
|||
|
case E_ShopFloor.F4: GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F4++; break;
|
|||
|
case E_ShopFloor.F12: GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F12++; break;
|
|||
|
case E_ShopFloor.F32: GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F32++; break;
|
|||
|
case E_ShopFloor.F46: GameManager.Instance.PlayerManager.PlayerInfo.StoreBuyNum_F46++; break;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
public static void BuyHP(E_ShopFloor floor)
|
|||
|
{
|
|||
|
if (!CheckMoney(floor))
|
|||
|
return;
|
|||
|
SetShopUseMoney(floor);
|
|||
|
int hp = dictShopFloor[floor].AddHP;
|
|||
|
GameManager.Instance.PlayerManager.PlayerInfo.Health += hp;
|
|||
|
GameManager.Instance.UIManager.ShowInfo($"获得 {hp} 点生命值提升!");
|
|||
|
// 音频播放
|
|||
|
GameManager.Instance.SoundManager.PlaySound(ESoundType.Effect, "Yes");
|
|||
|
}
|
|||
|
public static void BuyAtk(E_ShopFloor floor)
|
|||
|
{
|
|||
|
if (!CheckMoney(floor))
|
|||
|
return;
|
|||
|
SetShopUseMoney(floor);
|
|||
|
int atk = dictShopFloor[floor].AddAtk;
|
|||
|
GameManager.Instance.PlayerManager.PlayerInfo.Attack += atk;
|
|||
|
GameManager.Instance.UIManager.ShowInfo($"获得 {atk} 点攻击力提升!");
|
|||
|
}
|
|||
|
public static void BuyDef(E_ShopFloor floor)
|
|||
|
{
|
|||
|
if (!CheckMoney(floor))
|
|||
|
return;
|
|||
|
SetShopUseMoney(floor);
|
|||
|
int def = dictShopFloor[floor].AddDef;
|
|||
|
GameManager.Instance.PlayerManager.PlayerInfo.Defence += def;
|
|||
|
GameManager.Instance.UIManager.ShowInfo($"获得 {def} 点防御力提升!");
|
|||
|
}
|
|||
|
|
|||
|
}
|