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(); }
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; } } }
/// <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; }
/// <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); }
/// <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; } }
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; } } }
public void Initialize(AbilitySettings ability) { _ability = ability.CreateAbility(this); }