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);
    }
Exemple #2
0
    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();
    }