using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Text.RegularExpressions;
|
using UnityEngine;
|
|
public class RewardAnalysis:TRichAnalysis<RewardAnalysis>
|
{
|
public static Regex Reward_Regex = new Regex(@"<reward (.*?)/>", RegexOptions.Singleline);
|
|
private static RewardInfo presentReward = null;
|
|
public void GetReward(string val,ref List<RewardInfo> rewardList)
|
{
|
rewardList.Clear();
|
if (!Reward_Regex.IsMatch(val)) {
|
return;
|
}
|
else {
|
foreach (Match match in Reward_Regex.Matches(val)) {
|
RewardInfo reward = new RewardInfo();
|
presentReward = reward;
|
rewardList.Add(reward);
|
AnalysisSplitEvent(match.Value);
|
if (presentReward.info == "item") {
|
presentReward.itemCfg = ItemConfig.Get(presentReward.id);
|
}
|
}
|
}
|
}
|
|
private void AnalysisSplitEvent(string val)
|
{
|
string[] array = GetSplitEvent(val);
|
if (array.Length > 0) {
|
foreach (var split_event in array) {
|
AnalysisSplitData(split_event);
|
}
|
}
|
}
|
|
private void AnalysisSplitData(string val)
|
{
|
string[] array = GetSplitData(val);
|
if (array.Length > 0) {
|
foreach (var split_data in array) {
|
AnalysisSplitValue(split_data);
|
}
|
}
|
}
|
|
private void AnalysisSplitValue(string split_data)
|
{
|
string[] array = GetSplitValue(split_data);
|
if (array.Length == 2) {
|
switch (array[0].ToLower()) {
|
case "info": {
|
presentReward.info = array[1];
|
}
|
break;
|
case "id": {
|
int.TryParse(array[1],out presentReward.id);
|
}
|
break;
|
case "exppoint":
|
{
|
int.TryParse(array[1], out presentReward.expPoint);
|
}
|
break;
|
case "num": {
|
int.TryParse(array[1], out presentReward.num);
|
}
|
break;
|
case "word": {
|
presentReward.showtype = RewardShowType.Word;
|
}
|
break;
|
case "image": {
|
presentReward.showtype = RewardShowType.Image;
|
}
|
break;
|
}
|
}
|
}
|
|
public override string Analysis(string val, bool IsRich)
|
{
|
return string.Empty;
|
}
|
|
public override string CalculateTextIndex(string val, int index)
|
{
|
return string.Empty;
|
}
|
|
public class RewardInfo
|
{
|
public string info;
|
public int id=0;
|
public int num=0;
|
public int expPoint = 0;
|
|
public ItemConfig itemCfg = null;
|
|
public RewardShowType showtype = RewardShowType.Image;
|
}
|
|
public enum RewardShowType
|
{
|
Word,
|
Image,
|
}
|
}
|