public virtual bool CreateSkill(int styleCid, int enhancerCid, int coolerCid, int relicCid = -1) { Tube styleTube = FindTube(styleCid); Tube enhancerTube = FindTube(enhancerCid); Tube coolerTube = FindTube(coolerCid); Tube relicTube = FindTube(relicCid); if (styleTube == null || enhancerTube == null || coolerTube == null) { if (OnCreateSkill != null) { OnCreateSkill(null, false); } return(false); } List <TubeStyleStruct> styleStructs = new List <TubeStyleStruct>(); TubeStyleStruct styleStruct = (TubeStyleStruct)styleTube.TubeData; styleStructs.Add(styleStruct); while (true) { if (styleStruct.combo == 0) { break; } this.Log(styleStruct.combo); styleStruct = tubeData.FindStyleStruct(styleStruct.combo); styleStructs.Add(styleStruct); } TubeEnhancerStruct enhancerStruct = (TubeEnhancerStruct)enhancerTube.TubeData; TubeCoolerStruct coolerStruct = (TubeCoolerStruct)coolerTube.TubeData; TubeRelicStruct relicStruct = default(TubeRelicStruct); if (relicTube != null) { relicStruct = (TubeRelicStruct)relicTube.TubeData; } Skill skill = relicTube == null ? new Skill(styleStructs.ToArray(), enhancerStruct, coolerStruct) : new Skill(styleStructs.ToArray(), enhancerStruct, coolerStruct, relicStruct); GetSkill(skill); DeleteTube(styleTube); DeleteTube(enhancerTube); DeleteTube(coolerTube); DeleteTube(relicTube); if (OnCreateSkill != null) { OnCreateSkill(skill, true); } return(true); }
public Skill(string text, DataManager dataManager) { NPCSkillStruct skillStruct = dataManager.NPCData.Skill.Find(t => t.name == text); TubeStyleStruct style = dataManager.NPCTubeData.StyleData.Find(t => t.name == skillStruct.styleTube); TubeEnhancerStruct enhancer = dataManager.NPCTubeData.EnhancerData.Find(t => t.name == skillStruct.enhancerTube); TubeCoolerStruct cooler = dataManager.NPCTubeData.CoolerData.Find(t => t.name == skillStruct.coolerTube); styleStructs = new[] { style }; enhancerStruct = enhancer; coolerStruct = cooler; lastSkillTime = float.MinValue; currentSkillIndex = 0; InitFxs(); }