Files
taptap2024_GJ_chidouren/Assets/Scripts/Rof/RofElements.cs
2024-10-16 00:03:41 +08:00

359 lines
18 KiB
C#

using System;
using System.Text;
namespace Game
{
public class RofAchievementRow : IRofBase
{
public int ID { get; private set; }
public string Key { get; private set; }
public int State { get; private set; }
public string Desc { get; private set; }
public string Info { get; private set; }
public int AchievementCode { get; private set; }
public int Condition { get; private set; }
public int TargetValue { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nKeyLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
Key = Encoding.UTF8.GetString(rData, nOffset, nKeyLen); nOffset += nKeyLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
State = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nDescLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
Desc = Encoding.UTF8.GetString(rData, nOffset, nDescLen); nOffset += nDescLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nInfoLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
Info = Encoding.UTF8.GetString(rData, nOffset, nInfoLen); nOffset += nInfoLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
AchievementCode = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
Condition = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
TargetValue = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofEchoCardRow : IRofBase
{
public int ID { get; private set; }
public int quality { get; private set; }
public string name { get; private set; }
public int price { get; private set; }
public int skillId { get; private set; }
public string enemyType { get; private set; }
public string spritePath { get; private set; }
public int weight { get; private set; }
public string maskId { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nnameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
name = Encoding.UTF8.GetString(rData, nOffset, nnameLen); nOffset += nnameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
price = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
skillId = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nenemyTypeLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
enemyType = Encoding.UTF8.GetString(rData, nOffset, nenemyTypeLen); nOffset += nenemyTypeLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nspritePathLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
spritePath = Encoding.UTF8.GetString(rData, nOffset, nspritePathLen); nOffset += nspritePathLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
weight = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nmaskIdLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
maskId = Encoding.UTF8.GetString(rData, nOffset, nmaskIdLen); nOffset += nmaskIdLen;
return nOffset;
}
}
public class RofEchoCardGroupRow : IRofBase
{
public int ID { get; private set; }
public string name { get; private set; }
public string echoCards { get; private set; }
public int Nweight { get; private set; }
public int Rweight { get; private set; }
public int Srweight { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nnameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
name = Encoding.UTF8.GetString(rData, nOffset, nnameLen); nOffset += nnameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nechoCardsLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
echoCards = Encoding.UTF8.GetString(rData, nOffset, nechoCardsLen); nOffset += nechoCardsLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
Nweight = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
Rweight = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
Srweight = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofEnemyRow : IRofBase
{
public int ID { get; private set; }
public long enemyHp { get; private set; }
public int awardCoin { get; private set; }
public string enemyName { get; private set; }
public int quality { get; private set; }
public int enemyGroup { get; private set; }
public string echoIds { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 8);}
enemyHp = (long)BitConverter.ToUInt64(rData, nOffset); nOffset += 8;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
awardCoin = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nenemyNameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
enemyName = Encoding.UTF8.GetString(rData, nOffset, nenemyNameLen); nOffset += nenemyNameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
enemyGroup = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nechoIdsLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
echoIds = Encoding.UTF8.GetString(rData, nOffset, nechoIdsLen); nOffset += nechoIdsLen;
return nOffset;
}
}
public class RofExchangeCardRow : IRofBase
{
public int ID { get; private set; }
public int quality { get; private set; }
public string name { get; private set; }
public int price { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nnameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
name = Encoding.UTF8.GetString(rData, nOffset, nnameLen); nOffset += nnameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
price = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofGamePartConfigRow : IRofBase
{
public int ID { get; private set; }
public long enemyHp { get; private set; }
public float enemyHpOffset { get; private set; }
public int awardCoin { get; private set; }
public int quailty { get; private set; }
public string sceneName { get; private set; }
public string echoCardGroupID { get; private set; }
public string fragmentRange { get; private set; }
public int baseFragment { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 8);}
enemyHp = (long)BitConverter.ToUInt64(rData, nOffset); nOffset += 8;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
enemyHpOffset = BitConverter.ToSingle(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
awardCoin = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quailty = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nsceneNameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
sceneName = Encoding.UTF8.GetString(rData, nOffset, nsceneNameLen); nOffset += nsceneNameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nechoCardGroupIDLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
echoCardGroupID = Encoding.UTF8.GetString(rData, nOffset, nechoCardGroupIDLen); nOffset += nechoCardGroupIDLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nfragmentRangeLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
fragmentRange = Encoding.UTF8.GetString(rData, nOffset, nfragmentRangeLen); nOffset += nfragmentRangeLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
baseFragment = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofMaskCardRow : IRofBase
{
public int ID { get; private set; }
public int quality { get; private set; }
public string name { get; private set; }
public int price { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nnameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
name = Encoding.UTF8.GetString(rData, nOffset, nnameLen); nOffset += nnameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
price = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofReplenishCardRow : IRofBase
{
public int ID { get; private set; }
public int quality { get; private set; }
public string name { get; private set; }
public string desc { get; private set; }
public int price { get; private set; }
public int humanWeight { get; private set; }
public int earthWeight { get; private set; }
public int heavenWeight { get; private set; }
public int cardType { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nnameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
name = Encoding.UTF8.GetString(rData, nOffset, nnameLen); nOffset += nnameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int ndescLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
desc = Encoding.UTF8.GetString(rData, nOffset, ndescLen); nOffset += ndescLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
price = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
humanWeight = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
earthWeight = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
heavenWeight = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
cardType = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofSecretCardRow : IRofBase
{
public int ID { get; private set; }
public int quality { get; private set; }
public string name { get; private set; }
public int price { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nnameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
name = Encoding.UTF8.GetString(rData, nOffset, nnameLen); nOffset += nnameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
price = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofSkillRow : IRofBase
{
public int ID { get; private set; }
public string skillName { get; private set; }
public string skillDesc { get; private set; }
public int quality { get; private set; }
public int price { get; private set; }
public string condition { get; private set; }
public float rate_add { get; private set; }
public float rate_mun { get; private set; }
public float atk_add { get; private set; }
public string initSkillAction { get; private set; }
public string actionTrigger { get; private set; }
public string skillCondition { get; private set; }
public float skillActiveRate { get; private set; }
public string action { get; private set; }
public string customSkill { get; private set; }
public string comboSkill { get; private set; }
public int comboModel { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nskillNameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
skillName = Encoding.UTF8.GetString(rData, nOffset, nskillNameLen); nOffset += nskillNameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nskillDescLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
skillDesc = Encoding.UTF8.GetString(rData, nOffset, nskillDescLen); nOffset += nskillDescLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
price = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nconditionLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
condition = Encoding.UTF8.GetString(rData, nOffset, nconditionLen); nOffset += nconditionLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
rate_add = BitConverter.ToSingle(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
rate_mun = BitConverter.ToSingle(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
atk_add = BitConverter.ToSingle(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int ninitSkillActionLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
initSkillAction = Encoding.UTF8.GetString(rData, nOffset, ninitSkillActionLen); nOffset += ninitSkillActionLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nactionTriggerLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
actionTrigger = Encoding.UTF8.GetString(rData, nOffset, nactionTriggerLen); nOffset += nactionTriggerLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nskillConditionLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
skillCondition = Encoding.UTF8.GetString(rData, nOffset, nskillConditionLen); nOffset += nskillConditionLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
skillActiveRate = BitConverter.ToSingle(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nactionLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
action = Encoding.UTF8.GetString(rData, nOffset, nactionLen); nOffset += nactionLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int ncustomSkillLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
customSkill = Encoding.UTF8.GetString(rData, nOffset, ncustomSkillLen); nOffset += ncustomSkillLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int ncomboSkillLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
comboSkill = Encoding.UTF8.GetString(rData, nOffset, ncomboSkillLen); nOffset += ncomboSkillLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
comboModel = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
public class RofWeaponCardRow : IRofBase
{
public int ID { get; private set; }
public int quality { get; private set; }
public string name { get; private set; }
public string sprite { get; private set; }
public int price { get; private set; }
public int ReadBody(byte[] rData, int nOffset)
{
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
ID = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
quality = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nnameLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
name = Encoding.UTF8.GetString(rData, nOffset, nnameLen); nOffset += nnameLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
int nspriteLen = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
sprite = Encoding.UTF8.GetString(rData, nOffset, nspriteLen); nOffset += nspriteLen;
if (BitConverter.IsLittleEndian){Array.Reverse(rData, nOffset, 4);}
price = (int)BitConverter.ToUInt32(rData, nOffset); nOffset += 4;
return nOffset;
}
}
}