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);
    }
Example #2
0
 public void SetSkill(Skill skill)
 {
     if (skill == null)
     {
         Disable();
         return;
     }
     styleStructs   = skill.StyleStructs;
     enhancerStruct = skill.EnhancerStruct;
     coolerStruct   = skill.CoolerStruct;
     relicStruct    = skill.RelicStruct;
     isInitBySkill  = true;
     Enable();
 }
Example #3
0
 public Skill(TubeStyleStruct[] styleStructs, TubeEnhancerStruct enhancerStruct, TubeCoolerStruct coolerStruct, TubeRelicStruct relicStruct) : this(styleStructs, enhancerStruct, coolerStruct)
 {
     this.relicStruct = relicStruct;
 }