Example #1
0
    public void ApplyJson(SaveJson.AbilitiesInfo[] save)
    {
        if (save == null)
        {
            foreach (AbilityId id in Enum.GetValues(typeof(AbilityId)))
            {
                abilities[id].saveInfo            = new SaveJson.AbilitiesInfo();
                abilities[id].saveInfo.id         = id;
                abilities[id].saveInfo.isSelected = false;
                abilities[id].saveInfo.obtained   = false;
            }
        }
        else
        {
            foreach (SaveJson.AbilitiesInfo info in save)
            {
                if (!abilities.Contains(info.id))
                {
                    continue;
                }

                AbilitySettings ability = abilities[info.id];
                ability.saveInfo    = info;
                ability.saveInfo.id = info.id;
                abilities[info.id]  = ability;
            }
        }

        Init();
    }
Example #2
0
    public void ObtainNewAbility(Progress.GameItems item)
    {
        ////print((("Obtain "+ item);
        foreach (AbilityId id in Enum.GetValues(typeof(AbilityId)))
        {
            if (id == AbilityId.NONE)
            {
                continue;
            }

            if (abilities[id].itemID == item)
            {
                AbilitySettings ability = abilities[id];
                ability.saveInfo.obtained = true;
                abilities[id]             = ability;

                activeMenu.Init();
                passiveMenu.Init();
                activeSelectMenu.Init(ref abilities);
                passiveSelectMenu.isSelectable = (Ability.AbilitySettings abilities) =>
                {
                    return((!ability.isActivatable) && (ability.description.id != Ability.AbilityId.NONE));
                };
                passiveSelectMenu.Init(ref abilities);
                break;
            }
        }
    }
Example #3
0
 /// <summary>
 /// Constructor for creature sense
 /// </summary>
 /// <param name="settings">Ability settings</param>
 /// <param name="radius">Value of sight radius</param>
 /// <param name="state">Creature state</param>
 /// <param name="metabolism">Creature metabolism</param>
 /// <param name="transform">Creature transform</param>
 public CreatureSense(AbilitySettings settings, float radius, ICreatureState state, ICreatureMetabolism metabolism, Transform transform)
 {
     this.settings   = settings;
     Radius          = radius;
     this.state      = state;
     this.transform  = transform;
     this.metabolism = metabolism;
 }
Example #4
0
    /// <summary>
    /// Constructor for creature size
    /// </summary>
    /// <param name="settings">Ability settings</param>
    /// <param name="size">Value of size</param>
    /// <param name="metabolism">Creature metabolism</param>
    /// <param name="transform">Creature transform</param>
    public CreatureSize(AbilitySettings settings, float size, ICreatureMetabolism metabolism, Transform transform)
    {
        this.settings   = settings;
        Size            = size;
        this.metabolism = metabolism;
        this.transform  = transform;

        this.transform.localScale = new Vector3(Size, Size, 1);
    }
Example #5
0
    /// <summary>
    /// Constructor for creature velocity
    /// </summary>
    /// <param name="settings">Ability settings</param>
    /// <param name="velocity">Velocity value</param>
    /// <param name="state">Creature state</param>
    /// <param name="metabolism">Creature metabolism</param>
    /// <param name="sense">Creature sense</param>
    /// <param name="transform">Creature transform</param>
    public CreatureMovement(AbilitySettings settings, float velocity, ICreatureState state, ICreatureMetabolism metabolism, ICreatureSense sense, Transform transform)
    {
        Velocity        = velocity;
        this.state      = state;
        this.transform  = transform;
        this.settings   = settings;
        this.metabolism = metabolism;
        this.sense      = sense;

        moveSpot = CreateMoveSpot();
    }
 public static void BestowAbility(AbilitySettings abilitySettings, Player toPlayer)
 {
     BaseAbility _ability = toPlayer.GetComponent(abilitySettings.scriptName) as BaseAbility;
     SoundManager.instance.PlaySoundAt(toPlayer.audio, abilitySettings.pickupSound);
     if(_ability == null){
         Debug.Log("Adding ability to player.");
         _ability = toPlayer.gameObject.AddComponent(abilitySettings.scriptName) as BaseAbility;
         _ability.abilityDuration = abilitySettings.duration;
         _ability.particlesPrefab = abilitySettings.particles;
         _ability.introAnimation = abilitySettings.animation;
         _ability.abilityDamage = abilitySettings.abilityDamage;
         PauseGame.onFreezeGame += _ability.OnFreezeGameHandler;
         _ability.StartCoroutine("PlayIntroAnim");
     } else {
         Debug.Log("Player had the ability already. Restoring duration.");
         _ability.abilityTimer = 0f;
     }
 }
Example #7
0
    public void ApplyJson(AbilitiesDescriptionJson json)
    {
        if (json == null)
        {
            return;
        }
        else
        {
            foreach (AbilitiesDescriptionJson.Description description in json.abilities)
            {
                if (!abilities.Contains(description.id))
                {
                    continue;
                }

                //print("Ability <" + description.id + ">: " + description.description);

                AbilitySettings ability = abilities[description.id];
                ability.description       = description;
                abilities[description.id] = ability;
            }
        }
    }
Example #8
0
 public void Initialize(AbilitySettings ability)
 {
     _ability = ability.CreateAbility(this);
 }