106 lines
3.4 KiB
C#
106 lines
3.4 KiB
C#
using BrewMonster;
|
|
using ModelRenderer.Scripts.GameData;
|
|
using BrewMonster.Network;
|
|
using BrewMonster.Scripts.Managers;
|
|
using BrewMonster.Scripts;
|
|
using CSNetwork.GPDataType;
|
|
namespace BrewMonster.Scripts
|
|
{
|
|
/// <summary>
|
|
/// Transmit scroll item(Da dich chuyen). It is a part of EC_IvtrConsume(c++)
|
|
/// TransmitScroll allow player to teleport to other maps' towns.
|
|
/// </summary>
|
|
public class EC_IvtrTransmitScroll : EC_IvtrItem
|
|
{
|
|
protected TRANSMITSCROLL_ESSENCE m_pDBEssence;
|
|
/// <summary>
|
|
/// Constructor for Transmit Scroll
|
|
/// </summary>
|
|
/// <param name="tid">Template id</param>
|
|
/// <param name="expire_date">Expire date</param>
|
|
public EC_IvtrTransmitScroll(int tid, int expire_date) : base(tid, expire_date)
|
|
{
|
|
m_iCID = (int)InventoryClassId.ICID_TRANSMITSCROLL;
|
|
|
|
// Get database data
|
|
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
|
|
DATA_TYPE DataType = DATA_TYPE.DT_INVALID;
|
|
m_pDBEssence = (TRANSMITSCROLL_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
|
|
|
m_iPileLimit = m_pDBEssence.pile_num_max;
|
|
m_iPrice = m_pDBEssence.price;
|
|
m_iShopPrice = m_pDBEssence.shop_price;
|
|
m_iProcType = (int)m_pDBEssence.proc_type;
|
|
m_i64EquipMask = 0;
|
|
m_bUseable = true;
|
|
m_dwUseFlags = (uint)UseCondition.USE_PERSIST;
|
|
|
|
m_bNeedUpdate = false;
|
|
}
|
|
|
|
public EC_IvtrTransmitScroll(EC_IvtrTransmitScroll other) : base(other)
|
|
{
|
|
m_pDBEssence = other.m_pDBEssence;
|
|
}
|
|
public override bool SetItemInfo(byte[] pInfoData, int iDataLen)
|
|
{
|
|
base.SetItemInfo(pInfoData, iDataLen);
|
|
return true;
|
|
}
|
|
public override string GetIconFile()
|
|
{
|
|
return m_pDBEssence.FileIcon;
|
|
}
|
|
public int GetCoolTime(ref int piMax)
|
|
{
|
|
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
|
if (!pHost)
|
|
return 0;
|
|
int iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_TOWNSCROLL, out piMax);
|
|
return iTime;
|
|
}
|
|
|
|
protected override string GetNormalDesc(bool bRepair)
|
|
{
|
|
m_strDesc = string.Empty;
|
|
|
|
// Try to build item description
|
|
CECStringTab pDescTab = EC_Game.GetItemDesc();
|
|
int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE;
|
|
int namecol = DecideNameCol();
|
|
|
|
if (m_iCount > 1)
|
|
AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAMENUMBER), GetName(), m_iCount);
|
|
else
|
|
AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAME), GetName());
|
|
|
|
AddIDDescText();
|
|
|
|
AddExpireTimeDesc();
|
|
|
|
// Price
|
|
AddPriceDesc(white, bRepair);
|
|
|
|
// Extend description
|
|
AddExtDescText();
|
|
|
|
return m_strDesc;
|
|
}
|
|
// Get drop model for shown
|
|
public override string GetDropModel()
|
|
{
|
|
return m_pDBEssence.FileMatter;
|
|
}
|
|
|
|
// Check item use condition
|
|
public override bool CheckUseCondition()
|
|
{
|
|
if( EC_Game.GetGameRun().GetHostPlayer().IsFighting() )
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|