//TODO: Change this to actually work properly. Need to add a current health, and a max health type of variable in generic character private void ProcessDamageTaken(GenericCharacter aGenericCharacter, int aDamageValue) { int currentDamage = aDamageValue; aDamageValue -= aGenericCharacter.GetCharacterTotalStats()[(int)GenericCharacter.STAT_INDEX.SHIELD]; if (aDamageValue < 0) { aDamageValue = 0; } int currentHP = aGenericCharacter.GetCharacterTotalStats()[(int)GenericCharacter.STAT_INDEX.HEALTH] -= aDamageValue; if (currentHP < 0) { currentHP = 0; } aGenericCharacter.SetCurrentHealth(currentHP); }
public void InitCharacterWithJSON(string aJSONFilePath) { TextAsset file = Resources.Load(aJSONFilePath) as TextAsset; JSONNode characterJSON = JSON.Parse(file.ToString()); Debug.Log(characterJSON); if (m_CharacterStats == null) { m_CharacterStats = new GenericCharacter(); } m_CharacterStats.SetIsPlayerControlled(characterJSON["isPlayerControlled"]); m_CharacterStats.SetIsCharacterDead(characterJSON["isCharacterDead"]); m_CharacterStats.SetCharacterHasMana(characterJSON["doesCharacterHaveMana"]); m_CharacterStats.SetCharacterName(characterJSON["characterName"]); m_CharacterStats.SetSpriteFilePath(characterJSON["spriteFilePath"]); m_CharacterStats.SetSpriteFileName(characterJSON["spriteName"]); m_CharacterStats.SetCharacterHealth(characterJSON["characterStats"]["maxHealth"]); m_CharacterStats.SetCurrentHealth(characterJSON["characterStats"]["currentHealth"]); m_CharacterStats.SetShield(characterJSON["characterStats"]["shield"]); m_CharacterStats.SetStrength(characterJSON["characterStats"]["strength"]); m_CharacterStats.SetSpellPower(characterJSON["characterStats"]["spellPower"]); if (characterJSON["actionListIDs"].IsArray) { for (int i = 0; i < characterJSON["actionListIDs"].AsArray.Count; i++) { //TODO: Check if ability is in the dictionary first before trying to add to character //NOTE: I might already be doing that in another function that gets called when I add it. //What in the C# wizardy f**k is this ActionData.ACTION_LIST_ID action = (ActionData.ACTION_LIST_ID)System.Enum.Parse(typeof(ActionData.ACTION_LIST_ID), characterJSON["actionListIDs"][i]); m_CharacterStats.AddActionIDToUsableActionList(action); } } //Oh god here we go again with the magic m_CharacterStats.AddEquipmentToCharacter( (ItemData.ITEM_ID)System.Enum.Parse(typeof(ItemData.ITEM_ID), characterJSON["equipmentSlots"]["chest"]) ); m_CharacterStats.AddEquipmentToCharacter( (ItemData.ITEM_ID)System.Enum.Parse(typeof(ItemData.ITEM_ID), characterJSON["equipmentSlots"]["helm"]) ); m_CharacterStats.AddEquipmentToCharacter( (ItemData.ITEM_ID)System.Enum.Parse(typeof(ItemData.ITEM_ID), characterJSON["equipmentSlots"]["weapon"]) ); m_CharacterStats.AddEquipmentToCharacter( (ItemData.ITEM_ID)System.Enum.Parse(typeof(ItemData.ITEM_ID), characterJSON["equipmentSlots"]["ring"]) ); //Unload this somewhere....? at some point in time? Not sure where, but somewhere... string spritePath = m_CharacterStats.GetSpriteFilePath() + "/" + m_CharacterStats.GetSpriteFileName(); m_SpriteRenderer.sprite = Resources.Load <Sprite>(spritePath); Resources.UnloadAsset(file); GameManager.GetPlayerManager.AddCharacterToList(m_CharacterStats); }
private void ProcessHealingTaken(GenericCharacter aGenericCharacter, int aHealingValue) { aGenericCharacter.SetCurrentHealth(aGenericCharacter.GetCharacterHealth() + aHealingValue); }