// Called 0th // Set references to itself private void Awake() { _mARef = this.GetComponent <MoveAttack>(); if (_mARef == null) { Debug.Log("WARNING - There was no MoveAttack script attached to " + this.name); } GameObject gameContObj = GameObject.FindWithTag("GameController"); if (gameContObj == null) { Debug.Log("WARNING - No GameObject with the tag GameController was found"); } _skillHoldRef = gameContObj.GetComponent <SkillHolder>(); if (_skillHoldRef == null) { Debug.Log("WARNING - There was no SkillHolder script attached to " + gameContObj.name); } // Initialize the list of skills _availableSkills = new List <Skill>(); // Subscribe to the procedural gen event ProceduralGenerationController.OnFinishGenerationNoParam += Initialize; }
public static void Load() { Util.PrintSection("Items"); ITEMS.Clear(); try { MySqlConnection con = DatabaseManager.GetConnection(); MySqlCommand cmd = new MySqlCommand(RESTORE_ITEMS, con); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { int itemId = reader.GetInt32("item_id"); int skillId = reader.GetInt32("skill_id"); int skillLevel = reader.GetInt32("skill_level"); SkillHolder skillHolder = SkillData.GetSkillHolder(skillId, skillLevel); if ((skillId > 0) && (skillHolder == null)) { LogManager.Log("ItemData: Could not find skill with id " + skillId + " and level " + skillLevel + " for item " + itemId + "."); } else { ITEMS.Add(itemId, new ItemHolder(itemId, (ItemSlot)Enum.Parse(typeof(ItemSlot), reader.GetString("slot")), (ItemType)Enum.Parse(typeof(ItemType), reader.GetString("type")), reader.GetBoolean("stackable"), reader.GetBoolean("tradable"), reader.GetInt32("stamina"), reader.GetInt32("strength"), reader.GetInt32("dexterity"), reader.GetInt32("intelect"), skillHolder)); } } con.Close(); } catch (Exception e) { LogManager.Log(e.ToString()); } LogManager.Log("ItemData: Loaded " + ITEMS.Count + " items."); }
public ActionCharacter(BattleStatus status, GroupId groupId, GroupTag tag, Vector pos, float gravity, float runSpeed, SkillHolder skillHolder, EquipItemHolder equipItemHolder) { CurrentState = new Idle(); Executioner = new Executioner(); CurrentPosition = pos; Gravity = gravity; SkillHolder = skillHolder; PickupItemHolder = new PickupItemHolder(); PickupItemHolder.OnPickedItem += UpdateBattleStatus; PickupItemHolder.OnPickedItem += UpdateRunMaxSpeed; EquipItemHolder = equipItemHolder; BaseStatus = status; BattleCharacter = new BattleCharacter(this, BattleStatusCalculator.calculate(status, this)); BasicRunMaxSpeed = runSpeed; RunMaxSpeed = SpeedCalculator.Calculate(BasicRunMaxSpeed, this); GroupId = groupId; GroupTag = tag; Id = Guid.NewGuid(); IsInvincible = false; CurrentFriction = 0.0f; }
// Called before start private void Awake() { _skillHolderRef = this.GetComponent <SkillHolder>(); if (_skillHolderRef == null) { Debug.Log("WARNING - No SkillHolder attached to " + this.name); } }
public ItemTemplateHolder(int itemId, ItemSlot itemSlot, ItemType itemType, bool stackable, bool tradable, int stamina, int strength, int dexterity, int intelect, SkillHolder skillHolder) { _itemId = itemId; _itemSlot = itemSlot; _itemType = itemType; _stackable = stackable; _tradable = tradable; _stamina = stamina; _strength = strength; _dexterity = dexterity; _intelect = intelect; _skillHolder = skillHolder; }
public ItemHolder(int itemId, ItemSlot itemSlot, ItemType itemType, bool stackable, bool tradable, int stamina, int strength, int dexterity, int intelect, SkillHolder skillHolder) { this.itemId = itemId; this.itemSlot = itemSlot; this.itemType = itemType; this.stackable = stackable; this.tradable = tradable; this.stamina = stamina; this.strength = strength; this.dexterity = dexterity; this.intelect = intelect; this.skillHolder = skillHolder; }
/// <summary> /// Refreshes the skill detailed menu about the last selected skill /// </summary> /// <param name="skillToCareAbout">The last selected skill</param> private void RefreshSkillDetails() { if (_lastSkill != null) { Skill skillToCareAbout = _lastSkill; // Set the display information to go with the skill _skillIcon.sprite = SkillHolder.GetSkillImage(skillToCareAbout.GetSkillNum()); _skillNameText.text = " " + SkillHolder.GetSkillName(skillToCareAbout.GetSkillNum()); _skillDescription.text = SkillHolder.GetSkillDescription(skillToCareAbout.GetSkillNum()); _damageText.text = skillToCareAbout.GetDamage().ToString(); _rangeText.text = skillToCareAbout.GetRange().ToString(); _cooldownText.text = skillToCareAbout.GetCoolDown().ToString(); } }
/// <summary> /// Display the preview menu with the ally's special skill /// </summary> /// <param name="allyStats">Reference to the ally who is parent of the skill</param> public void DisplayUpdatePreviewMenu(AllyStats allyStats) { // Update the skill preview string skillName = " None"; string skillDescription = "Upgrade magic to gain a skill"; string skillDmg = "0"; string skillRange = "0"; string skillCooldown = "0"; Sprite skillIcon = null; // Get the reference to the skill if (allyStats != null) { AllySkillController skillContRef = allyStats.GetComponent <AllySkillController>(); if (skillContRef != null) { Skill activeSkill = skillContRef.SpecialSkill; if (activeSkill != null) { skillName = " " + SkillHolder.GetSkillName(activeSkill.GetSkillNum()); skillDescription = SkillHolder.GetSkillDescription(activeSkill.GetSkillNum()); skillDmg = activeSkill.GetDamage().ToString(); skillRange = activeSkill.GetRange().ToString(); skillCooldown = activeSkill.GetCoolDown().ToString(); skillIcon = SkillHolder.GetSkillImage(activeSkill.GetSkillNum()); } } } // Set the values _skillNameText.text = skillName; _skillDescriptionText.text = skillDescription; _skillDmgText.text = skillDmg; _skillRangeText.text = skillRange; _skillCooldownText.text = skillCooldown; _skillIconImage.sprite = skillIcon; if (skillIcon == null) { _skillIconImage.color = new Color(0, 0, 0, 0); } else { _skillIconImage.color = new Color(1, 1, 1, 1); } // Set their colors to default _skillNameText.color = _defSkillTextCol; _skillDescriptionText.color = _defSkillTextCol; _skillDmgText.color = _defSkillTextCol; _skillRangeText.color = _defSkillTextCol; _skillCooldownText.color = _defSkillTextCol; }
/// <summary> /// Updates the skill skill buttons to reflect the selected character's skills /// </summary> private void UpdateSkillButtons(MoveAttack selChara) { // Get the current character's available skills List <Skill> availSkills = new List <Skill>(); if (selChara != null) { availSkills = selChara.GetComponent <CharacterSkills>().GetAvailableSkills(); } // Determine how many skills they have int amountSkills = availSkills.Count; if (amountSkills > _sideSkillObjs.Count) { Debug.LogError("The character has too many skills. Or there are too few side skill objects"); amountSkills = _sideSkillObjs.Count; } // Turn on only as many side skills as needed for (int i = 0; i < amountSkills; ++i) { _sideSkillObjs[i].SetActive(true); _sideSkillIcons[i].sprite = SkillHolder.GetSkillImage(availSkills[i].GetSkillNum()); if (availSkills[i].GetCooldownTimer() > 0) { _skillCoolTexts[i].text = availSkills[i].GetCooldownTimer().ToString(); } else { _skillCoolTexts[i].text = ""; } // If the skill is the active one, make it have the active color if (availSkills[i] == selChara.SkillRef) { _sideSkillIcons[i].color = _activeCol; } else { _sideSkillIcons[i].color = _inactiveCol; } } // Turn off the uneeded ones for (int i = amountSkills; i < _sideSkillObjs.Count; ++i) { _sideSkillObjs[i].SetActive(false); } }
private void SetSkillModificator(SkillHolder skillHolder) { var sheet = characterSheetController.Character; var skillCharacteristic = CharacterUtility.GetCharacteristicBySkill(skillHolder.type); int characteristicValue = sheet[skillCharacteristic]; bool isOwned = (sheet.PersonalSkills & skillHolder.type) == skillHolder.type; int modificator = CharacterValuesUtility.GetCharacteristicModificator(characteristicValue); if (isOwned) { int level = CharacterValuesUtility.CalculateLevel(sheet.ExpiriencePoints); modificator += CharacterValuesUtility.GetMasteryBonus(level); } skillHolder.valueText.text = TextUtility.GetSignedValueString(modificator); skillHolder.toggleButton.isOn = isOwned; }
/// <summary> /// Changes the skill detailed menu about the skill /// </summary> /// <param name="skillIndex">Index of the button pressed</param> public void ChangeSkillDetails(int skillIndex) { // Get the current character's available skills MoveAttack charMA = _mAGUIContRef.RecentCharSelectedMA; List <Skill> availSkills = charMA.GetComponent <CharacterSkills>().GetAvailableSkills(); // Get the skill coresponding to the clicked button Skill skillToCareAbout = availSkills[skillIndex]; // Set the display information to go with the skill _skillIcon.sprite = SkillHolder.GetSkillImage(skillToCareAbout.GetSkillNum()); _skillNameText.text = " " + SkillHolder.GetSkillName(skillToCareAbout.GetSkillNum()); _skillDescription.text = SkillHolder.GetSkillDescription(skillToCareAbout.GetSkillNum()); _damageText.text = skillToCareAbout.GetDamage().ToString(); _rangeText.text = skillToCareAbout.GetRange().ToString(); _cooldownText.text = skillToCareAbout.GetCoolDown().ToString(); _lastSkill = skillToCareAbout; }
public MathSkillWorker(SkillHolder skillHolder) : base(skillHolder) { }
void Awake() { instance = this; }
public MemorySkillWorker(SkillHolder SkillHolder) : base(SkillHolder) { }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var mappedObj = new List <ServantProfile>(); var activeSkills = new List <ServantSkill>(); var passiveSkills = new List <ServantSkill>(); var traits = new List <string>(); var tempProfile = new ServantProfile(); var tempHolder = new SkillHolder(); PropertyInfo pi; var objProps = typeof(ServantProfile).GetProperties().Select(p => p.Name.ToLower()); while (reader.Read()) { if (reader.TokenType == JsonToken.PropertyName) { #region big switch switch (reader.Value.ToString()) { case nameof(SkillHolder.skill1): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.skill1 = reader.Value.ToString(); } break; case nameof(SkillHolder.rank1): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.rank1 = reader.Value.ToString(); } break; case nameof(SkillHolder.effect1): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.effect1 = reader.Value.ToString(); } break; case nameof(SkillHolder.effect1RankUp): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.effect1RankUp = reader.Value.ToString(); } break; case nameof(SkillHolder.skill2): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.skill2 = reader.Value.ToString(); } break; case nameof(SkillHolder.rank2): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.rank2 = reader.Value.ToString(); } break; case nameof(SkillHolder.effect2): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.effect2 = reader.Value.ToString(); } break; case nameof(SkillHolder.effect2RankUp): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.effect2RankUp = reader.Value.ToString(); } break; case nameof(SkillHolder.skill3): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.skill3 = reader.Value.ToString(); } break; case nameof(SkillHolder.rank3): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.rank3 = reader.Value.ToString(); } break; case nameof(SkillHolder.effect3): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.effect3 = reader.Value.ToString(); } break; case nameof(SkillHolder.effect3RankUp): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.effect3RankUp = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveSkill1): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveSkill1 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveRank1): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveRank1 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveEffect1): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveEffect1 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveSkill2): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveSkill2 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveRank2): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveRank2 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveEffect2): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveEffect2 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveSkill3): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveSkill3 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveRank3): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveRank3 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveEffect3): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveEffect3 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveSkill4): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveSkill4 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveRank4): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveRank4 = reader.Value.ToString(); } break; case nameof(SkillHolder.passiveEffect4): if (reader.Read() && reader.TokenType == JsonToken.String) { tempHolder.passiveEffect4 = reader.Value.ToString(); } break; case nameof(traits): if (reader.Read() && reader.TokenType == JsonToken.String) { traits = reader.Value.ToString().Split(',').ToList(); } break; default: string readerValue = reader.Value.ToString().ToLower(); if (reader.Read()) { if (objProps.Contains(readerValue)) { pi = tempProfile.GetType().GetProperty(readerValue, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); var convertedValue = Convert.ChangeType(reader.Value, pi.PropertyType); pi.SetValue(tempProfile, convertedValue, null); } } break; } #endregion } else if (reader.TokenType == JsonToken.EndObject && reader.Depth == 1) { activeSkills.AddRange(new[] { new ServantSkill { SkillName = tempHolder.skill1, Rank = tempHolder.rank1, Effect = tempHolder.effect1, RankUpEffect = tempHolder.effect1RankUp }, new ServantSkill { SkillName = tempHolder.skill2, Rank = tempHolder.rank2, Effect = tempHolder.effect2, RankUpEffect = tempHolder.effect2RankUp }, new ServantSkill { SkillName = tempHolder.skill3, Rank = tempHolder.rank3, Effect = tempHolder.effect3, RankUpEffect = tempHolder.effect3RankUp }, }); passiveSkills.AddRange(new[] { new ServantSkill { SkillName = tempHolder.passiveSkill1, Rank = tempHolder.passiveRank1, Effect = tempHolder.passiveEffect1 }, new ServantSkill { SkillName = tempHolder.passiveSkill2, Rank = tempHolder.passiveRank2, Effect = tempHolder.passiveEffect2 }, new ServantSkill { SkillName = tempHolder.passiveSkill3, Rank = tempHolder.passiveRank3, Effect = tempHolder.passiveEffect3 }, new ServantSkill { SkillName = tempHolder.passiveSkill4, Rank = tempHolder.passiveRank4, Effect = tempHolder.passiveEffect4 }, }); tempProfile.ActiveSkills = activeSkills; tempProfile.PassiveSkills = passiveSkills; tempProfile.Traits = traits; mappedObj.Add(tempProfile); activeSkills = new List <ServantSkill>(); passiveSkills = new List <ServantSkill>(); traits = new List <string>(); tempProfile = new ServantProfile(); tempHolder = new SkillHolder(); } } return(mappedObj); }
/// <summary> /// Replaces text and such with what would happen if the skill was upgraded /// </summary> /// <param name="allyGrim">Grimoire of the selected</param> /// <param name="previewMagicStat">The amount the magic will potentially increase</param> public void PreviewSkillUpgrade(AllyGrimoire allyGrim, int amountIncrease) { // Default values string skillName = " None"; string skillDescription = "Upgrade magic to gain a skill"; int skillDmg = 0; int skillRange = 0; int skillCooldown = 0; Sprite skillIcon = null; // For if the values were changed at all bool isSkillNameBuff = false; bool isSkillDmgBuff = false; bool isSkillRangeBuff = false; bool isSkillCooldownBuff = false; // Get the starting values for the skill AllySkillController skillContRef = allyGrim.GetComponent <AllySkillController>(); if (skillContRef != null) { Skill activeSkill = skillContRef.SpecialSkill; if (activeSkill != null) { skillName = " " + SkillHolder.GetSkillName(activeSkill.GetSkillNum()); skillDescription = SkillHolder.GetSkillDescription(activeSkill.GetSkillNum()); skillIcon = SkillHolder.GetSkillImage(activeSkill.GetSkillNum()); skillDmg = activeSkill.GetDamage(); skillRange = activeSkill.GetRange(); skillCooldown = activeSkill.GetCoolDown(); } // Iterate over the buffs for (int i = 1; i <= amountIncrease; ++i) { // Get the next buff MagicBuff nextBuff = allyGrim.PeekForward(i); switch (nextBuff) { // If the next buff is to acquire a skill, get that skill and set the defaults case (MagicBuff.SKILLACQ): // We are going to temporarily give this character the skill in question to get the starting values Skill gainSkill = _skillHolderRef.GiveSkill(skillContRef, allyGrim.SkillToGain); skillName = " " + SkillHolder.GetSkillName(allyGrim.SkillToGain); skillDescription = SkillHolder.GetSkillDescription(allyGrim.SkillToGain); skillIcon = SkillHolder.GetSkillImage(allyGrim.SkillToGain); skillDmg = gainSkill.GetDamage(); skillRange = gainSkill.GetRange(); skillCooldown = gainSkill.GetCoolDown(); isSkillNameBuff = true; isSkillDmgBuff = true; isSkillRangeBuff = true; isSkillCooldownBuff = true; // Get rid of the temporary skill Destroy(gainSkill); break; // If the next buff is just an increment, increment them case (MagicBuff.DMGINC): ++skillDmg; isSkillDmgBuff = true; break; case (MagicBuff.RANGEINC): isSkillRangeBuff = true; ++skillRange; break; case (MagicBuff.COOLLWR): isSkillCooldownBuff = true; --skillCooldown; break; default: Debug.Log("Unhandled MagicBuff in SkillPreviewController"); break; } } // Set the values _skillNameText.text = skillName; _skillDescriptionText.text = skillDescription; _skillIconImage.sprite = skillIcon; if (skillIcon == null) { _skillIconImage.color = new Color(0, 0, 0, 0); } else { _skillIconImage.color = new Color(1, 1, 1, 1); } _skillDmgText.text = skillDmg.ToString(); _skillRangeText.text = skillRange.ToString(); _skillCooldownText.text = skillCooldown.ToString(); // Set the ones that were buffed to green if (isSkillNameBuff) { _skillNameText.color = CharDetailedMenuController.UpgradeTextCol; } if (isSkillDmgBuff) { _skillDmgText.color = CharDetailedMenuController.UpgradeTextCol; } if (isSkillRangeBuff) { _skillRangeText.color = CharDetailedMenuController.UpgradeTextCol; } if (isSkillCooldownBuff) { _skillCooldownText.color = CharDetailedMenuController.UpgradeTextCol; } } }