public static Units CreateMapItem(MapItemInfo info, UnitControlType unitControlType = UnitControlType.None) { if (info == null) { return(null); } SkillUnitData vo = Singleton <SkillUnitDataMgr> .Instance.GetVo(info.uniTypeId); if (vo == null) { return(null); } Dictionary <DataType, object> dictionary = new Dictionary <DataType, object>(); dictionary.Add(DataType.NameId, info.uniTypeId); dictionary.Add(DataType.TeamType, (TeamType)info.group); if (info.unitId != 0) { dictionary.Add(DataType.UniqueId, info.unitId); } Units units; if (vo.IsBloodBall) { units = MapManager.Instance.SpawnBuffItem(dictionary, null, MoveController.SVectgor3ToVector3(info.burnPos), Quaternion.identity, unitControlType); } else { Units unit = MapManager.Instance.GetUnit(info.callUnitId); units = MapManager.Instance.SpawnSkillUnit(dictionary, null, MoveController.SVectgor3ToVector3(info.burnPos), Quaternion.identity, unitControlType, unit, info.callSkillId); HighEffectData vo2 = Singleton <HighEffectDataManager> .Instance.GetVo(info.hieffId); if (vo2 != null) { List <Units> list = new List <Units>(); if (info.targetUnitIds != null) { for (int i = 0; i < info.targetUnitIds.Count; i++) { Units unit2 = MapManager.Instance.GetUnit(info.targetUnitIds[i]); list.Add(unit2); } } BornUnitAction.SetPosition(units, list, unit, vo2, MoveController.SVectgor3ToVector3(info.burnPos)); } } if (units) { units.UpdateVisible(); } return(units); }
protected override void doStartHighEffect_Special() { Dictionary <DataType, object> dictionary = new Dictionary <DataType, object>(); string unit_id = this.data.unit_id; dictionary.Add(DataType.NameId, unit_id); dictionary.Add(DataType.TeamType, base.unit.teamType); UnitControlType unitControlType = UnitControlType.None; if (base.unit != null) { unitControlType = base.unit.unitControlType; } SkillUnit skillUnit = null; if (!Singleton <PvpManager> .Instance.IsInPvp) { skillUnit = (MapManager.Instance.SpawnSkillUnit(dictionary, null, base.unit.mTransform.position, Quaternion.identity, unitControlType, base.unit, this.skillId) as SkillUnit); } if (skillUnit != null) { skillUnit.unitControlType = base.unit.unitControlType; skillUnit.SetParentUnit(base.unit); skillUnit.UnitInit(false); string[] skillIDs = skillUnit.skillManager.GetSkillIDs(); string[] array = skillIDs; for (int i = 0; i < array.Length; i++) { string skillID = array[i]; skillUnit.skillManager.SetSkillLevel(skillID, base.unit.skillManager.GetSkillLevel(this.skillId)); } skillUnit.UnitStart(); Vector3?skillPosition = this.skillPosition; Vector3 arg_159_0; if (skillPosition.HasValue) { Vector3?skillPosition2 = this.skillPosition; arg_159_0 = skillPosition2.Value; } else { arg_159_0 = base.unit.mTransform.position; } Vector3 position = arg_159_0; BornUnitAction.SetPosition(skillUnit, this.targetUnits, base.unit, this.data, position); } this.Destroy(); }
public static Units CreateMapItem(UnitRuntimeInfo info, UnitControlType unitControlType = UnitControlType.None) { if (info == null) { return(null); } if (info.baseUnitInfo == null) { return(null); } if (info.baseUnitInfo.skillunitInfo == null) { return(null); } SkillUnitData vo = Singleton <SkillUnitDataMgr> .Instance.GetVo(info.baseUnitInfo.typeId); if (vo == null) { return(null); } Dictionary <DataType, object> dictionary = new Dictionary <DataType, object>(); dictionary.Add(DataType.NameId, info.baseUnitInfo.typeId); dictionary.Add(DataType.TeamType, (TeamType)info.baseUnitInfo.group); if (info.baseUnitInfo.unitId != 0) { dictionary.Add(DataType.UniqueId, info.baseUnitInfo.unitId); } Units result; if (vo.IsBloodBall) { result = MapManager.Instance.SpawnBuffItem(dictionary, null, MoveController.SVectgor3ToVector3(info.baseUnitInfo.skillunitInfo.burnPos), Quaternion.identity, unitControlType); } else { result = MapManager.Instance.SpawnSkillUnit(dictionary, null, MoveController.SVectgor3ToVector3(info.baseUnitInfo.skillunitInfo.burnPos), Quaternion.identity, unitControlType, null, string.Empty); } return(result); }
public Units SpawnInstance(EntityVo npcinfo, string tag, TeamType teamType, int spawnPos, string respawnInterval = "[]", Transform newSpawnPoint = null, UnitControlType controlType = UnitControlType.None, UnitType unitType = UnitType.None) { if (npcinfo == null || npcinfo.npc_id == null || npcinfo.npc_id == string.Empty || tag == null) { ClientLogger.Error("SpawnInstance line 1 null"); return(null); } Dictionary <AttrType, float> dictionary = new Dictionary <AttrType, float>(); if (tag == "Hero" || tag == "Player") { string npc_id = npcinfo.npc_id; int level = npcinfo.level; int quality = npcinfo.quality; int star = npcinfo.star; float hp = npcinfo.hp; float mp = npcinfo.mp; SysHeroMainVo heroMainData = BaseDataMgr.instance.GetHeroMainData(npc_id); if (heroMainData == null || heroMainData.model_id == null) { ClientLogger.Error("SpawnInstance: no hero found #" + npc_id); return(null); } Dictionary <DataType, object> dictionary2 = new Dictionary <DataType, object> { { DataType.NameId, npc_id }, { DataType.ModelId, heroMainData.model_id }, { DataType.TeamType, teamType }, { DataType.AIType, 2 }, { DataType.AttrFactor, SpawnUtility.GetAttrFactor(teamType, this._myScene) }, { DataType.Level, level }, { DataType.Quality, quality }, { DataType.Star, star }, { DataType.Skin, npcinfo.skin } }; if (npcinfo.uid != 0) { dictionary2.Add(DataType.UniqueId, npcinfo.uid); } if (hp != 0f) { dictionary.Add(AttrType.Hp, hp); } if (mp != 0f) { dictionary.Add(AttrType.Mp, mp); } Transform transform = newSpawnPoint; if (!transform) { transform = MapManager.Instance.GetSpawnPos(teamType, spawnPos); } Units result = MapManager.Instance.SpawnUnit(tag, dictionary2, dictionary, transform.position, transform.rotation, controlType, true, null, unitType); if (!transform) { ClientLogger.Error(string.Format("SpawnInstance: GetSpawnPos failed for {0} {1} in {2}", teamType, spawnPos, LevelManager.CurLevelId)); } return(result); } else if (tag.Equals("Home")) { string npc_id2 = npcinfo.npc_id; Transform transform2 = newSpawnPoint; if (!transform2) { transform2 = MapManager.Instance.GetSpawnPos(teamType, npcinfo.pos); } SysMonsterMainVo monsterMainData = BaseDataMgr.instance.GetMonsterMainData(npc_id2); if (monsterMainData == null) { ClientLogger.Error("SpawnInstance: no home found #" + npc_id2); return(null); } Dictionary <DataType, object> dictionary3 = new Dictionary <DataType, object> { { DataType.NameId, npc_id2 }, { DataType.ModelId, monsterMainData.model_id }, { DataType.TeamType, teamType }, { DataType.AIType, npcinfo.ai_type }, { DataType.AttrFactor, SpawnUtility.GetAttrFactor(teamType, this._myScene) }, { DataType.Skin, npcinfo.skin } }; if (npcinfo.uid != 0) { dictionary3.Add(DataType.UniqueId, npcinfo.uid); } return(MapManager.Instance.SpawnUnit(tag, dictionary3, dictionary, transform2.position, transform2.rotation, controlType, false, null, unitType)); } else { string npc_id3 = npcinfo.npc_id; Transform transform3 = newSpawnPoint; if (!transform3) { transform3 = MapManager.Instance.GetSpawnPos(teamType, npcinfo.pos); } SysMonsterMainVo monsterMainData2 = BaseDataMgr.instance.GetMonsterMainData(npc_id3); if (monsterMainData2 == null) { ClientLogger.Error("SpawnInstance: no npc found #" + npc_id3); return(null); } Dictionary <DataType, object> dictionary4 = new Dictionary <DataType, object> { { DataType.NameId, npc_id3 }, { DataType.ModelId, monsterMainData2.model_id }, { DataType.TeamType, teamType }, { DataType.AIType, npcinfo.ai_type }, { DataType.AttrFactor, SpawnUtility.GetAttrFactor(teamType, this._myScene) }, { DataType.Skin, npcinfo.skin } }; if (npcinfo.uid != 0) { dictionary4.Add(DataType.UniqueId, npcinfo.uid); } return(MapManager.Instance.SpawnUnit(tag, dictionary4, dictionary, transform3.position, transform3.rotation, controlType, false, null, unitType)); } }
public Units SpawnEyeItemInstance(EntityVo npcinfo, string tag, TeamType teamType, string respawnInterval, Transform newSpawnPoint, SVector3 eyeItemInfoInst, string eyeItemPreObjRes, UnitControlType controlType) { if (npcinfo == null || npcinfo.npc_id == null || npcinfo.npc_id == string.Empty || tag == null) { return(null); } string npc_id = npcinfo.npc_id; SysMonsterMainVo monsterMainData = BaseDataMgr.instance.GetMonsterMainData(npc_id); if (monsterMainData == null) { ClientLogger.Error("SpawnInstance: no npc found #" + npc_id); return(null); } Dictionary <DataType, object> dictionary = new Dictionary <DataType, object> { { DataType.NameId, npc_id }, { DataType.ModelId, monsterMainData.model_id }, { DataType.TeamType, teamType }, { DataType.AIType, npcinfo.ai_type }, { DataType.AttrFactor, SpawnUtility.GetAttrFactor(teamType, this._myScene) } }; if (npcinfo.uid != 0) { dictionary.Add(DataType.UniqueId, npcinfo.uid); } Dictionary <AttrType, float> unitAttrs = new Dictionary <AttrType, float>(); return(MapManager.Instance.SpawnEyeItemUnit(tag, dictionary, unitAttrs, newSpawnPoint, eyeItemInfoInst, eyeItemPreObjRes, controlType, false)); }