Exemple #1
0
        private bool TryCreateAbility(int abilityIndex, out AbilityHolder abilityHolder)
        {
            abilityHolder = null;

            AbilityCreator ac = GetAbilityHolder(abilityIndex);

            if (ac == null)
            {
                return(false);
            }

            abilityHolder = ac.SelfAbilityHolder;

            return(true);
        }
Exemple #2
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.CompareTag("Player") && !picked)
     {
         PhaseController pc = collision.GetComponent <PhaseController>();
         pc.actualAbility = AbilityCreator.CreateAbility(type, pc);
         if (effect != null)
         {
             effect.SetActive(false);
         }
         picked    = true;
         coroutine = Pickup(pc);
         StartCoroutine(coroutine);
     }
 }
Exemple #3
0
    public static AbilityCreator CreateScriptableObject()
    {
        AbilityCreator asset            = ScriptableObject.CreateInstance <AbilityCreator>();
        string         assetpath        = "Assets/Abilities/Ability.asset";
        string         assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(assetpath);
        Ability        ability          = new Ability();

        ability.Id = Path.GetFileNameWithoutExtension(assetPathAndName);
        AssetSerializer serializer = new AssetSerializer();

        serializer.AddItem(ability);
        asset.source = serializer.WriteToString();
        AssetDatabase.CreateAsset(asset, assetPathAndName);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        return(asset);
    }
Exemple #4
0
    public override void Load()
    {
        Camera.main.transform.position = camPos;
        transform.position             = pos;
        transform.rotation             = rot;
        transform.localScale           = scale;
        Rigidbody2D rb = GetComponent <Rigidbody2D>();

        rb.velocity     = Vector2.zero;
        rb.gravityScale = gravity;
        PhaseController pc = GetComponent <PhaseController>();

        pc.SendRequestToChangePhase(phase);
        if (ability != SuperAbility.Abilities.None)
        {
            pc.actualAbility = AbilityCreator.CreateAbility(ability, pc);
        }
        else
        {
            pc.ClearAbility();
        }
    }