海淀天下城电子沙盘单机版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.8 KiB

4 years ago
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CloneFireManObj : CloneSingleObj
{
public override void SetCloneGameObject(GameObject obj)
{
obj.AddComponent<ObjSelectCtrl>();
PowerAttribute PowerAttribute = obj.GetComponent<PowerAttribute>();
PowerAttribute.Affiliation = GlobalVariable.TeamName;
PowerAttribute.Number = number;
PowerAttribute.TypeName = CloneObjName.Instance.GetCloneNameByType(cloneObjType);
SelectedObjs.characters.Add(obj);
}
public override void AddRecordFrame(List<ObjectData> list)
{
foreach (Transform child in transform)
{
PowerAttribute PowerAttribute = child.GetComponent<PowerAttribute>();
var data = new PowerRecordObjectBase()
{
Task = PowerAttribute.Task,
Affiliation = PowerAttribute.Affiliation,
Number = PowerAttribute.Number,
TypeName = PowerAttribute.TypeName,
SpecialData = new List<KeyValueData>()
};
var RecordDiverseDatas = GetComponents<IRecordDiverseData>();
foreach (IRecordDiverseData item in RecordDiverseDatas)
{
item.RecordDiverseData(data.SpecialData, child.gameObject);
}
SetBaseData(data, child);
string json = JsonUtility.ToJson(data);
var objectJson = new ObjectData();
objectJson.cloneObjType = cloneObjType;
objectJson.json = json;
list.Add(objectJson);
}
}
public override void AddRecordEventClone(Transform obj)
{
if (RecordEvent.IsRecord())
{
var eventData = new EventData
{
time = RecordManager.Instance.RecordTimer,
cloneObjType = cloneObjType,
eventType = RecordEventType.Clone
};
PowerAttribute PowerAttribute = obj.GetComponent<PowerAttribute>();
var data = new PowerRecordObjectBase()
{
Task = PowerAttribute.Task,
Affiliation = PowerAttribute.Affiliation,
Number = PowerAttribute.Number,
TypeName = PowerAttribute.TypeName,
SpecialData = new List<KeyValueData>()
};
var RecordDiverseDatas = GetComponents<IRecordDiverseData>();
foreach (IRecordDiverseData item in RecordDiverseDatas)
{
item.RecordDiverseData(data.SpecialData, obj.gameObject);
}
SetBaseData(data, obj);
string json = JsonUtility.ToJson(data);
eventData.json = json;
RecordManager.Instance.jsonData.eventDataList.Add(eventData);
}
}
}