CTT/Server/Hotfix/Game/Common/Bag/AddGoodsEffect.cs

54 lines
2.0 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using Cal.DataTable;
using System;
using System.Collections.Generic;
using System.Text;
namespace ET
{
public class AddGoodsEffect : GoodsEffect
{
public override string Init(Unit unit, GoodsBase goodsBase, bool isLock = false)
{
base.unit = unit;
GoodsBase = goodsBase;
IsLock = isLock;
Execute().Coroutine();
return string.Empty;
}
public override async ETVoid Execute()
{
for (int i = 0; i < GoodsBase.EquipArr.Length; i++)
{
2021-04-11 19:50:39 +08:00
GoodsBase.Equip equip = GoodsBase.EquipArr[i];
2021-04-08 20:09:59 +08:00
if (equip.Equip_Id == 0) continue;
if (MathHelper.IsHit(equip.Equip_Probability))
{
ItemComponent.Instance.AddItem(unit, equip.Equip_Id, 1,isLock: IsLock,getSource:GoodsBase.Name);
}
}
for (int i = 0; i < GoodsBase.GoodsArr.Length; i++)
{
2021-04-11 19:50:39 +08:00
GoodsBase.Goods goods = GoodsBase.GoodsArr[i];
2021-04-08 20:09:59 +08:00
if (goods.Goods_Id == 0) continue;
if (MathHelper.IsHit(goods.Goods_Probability))
{
ItemComponent.Instance.AddItem(unit, goods.Goods_Id, goods.Goods_Count, isLock: IsLock,getSource:GoodsBase.Name);
}
}
for (int i = 0; i < GoodsBase.MaterialsArr.Length; i++)
{
2021-04-11 19:50:39 +08:00
GoodsBase.Materials materials = GoodsBase.MaterialsArr[i];
2021-04-08 20:09:59 +08:00
if (materials.Materials_Id == 0) continue;
if (MathHelper.IsHit(materials.Materials_Probability))
{
ItemComponent.Instance.AddItem(unit, materials.Materials_Id, materials.Materials_Count, isLock: IsLock,getSource:GoodsBase.Name);
}
}
2021-04-11 19:50:39 +08:00
M2C_SendBag ret = new M2C_SendBag();
2021-04-08 20:09:59 +08:00
BagHelper.GetBagInfo(unit, ret.BagMapList);
MessageHelper.SendActor(unit, ret);
await ETTask.CompletedTask;
}
}
}