private static CharacterAbility[][] LoadCharacterAbilities() { try { if (!Directory.Exists(DataResources.Characters.Abilities.Directory)) { throw new DirectoryNotFoundException($"[ff9abil] Cannot load character abilities because a directory does not exist: [{DataResources.Characters.Abilities.Directory}]."); } CharacterPresetId[] presetIds = CharacterPresetId.GetWellKnownPresetIds(); CharacterAbility[][] result = new CharacterAbility[presetIds.Length][]; for (Int32 id = 0; id < result.Length; id++) { CharacterPresetId presetId = presetIds[id]; result[id] = LoadCharacterAbilities(presetId); } return(result); } catch (Exception ex) { Log.Error(ex, "[ff9abil] Load character abilities failed."); UIManager.Input.ConfirmQuit(); return(null); } }
public override IEnumerator takeTurn(Character target, CharacterAbility ability) { yield return(new WaitForSeconds(1)); TurnManager.instance.target = grabTarget(TurnManager.instance); TurnManager.instance.ability = getAbilty(target); }
public void LimitedGainTest() { Ability ability = new Ability(0, AbilityType.General, "TestAbility"); CharacterAbility charAbility = new CharacterAbility(ability); charAbility.AddExperience(10, 1); Assert.AreEqual(1, charAbility.Value); }
public void Init(float radius, float depth) { _speed = GameManager.Instance.GameConfig.OverallSpeed; _angularSpeed = Mathf.PI * _speed * Mathf.Rad2Deg * Time.deltaTime; _radius = radius; CurrentAngle = transform.localRotation.eulerAngles.z; Model.position = new Vector3(0, -radius, depth); OverallVelocity = new Vector3(0, 0, -1) * _speed; GameManager.Instance.OnScoreUpdated -= OnScoreUpdate; GameManager.Instance.OnScoreUpdated += OnScoreUpdate; // Get all abilities, initialize and activate only the one that was // purchased at the store _characterAbilities = GetComponents <CharacterAbility>(); foreach (var ability in _characterAbilities) { ability.enabled = false; ability.IsPermitted = false; if (ability.AbilityID == DataPersistanceManager.PlayerData.ActiveAbility) { _activeAbility = ability; _activeAbility.IsPermitted = true; _activeAbility.Initialize(this); } } }
private static PA_DATA[] LoadCharacterAbilities(CharacterPresetId presetId) { try { String inputPath = DataResources.GetCsvCharacterAbilitiesPath(presetId); if (!File.Exists(inputPath)) { throw new FileNotFoundException($"File with {presetId}'s abilities not found: [{inputPath}]"); } CharacterAbility[] abilities = CsvReader.Read <CharacterAbility>(inputPath); if (abilities.Length != 48) { throw new NotSupportedException($"You must set 48 abilities, but there {abilities.Length}. Any number of abilities will be available after a game stabilization."); // TODO Json, Player, SettingsState, EqupUI, ff9feqp } PA_DATA[] result = new PA_DATA[abilities.Length]; for (Int32 i = 0; i < abilities.Length; i++) { CharacterAbility source = abilities[i]; result[i] = new PA_DATA(source.Id, source.Ap); } return(result); } catch (Exception ex) { throw new FileLoadException($"Failed to load {presetId}'s learnable abilities.", ex); } }
public void CharacterAbilityZeroTest() { Ability ability = new Ability(0, AbilityType.General, "TestAbility"); CharacterAbility characterAbility = new CharacterAbility(ability); characterAbility.Experience = 0; Assert.AreEqual(0, characterAbility.Value); }
// Start is called before the first frame update void Start() { curInteractable = null; characterAbility = GetComponent <CharacterAbility>(); MyCamera = GetComponent <Camera>(); // StartCoroutine("CastTick"); }
public void CharacterAbilityInexactTest() { Ability ability = new Ability(0, AbilityType.General, "TestAbility"); CharacterAbility characterAbility = new CharacterAbility(ability); characterAbility.Experience = 37; Assert.AreEqual(3, characterAbility.Value); }
// Token: 0x06000F83 RID: 3971 RVA: 0x0005DEBC File Offset: 0x0005C0BC public void SetAllAbilitys(bool abilityEnabled) { CharacterAbility[] abilities = this.Abilities; for (int i = 0; i < abilities.Length; i++) { CharacterAbility characterAbility = abilities[i]; characterAbility.HasAbility = abilityEnabled; } this.m_sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); }
public void SetAbility() { ICharacter character = gameObject.GetComponentInParent <ICharacter> (); CharacterAbility abilities = character.GetAbilities(); abilities.SetAbility(this.defense.GetPrimaryAbility(), 0); abilities.SetAbility(this.utility.GetPrimaryAbility(), 1); abilities.SetAbility(this.weapon.GetSecondaryAbility(), 2); abilities.SetAbility(this.weapon.GetPrimaryAbility(), 3); }
public void showAbilityDescription(int idx) { CharacterAbility ability = player.abilities[idx]; abilityDescription.text = ability.getDescription(); abilityName.text = ability.abilityName; abilityCost.text = ability.spCost.ToString(); abilityCost.color = ability.hasEnoughSP() ? Color.white : Color.red; attribute.text = ability.getAttribute(); descriptionPanel.gameObject.SetActive(true); }
// Start is called before the first frame update void Start() { characterAbility = GetComponentInParent <CharacterAbility>(); UI = FindObjectOfType <GameUI>(); _startPosition = transform.position; _totalCoins = 0; _totalDistance = 0; _power = 0; }
IEnumerator takeTurn() { yield return(null); CombatLogger.instance.logEffectString(EncountersManager.instance.currentEncounter.into); yield return(CombatLogger.instance.isDisplaying()); while (!isCombatOver()) { TurnManagerGUI.instance.updateTurnOrder(getNext3Orders()); current = turnOrder.Dequeue(); while (current.health.isDead()) { current = turnOrder.Dequeue(); } TurnManagerGUI.instance.setCurrentCharacter(current.name); StatsPanelGUI.instance.initStatsPanel(current.stats); yield return(current.health.resolveEffects()); target = null; ability = null; if (!current.skipTurn && !current.health.isDead()) { yield return(current.takeTurn(target, ability)); Debug.Log(current.name + " targeted " + target.name); ability.useAbilty(target); } else { current.skipTurn = false; } yield return(CombatLogger.instance.isDisplaying()); turnOrder.Enqueue(current); TurnManagerGUI.instance.updateTurnOrder(getNext3Orders()); yield return(null); } for (int i = 0; i < PartyGUI.instance.party.Count; i++) { PartyGUI.instance.party[i].health.clearStatuses(); } Debug.Log("Combat over"); if (onCombatOver != null) { onCombatOver(); } }
// Desactiva la habilidad pasada como parámetro bool DeactivateAbility(CharacterAbility ability) { bool res = (ability != null); if (res) { res = ability.DeactivateAbility(); if (res) { characterStatus.EndAbility(ability); if (ability.Equals(activeAbility)) { activeAbility = null; } } } return res; }
// Activa la habilidad pasada como parámetro bool ActivateAbility(CharacterAbility ability) { // Comprueba si la habilidad puede activarse bool res = ability.CanBeStarted(); if (res) { res = characterStatus.StartAbility(ability); if (res) { activeAbility = ability; } } else { characterStatus.NegationAnimation(); } return res; }
public void RemoveAbility() { switch (Type) { case AbilityType.BattleArt: EventManager.instance.Fire(new PlayerUnequipBattleArt((BattleArt)CurrentAbility)); break; case AbilityType.PassiveAbility: EventManager.instance.Fire(new PlayerUnequipPassiveAbility((PassiveAbility)CurrentAbility, index)); break; } CurrentAbility = null; }
public void Equip(CharacterAbility Ability) { CurrentAbility = Ability; switch (Type) { case AbilityType.BattleArt: EventManager.instance.Fire(new PlayerEquipBattleArt((BattleArt)Ability)); break; case AbilityType.PassiveAbility: EventManager.instance.Fire(new PlayerEquipPassiveAbility((PassiveAbility)Ability, index)); break; } }
public void UnPauseAndAbility() { PlayerMovement[] playerMovements = (PlayerMovement[])FindObjectsOfType(typeof(PlayerMovement)); foreach (PlayerMovement pm in playerMovements) { if (pm.isFrozen && !(this.gameObject.name == "PlayerChe")) { CharacterAbility ability = pm.GetComponent <CharacterAbility>(); if (ability.gameObject.name == "PlayerChe") { pm.HandlePauseAbility(); ability.TriggerChemistryAbility(); } } } }
public override IEnumerator takeTurn(Character target, CharacterAbility ability) { myDisplay.setNameColor(true); AbilityManager.instance.setUpAbilityManager(this); myAbility = null; myTarget = null; // myAbility = ability01; while (myTarget == null || myAbility == null) { yield return(null); } TurnManager.instance.ability = myAbility; TurnManager.instance.target = myTarget; AbilityManager.instance.removeAbilityPanel(); myDisplay.setNameColor(false); }
void Start() { _flingCount = 0; superSizeCount = 0; _immunityCount = 0; animator = GetComponent <CharacterAnimations>(); ability = GetComponentInParent <CharacterAbility>(); Movement = GetComponentInParent <CharacterMovement>(); UI = FindObjectOfType <GameUI>(); CurrentResistanceLevel = playerResistance.none; rend = GetComponent <Renderer>(); rend.enabled = true; materials = Resources.LoadAll <Material>("Materials/Player"); UI.ChangeColour(materials[0]); }
// Use this for initialization void Start() { this.canClimb = false; this.isStun = false; rb2d = gameObject.GetComponent <Rigidbody2D> (); anim = gameObject.GetComponent <Animator> (); this.playerAbility = gameObject.GetComponentInChildren <CharacterAbility> (); this.playerDefense = gameObject.GetComponentInChildren <CharacterDefense> (); this.fit = gameObject.GetComponentInChildren <FittingMenu> (); TestMenu global = GameObject.FindObjectOfType <TestMenu> (); this.fit.Equip(global.activeWeapon); this.fit.Equip(global.activeDefense); this.fit.Equip(global.activeUtility); this.fit.SetAbility(); InitializeCharacter(); }
public async Task SendAbilityWebhook(string url, CharacterAbility characterAbility, string characterName) { DiscordWebHookModel dwhm = new DiscordWebHookModel(); dwhm.username = characterName; dwhm.embeds.Add( new DiscordWebHookEmbed() { title = $"SUCCESS!/FAILURE!", description = "**Difficulty:** 3 TN(3)\n**Trained** -1\n**Final Difficulty:** 2\n**Roll:** 18 Beats difficulty 8 (TN: 18)", author = new DiscordWebHookEmbedAuthor { author = $"Fin Piercer - Attack - Speed" }, footer = new DiscordWebHookEmbedFooter { text = $"Special: +2 Damage" } }); await SendWebHook(url, dwhm); }
// Token: 0x06000F84 RID: 3972 RVA: 0x0005DF00 File Offset: 0x0005C100 public override void Serialize(Archive ar) { try { CharacterAbility[] abilities = this.Abilities; for (int i = 0; i < abilities.Length; i++) { CharacterAbility characterAbility = abilities[i]; ar.Serialize(ref characterAbility.HasAbility); } } catch (Exception exception) { Debug.LogException(exception); } if (ar.Reading) { this.m_sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); } }
// Use this for initialization void Start() { //player =(ICharacter) GameObject.FindGameObjectWithTag("Player"); player = (ICharacter)FindObjectOfType(typeof(Player)); rb2d = gameObject.GetComponent <Rigidbody2D> (); anim = gameObject.GetComponent <Animator> (); //this.projspawner = gameObject.GetComponentInChildren<ProjSpawner> (); this.enemyAbility = gameObject.GetComponentInChildren <CharacterAbility> (); this.enemyDefense = gameObject.GetComponentInChildren <EnemyDefense> (); IAbility projectile = new BasicAttack("Lazer", 10f, 10f, 10f, 10f, 0f); //IEffect cripple = new CrippleEffect (1f,49f,0f); //IEffect stun = new StunEffect (2f); //projectile.AddEffect (cripple); //projectile.AddEffect (stun); this.enemyAbility.SetAbility(projectile, 0); this.enemyAbility.SetAbility(projectile, 1); this.currentSpeed = speed; this.canClimb = false; }
public async Task <CharacterAbility> UpdateCharacterAbility(CharacterAbility characterAbility) { var ca = _context.CharacterAbilities.Find(characterAbility.CharacterAbilityId); if (ca == null) { return(characterAbility); } try { ca.CharacterId = characterAbility.CharacterId; ca.IsEnabled = characterAbility.IsEnabled; ca.AbilityId = characterAbility.AbilityId; _context.SaveChanges(); } catch (Exception ex) { throw ex; } return(ca); }
public void setAbility(CharacterAbility ability) { myAbility = ability; }
public override void setTargetAndAbilty(Character target, CharacterAbility ability) { target = myTarget; ability = myAbility; }
public (CharacterAbilityListWithFilterCount, Character, RuleSet) SP_CharacterAbility_GetByCharacterId(int characterId, int rulesetId, int page, int pageSize, int sortType = 1) { CharacterAbilityListWithFilterCount result = new CharacterAbilityListWithFilterCount(); CharacterAbility _characterAbility = new CharacterAbility(); RuleSet ruleset = new RuleSet(); Character character = new Character(); string connectionString = _configuration.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value; using (SqlConnection connection = new SqlConnection(connectionString)) { List <CharacterAbility> _CharacterAbilityList = new List <CharacterAbility>(); string qry = "EXEC CharacterAbility_GetByCharacterId @CharacterId='" + characterId + "',@RulesetID='" + rulesetId + "',@page='" + page + "',@size='" + pageSize + "',@SortType='" + sortType + "'"; try { var characterability_record = connection.QueryMultiple(qry); var _characterAbilitySPList = characterability_record.Read <CharacterAbilitySP>().ToList(); ruleset = characterability_record.Read <RuleSet>().FirstOrDefault(); character = characterability_record.Read <Character>().FirstOrDefault(); _characterAbilitySPList.ForEach(obj => { _characterAbility = new CharacterAbility() { CharacterAbilityId = obj.CharacterAbilityId, CharacterId = obj.CharacterId, AbilityId = obj.AbilityId, CurrentNumberOfUses = obj.CurrentNumberOfUses, MaxNumberOfUses = obj.MaxNumberOfUses, IsEnabled = obj.IsEnabled, Ability = new Ability() { Name = obj.Name, Stats = obj.Stats, Metatags = obj.Metatags, Command = obj.Command, CommandName = obj.CommandName, Description = obj.Description, gmOnly = obj.gmOnly, ImageUrl = obj.ImageUrl, Level = obj.Level, IsDeleted = obj.IsDeleted, IsEnabled = obj.IsEnabled ?? false, AbilityId = obj.AbilityId ?? 0, ParentAbilityId = obj.ParentAbilityId ?? 0, RuleSetId = obj.RuleSetId, CurrentNumberOfUses = obj.CurrentNumberOfUses ?? 0, MaxNumberOfUses = obj.MaxNumberOfUses ?? 0, RuleSet = ruleset, }, // Character = character }; _CharacterAbilityList.Add(_characterAbility); }); result = new CharacterAbilityListWithFilterCount() { FilterAplhabetCount = characterability_record.Read <AlphabetCountSP>().FirstOrDefault().AplhabetCount, FilterEnabledCount = characterability_record.Read <EnabledCountSP>().FirstOrDefault().EnabledCount, FilterLevelCount = characterability_record.Read <LevelCountSP>().FirstOrDefault().LevelCount, AbilityList = _CharacterAbilityList }; } catch (Exception ex) { throw ex; } finally { connection.Close(); } } //(CharacterAbilityListWithFilterCount characterAbilityresult, Character _character, RuleSet _ruleSet) = SP_CharacterAbility_GetByCharacterId_Old(characterId, rulesetId, page, pageSize, sortType); return(result, character, ruleset); }
public (CharacterAbilityListWithFilterCount, Character, RuleSet) SP_CharacterAbility_GetByCharacterId_Old(int characterId, int rulesetId, int page, int pageSize, int sortType = 1) { CharacterAbilityListWithFilterCount result = new CharacterAbilityListWithFilterCount(); List <CharacterAbility> _CharacterAbilityList = new List <CharacterAbility>(); RuleSet ruleset = new RuleSet(); Character character = new Character(); int FilterAplhabetCount = 0; int FilterEnabledCount = 0; int FilterLevelCount = 0; result.AbilityList = _CharacterAbilityList; result.FilterAplhabetCount = FilterAplhabetCount; result.FilterEnabledCount = FilterEnabledCount; result.FilterLevelCount = FilterLevelCount; short num = 0; string connectionString = _configuration.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value; //string qry = "EXEC CharacterAbility_GetByCharacterId @CharacterId='" + characterId + "',@RulesetID='" + rulesetId + "',@page='" + page + "',@size='" + pageSize + "'"; SqlConnection connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(); SqlDataAdapter adapter = new SqlDataAdapter(); DataSet ds = new DataSet(); try { connection.Open(); command = new SqlCommand("CharacterAbility_GetByCharacterId", connection); // Add the parameters for the SelectCommand. command.Parameters.AddWithValue("@CharacterId", characterId); command.Parameters.AddWithValue("@RulesetID", rulesetId); command.Parameters.AddWithValue("@page", page); command.Parameters.AddWithValue("@size", pageSize); command.Parameters.AddWithValue("@SortType", sortType); command.CommandType = CommandType.StoredProcedure; adapter.SelectCommand = command; adapter.Fill(ds); command.Dispose(); connection.Close(); } catch (Exception ex) { command.Dispose(); connection.Close(); } if (ds.Tables[1].Rows.Count > 0) { ruleset = _repo.GetRuleset(ds.Tables[1], num); } if (ds.Tables[2].Rows.Count > 0) { character = _repo.GetCharacter(ds.Tables[2]); } if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { CharacterAbility _characterAbility = new CharacterAbility(); _characterAbility.CharacterAbilityId = row["CharacterAbilityId"] == DBNull.Value ? 0 : Convert.ToInt32(row["CharacterAbilityId"].ToString()); _characterAbility.CharacterId = characterId; _characterAbility.AbilityId = row["AbilityId"] == DBNull.Value ? 0 : Convert.ToInt32(row["AbilityId"].ToString()); _characterAbility.CurrentNumberOfUses = row["CharacterCurrentNumberOfUses"] == DBNull.Value ? 0 : Convert.ToInt32(row["CharacterCurrentNumberOfUses"].ToString()); _characterAbility.MaxNumberOfUses = row["CharacterMaxNumberOfUses"] == DBNull.Value ? 0 : Convert.ToInt32(row["CharacterMaxNumberOfUses"].ToString()); _characterAbility.IsEnabled = row["CharacterIsEnabled"] == DBNull.Value ? false : Convert.ToBoolean(row["CharacterIsEnabled"]); Ability _ability = new Ability(); _ability.Name = row["Name"] == DBNull.Value ? null : row["Name"].ToString(); _ability.Stats = row["Stats"] == DBNull.Value ? null : row["Stats"].ToString(); _ability.Metatags = row["Metatags"] == DBNull.Value ? null : row["Metatags"].ToString(); _ability.Command = row["Command"] == DBNull.Value ? null : row["Command"].ToString(); _ability.CommandName = row["CommandName"] == DBNull.Value ? null : row["CommandName"].ToString(); _ability.Description = row["Description"] == DBNull.Value ? null : row["Description"].ToString(); _ability.gmOnly = row["gmOnly"] == DBNull.Value ? null : row["gmOnly"].ToString(); _ability.ImageUrl = row["ImageUrl"] == DBNull.Value ? null : row["ImageUrl"].ToString(); _ability.Level = row["Level"] == DBNull.Value ? null : row["Level"].ToString(); _ability.IsDeleted = row["IsDeleted"] == DBNull.Value ? false : Convert.ToBoolean(row["IsDeleted"]); _ability.IsEnabled = row["IsEnabled"] == DBNull.Value ? false : Convert.ToBoolean(row["IsEnabled"]); _ability.AbilityId = row["AbilityId"] == DBNull.Value ? 0 : Convert.ToInt32(row["AbilityId"].ToString()); _ability.ParentAbilityId = row["ParentAbilityId"] == DBNull.Value ? 0 : Convert.ToInt32(row["ParentAbilityId"].ToString()); _ability.RuleSetId = row["RuleSetId"] == DBNull.Value ? 0 : Convert.ToInt32(row["RuleSetId"].ToString()); _ability.CurrentNumberOfUses = row["CurrentNumberOfUses"] == DBNull.Value ? 0 : Convert.ToInt32(row["CurrentNumberOfUses"].ToString()); _ability.MaxNumberOfUses = row["MaxNumberOfUses"] == DBNull.Value ? 0 : Convert.ToInt32(row["MaxNumberOfUses"].ToString()); _ability.RuleSet = ruleset; _characterAbility.Ability = _ability; //_characterAbility.Character = character; _CharacterAbilityList.Add(_characterAbility); } } if (ds.Tables[3].Rows.Count > 0) { FilterAplhabetCount = ds.Tables[3].Rows[0][0] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[3].Rows[0][0]); FilterLevelCount = ds.Tables[3].Rows[0][1] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[3].Rows[0][1]); } if (ds.Tables[4].Rows.Count > 0) { FilterEnabledCount = ds.Tables[4].Rows[0][0] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[4].Rows[0][0]); } if (ds.Tables[5].Rows.Count > 0) { FilterLevelCount = ds.Tables[5].Rows[0][0] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[5].Rows[0][0]); } result.AbilityList = _CharacterAbilityList; result.FilterAplhabetCount = FilterAplhabetCount; result.FilterEnabledCount = FilterEnabledCount; result.FilterLevelCount = FilterLevelCount; //return result; return(result, character, ruleset); }
public async Task <CharacterAbility> InsertCharacterAbility(CharacterAbility characterAbility) { return(await _repo.Add(characterAbility)); }
// Se ejecuta cuando se termina la ejecución de una habilidad void AbilityExecutionEnd(CharacterAbility ability) { // Habilidad afectada RectTransform abilityUI = GetAbilityUIRectTransform(ability.GetType()); // Reduce tamaño del icono foreach (RectTransform trf in abilityUI) { trf.sizeDelta /= (1 + modificationActiveAbility); } }
public virtual void setTargetAndAbilty(Character target, CharacterAbility ability) { }
void OnTriggerEnter(Collider other) { // Si se trata de un personaje, lo añade al listado CharacterStatus cs = other.gameObject.GetComponent<CharacterStatus>(); if (cs != null) { charactersList.Add(cs); // Asocia la habilidad relacionada con el objeto, si la requiere if ((requireAbility) && (requiredAbility == null)) { requiredAbility = GetRequiredAbility(other.gameObject); } } }
/// <summary> /// Resetea el estado de las dos habilidades del personaje /// </summary> public void ResetAbilities() { ability1.Reset(); ability2.Reset(); activeAbility = null; }
public Character(Ability writingLanguage, Ability writingAbility, Ability areaAbility, uint baseSeasonableAge = 20) { Die die = new Die(); _attributes[(short)AttributeType.Strength] = new Attribute(die.RollNormal()); _attributes[(short)AttributeType.Stamina] = new Attribute(die.RollNormal()); _attributes[(short)AttributeType.Dexterity] = new Attribute(die.RollNormal()); _attributes[(short)AttributeType.Quickness] = new Attribute(die.RollNormal()); _attributes[(short)AttributeType.Intelligence] = new Attribute(die.RollNormal()); _attributes[(short)AttributeType.Communication] = new Attribute(die.RollNormal()); _attributes[(short)AttributeType.Perception] = new Attribute(die.RollNormal()); _attributes[(short)AttributeType.Presence] = new Attribute(die.RollNormal()); Decrepitude = 0; CurrentSeason = Season.Spring; KnownAuras = new List<Aura>(); IsCollaborating = false; WantsToFollow = true; _noAgingSeasons = 0; _baseAge = baseSeasonableAge; _mandatoryAction = null; _abilityList = new Dictionary<int, CharacterAbilityBase>(); _seasonList = new List<IAction>(); _booksRead = new List<IBook>(); _booksWritten = new List<IBook>(); _booksOwned = new List<IBook>(); _areaAbility = areaAbility; _writingAbility = writingAbility; _writingLanguage = writingLanguage; _writingAbilities = new List<Ability>(); _writingAbilities.Add(_writingAbility); _writingAbilities.Add(_writingLanguage); _incompleteBooks = new List<Summa>(); _goals = new List<IGoal>(); Log = new List<string>(); Warping = new CharacterAbility(Abilities.Warping); }
private void RandomAbility() { var Data = CharacterOpenInfo.Self.GetComponent <CharacterData>(); int value; switch (Type) { case AbilityObjectType.OnlyBattleArt: value = Random.Range(0, Data.BattleArtTypeNumber); break; case AbilityObjectType.OnlyPassiveAbility: value = Random.Range(Data.BattleArtTypeNumber, Data.BattleArtTypeNumber + Data.PassiveAbilityTypeNumber); break; case AbilityObjectType.All: value = Random.Range(0, Data.BattleArtTypeNumber + Data.PassiveAbilityTypeNumber); break; default: value = Random.Range(0, Data.BattleArtTypeNumber + Data.PassiveAbilityTypeNumber); break; } if (value < Data.BattleArtTypeNumber) { BattleArtType Type = (BattleArtType)value; switch (Type) { case BattleArtType.PowerSlash: Ability = new PowerSlash(); break; case BattleArtType.CrossSlash: Ability = new CrossSlash(); break; } } else { PassiveAbilityType Type = (PassiveAbilityType)(value - Data.BattleArtTypeNumber); switch (Type) { case PassiveAbilityType.Harmony: Ability = new Harmony(); break; case PassiveAbilityType.SpiritMaster: Ability = new SpiritMaster(); break; case PassiveAbilityType.UltimateAwakening: Ability = new UltimateAwakening(); break; case PassiveAbilityType.CriticalEye: Ability = new CriticalEye(); break; case PassiveAbilityType.BattleArtMaster: Ability = new BattleArtMaster(); break; case PassiveAbilityType.Dancer: Ability = new Dancer(); break; case PassiveAbilityType.OneMind: Ability = new OneMind(); break; } } }
// Use this for references void Awake() { CharacterAbility[] abilities = GetComponents<CharacterAbility>(); ability1 = abilities[0]; ability2 = abilities[1]; characterStatus = GetComponent<CharacterStatus>(); }
/// <summary> /// Comienza la ejecución de una habilidad concreta, modificando el estado en que se encuentra el personaje /// </summary> /// <param name="ability">Habilidad que se desea iniciar a ejecutar</param> /// <returns><c>true</c> si es posible iniciar la habilidad, en cuyo caso modifica además el estado del personaje; <c>false</c> en otro caso</returns> public bool StartAbility(CharacterAbility ability) { // Comprueba que el personaje no esté bloqueado por alguna animación bool res = !lockedByAnimation; if (res) { // Estados desde los que se puede iniciar cualquier habilidad: Walking, Idle res = (characterState.Equals(State.Walking) || characterState.Equals(State.Idle)); if (res) { // Actualiza el estado del personaje switch (ability.abilityName) { case AbilityName.AstralProjection: characterState = State.AstralProjection; CharacterAnimationController.SetAnimatorTrigger(characterName, CharacterAnimationController.ASTRAL_PROJECTION); break; case AbilityName.BigJump: characterState = State.BigJumping; CharacterAnimationController.SetAnimatorTrigger(characterName, CharacterAnimationController.BIG_JUMP); break; case AbilityName.Break: characterState = State.Breaking; CharacterAnimationController.SetAnimatorTrigger(characterName, CharacterAnimationController.BREAK); break; case AbilityName.Push: characterState = State.Pushing; CharacterAnimationController.SetAnimatorTrigger(characterName, CharacterAnimationController.PUSH); break; case AbilityName.Sprint: characterState = State.Sprint; CharacterAnimationController.SetAnimatorTrigger(characterName, CharacterAnimationController.SPRINT); break; case AbilityName.Telekinesis: characterState = State.Telekinesis; CharacterAnimationController.SetAnimatorTrigger(characterName, CharacterAnimationController.TELEKINESIS); break; } //INCREMENTAR EL NUMERO DE PARTICULAS playerParticles.IncreaseEmission(abilityEmissionRate); // Inicia la habilidad res = ability.ActivateAbility(); } } return res; }
// Se ejecuta cuando se produce un cambio en la cantidad de energía de la habilidad determinada void EnergyModified(CharacterAbility ability) { // Selecciona la interfaz relativa a la habilidad y modifica el relleno de la imagen RectTransform abilityUI = GetAbilityUIRectTransform(ability.GetType()); float amount = ability.GetAvailableEnergy() / ability.GetMaxEnergy(); GameObject full = abilityUI.Find("Full").gameObject; full.GetComponent<Image>().fillAmount = amount; if (amount >= 1) { //Comprueba si se trata del jugador activo if (abilityUI.GetComponentInChildren<CanvasRenderer>().GetAlpha().Equals(1)) { //Lanzar Imagen segun habilidad cooldownNotification.GetComponent<CooldownNotification>().ShowNotification(full.GetComponent<Image>().sprite); } } }
public virtual IEnumerator takeTurn(Character target, CharacterAbility ability) { yield return(null); }
/// <summary> /// /// </summary> /// <param name="ability">Habilidad cuya ejecución se desea finalizar</param> public void EndAbility(CharacterAbility ability) { //PARAR CANTIDAD DE PARTICULAS playerParticles.DecreaseEmission(); switch (ability.abilityName) { //case AbilityName.AstralProjection: //case AbilityName.Break: case AbilityName.Push: AudioManager.Stop(pushSound); //case AbilityName.Sprint: //case AbilityName.Telekinesis: break; } // Cambia de estado salvo que se trate de la habilidad "BigJump" if (!ability.abilityName.Equals(AbilityName.BigJump)) { characterState = State.Idle; CharacterAnimationController.SetAnimatorTrigger(characterName, CharacterAnimationController.IDLE); } }
// Se ejecuta cuando se selecciona una habilidad void AbilitySelected(CharacterAbility ability) { // Deselección de habilidad anterior AbilitySelection(selectedAbility.GetType(), transparency); // Selección de nueva habilidad selectedAbility = ability; AbilitySelection(selectedAbility.GetType(), 1); }
// Use this for initialization void Start() { // Inicialización activeAbility = null; }