public static FormulaDefinition LoadFromArray(string[] arr)
    {
        if (arr == null || arr.Length != 3)
        {
            return(null);
        }

        FormulaDefinition def = new FormulaDefinition();

        def.SourceA = arr[0];
        def.SourceB = arr[1];
        def.Target  = arr[2];

        return(def);
    }
    public void OnConnected(PuzzleCharacter character, PuzzleCharacter firstCharacter, List <Vector2Int> connectionPoints, string targetCharId)
    {
        Debug.Log("OnConnected: " + character.Position);
        var characterNode = this.FindCharacterNode(character);

        if (characterNode == null)
        {
            Debug.LogWarning("characterNode is null.");
        }

        var firstCharacterNode = this.FindCharacterNode(firstCharacter);

        if (firstCharacterNode == null)
        {
            Debug.LogWarning("firstCharacterNode is null.");
        }

        FormulaDefinition formula = this.StageDefinition.FindFormula(character.CharacterId, firstCharacter.CharacterId);

        if (formula == null)
        {
            return;
        }

        var activityManager = gameObject.GetComponentInParent <MainGameScene>().AquireActivityManager();

        PlayAnimationMergeChars(activityManager, characterNode, firstCharacterNode, connectionPoints);

        if (poemInstance.GetCoveredCharIds().Contains(formula.Target))
        {
            int charIndex = poemInstance.GetFirstCoveredIndex(formula.Target);
        }

        if (this.onReceivedCharacter != null)
        {
            activityManager.PushCallback(() =>
                                         { this.onReceivedCharacter(this, new ReceivedCharEventArgs(formula.Target, activityManager)); });
        }

        activityManager.PushCallback(() => { CheckAndMakeShuffle(); });
    }
示例#3
0
 public void DefineFormula(string name, FormulaDefinition formula)
 {
     Formulas[name] = formula;
 }