public void CheckLevelup(GameObject obj) { List <GameObject> levelupObjs = new List <GameObject>(); foreach (GameObject o in GameFSMManager.instance.FindAllies()) { if (o == obj) { continue; } //스스로 무시하고 UnitStat o_stat = o.GetComponent <UnitStat>(); if (o_stat.name == currentItem.stat.name && o_stat.level == currentItem.stat.level) { levelupObjs.Add(o); } } if (levelupObjs.Count >= 2) { foreach (GameObject o in levelupObjs) { Destroy(o.GetComponent <UnitStat>().hpBar.gameObject); Destroy(o.gameObject);// o.GetComponent<UnitFSMManager>().SetState(UnitState.DEAD); } obj.GetComponent <UnitStat>().level++; } else { return; } }
private double AdjustStat(UnitBuilder unit, double valueBudget, UnitStat stat) { switch (stat) { case UnitStat.Health: return(AdjustHealthStat(unit, valueBudget)); case UnitStat.Armor: return(AdjustArmorStat(unit, valueBudget)); case UnitStat.Cost: return(AdjustCostStat(unit, valueBudget)); case UnitStat.BuildTime: return(AdjustBuildTimeStat(unit, valueBudget)); case UnitStat.Supply: return(AdjustSupplyCostStat(unit, valueBudget)); case UnitStat.MoveRange: return(AdjustMoveRangeStat(unit, valueBudget)); default: return(0); } }
public short SetItemStatMultiplier(Stats bonusType, int mult) { UnitStat stat = GetUnitStat(bonusType); stat.ItemStatMultiplier = mult; return((short)(stat.AvailableItemBonus * (stat.ItemStatMultiplier - 1))); }
public void TakeDamage(int damage) { health -= damage; if (health > healthMax) { health = healthMax; } AnimaText animaText = new AnimaText(); if (damage > 0) { animaText.ShowText(PlayerMovement.tilePos, damage.ToString(), Color.red); } else if (damage < 0) { animaText.ShowText(PlayerMovement.tilePos, damage.ToString(), Color.green); } else { animaText.ShowText(PlayerMovement.tilePos, damage.ToString(), Color.gray); } UnitStat unitStat = new UnitStat(); unitStat.DisplayStats(PlayerMovement.tilePos); }
public int GetStatLinearModifier(Stats statType) { UnitStat modifier = _statModifiers[(int)statType]; if (modifier == null) { _logger.Trace($"Modifier : null"); return(0); } else { _logger.Trace($"Modifier : {modifier.TotalStat} {modifier.TotalMultiplier} {modifier.AvailableItemBonus} {modifier.InternalItemBonus} {modifier.ItemAddFromStat}"); } int linearStat = modifier.TotalStat; if (modifier.ItemAddFromStat != 0) { linearStat += _statModifiers[modifier.ItemAddFromStat].InternalItemBonus; } _logger.Trace($"HTStacks : {HTLStacks} linearstat {linearStat}"); if (HTLStacks == 0 || (statType != Stats.Disrupt && statType != Stats.Evade)) { return(linearStat); } _logger.Trace($"return is {linearStat + Math.Min((byte)3, HTLStacks) * 15}"); return(linearStat + Math.Min((byte)3, HTLStacks) * 15); }
public void SetUnit(Unit _unit) { m_Unit = _unit; m_UnitStat = m_Unit.m_Stat; SetData(); }
public short GetTotalStat(Stats bonusType) { if (GetUnit() == null) { return(0); } int value = GetCoreStat(bonusType); UnitStat statModifier = _statModifiers[(int)bonusType]; if (statModifier == null) { return((short)value); } if (bonusType < Stats.BaseStatCount && value + GetStatLinearModifier(bonusType) <= 0) { return(0); } value = (int)((value + GetStatLinearModifier(bonusType)) * statModifier.TotalMultiplier); return((short)value); }
private void Start() { switch (type) { case CharacterType.Hero: stat = (UnitStat)AssetDatabase.LoadAssetAtPath("Assets/Datas/Heroes/Hero_" + characterCode + ".asset", typeof(UnitStat)); setSkills(stat.GetSkills()); cooldown = new List <float> { 0.0f, 0.0f, 0.0f, 0.0f }; break; case CharacterType.Unit: stat = (UnitStat)AssetDatabase.LoadAssetAtPath("Assets/Datas/Units/Unit_" + characterCode + ".asset", typeof(UnitStat)); break; case CharacterType.Building: stat = (UnitStat)AssetDatabase.LoadAssetAtPath("Assets/Datas/Buildings/Building_" + characterCode + ".asset", typeof(UnitStat)); break; } setStats(stat.GetStats()); setSprite(stat.GetSprite()); anime = gameObject.GetComponent <Animator>(); anime.runtimeAnimatorController = stat.GetAnime(); nextMovePosition = transform.position; direction = CharacterDirection.Right; }
public void unitstat_cannot_decrease_beyond_zero() { UnitStat stat = new UnitStat(10); stat.AddModifier(new StatModifier(-15, StatModType.Flat)); Assert.AreEqual(0, stat.Value); }
public void ShowToolTip(UnitStat stat, string statName) { statNameText.text = GetStatTopText(stat, statName); statModifierText.text = GetStatModifiersText(stat); gameObject.SetActive(true); }
public void unitstat_cannot_increase_beyond_limit() { UnitStat stat = new UnitStat(10, true); stat.AddModifier(new StatModifier(-3, StatModType.Flat)); stat.AddModifier(new StatModifier(5, StatModType.Flat)); Assert.AreEqual(10, stat.Value); }
public void SetStat(UnitStat s, int v) { stats[s] += v; if (stats[UnitStat.skillpoints] > 0) { stats[UnitStat.skillpoints] -= 1; } }
protected virtual void Awake() { m_Stat = GetComponent <UnitStat>(); m_Animator = GetComponent <Animator>(); m_SpriteRenderer = GetComponent <SpriteRenderer>(); m_SetCenterPosition = GetComponent <SetCenterPosition>(); m_SetZOrder = GetComponent <SetZOrder>(); }
public static void SetStat(UnitType subject, UnitStat stat, float value) { if (stat == UnitStat.Level || stat == UnitStat.Experience) { return; } mUnitStats [(int)subject, (int)stat] = value; }
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (!initialized) { this.stat = animator.GetComponent <UnitStat>(); initialized = true; } stat.OnIdleStateEnter(); }
private UnitStat GetUnitStat(Stats statType) { byte type = (byte)statType; if (_statModifiers[type] == null) { _statModifiers[type] = new UnitStat(this); } return(_statModifiers[type]); }
public ushort GetCombinationItemStat(Stats statType) { UnitStat mainStat = GetUnitStat(statType); if (mainStat.ItemAddFromStat == 0) { return(mainStat.InternalItemBonus); } return((ushort)(mainStat.InternalItemBonus + _statModifiers[mainStat.ItemAddFromStat].InternalItemBonus)); }
public void modifier_with_default_duration_is_not_removed() { UnitStat stat = new UnitStat(10); stat.AddModifier(new StatModifier(0.4f, StatModType.PercentAdd)); stat.DecrementDuration(); stat.DecrementDuration(); stat.DecrementDuration(); Assert.AreEqual(10 * 1.4f, stat.Value); }
private static UnitStat[] GetStatsToDisplay(Unit unit) { UnitStat[] stats = new UnitStat[5]; stats[0] = unit.stats[StatString.PHYSICAL_DAMAGE]; stats[1] = unit.stats[StatString.MAGIC_DAMAGE]; stats[2] = unit.stats[StatString.HIT_RATE]; stats[3] = unit.stats[StatString.CRIT_RATE]; stats[4] = unit.stats[StatString.ATTACK_RANGE]; return(stats); }
public void MakeHPBar(UnitStat target) { GameObject bar = Instantiate(HPBar); bar.transform.parent = canvas.transform; HPBarManager manager = bar.GetComponent <HPBarManager>(); manager.stat = target; target.hpBar = manager; }
public bool ConsumeRage() { if (rage >= rageConsume) { rage -= rageConsume; UnitStat unitStat = new UnitStat(); unitStat.DisplayStats(PlayerMovement.tilePos); return(true); } return(false); }
public void Goto(UnitStat stat) { this.gameObject.SetActive(true); info.text = stat.name + " " + (stat.level + 1).ToString() + "성" + "\n공격속도: " + stat.attackSpeed.ToString() + "\n공격력: " + stat.power.ToString() + "\n이동속도:" + stat.moveSpeed.ToString(); Vector3 pos = stat.transform.position; transform.position = Camera.main.WorldToScreenPoint(pos); }
public void modifier_with_duration_4_is_removed_after_4_endTurns() { UnitStat stat = new UnitStat(10); stat.AddModifier(new StatModifier(0.4f, 4, StatModType.PercentAdd)); stat.DecrementDuration(); stat.DecrementDuration(); stat.DecrementDuration(); Assert.AreEqual(10 * 1.4f, stat.Value); stat.DecrementDuration(); Assert.AreEqual(10, stat.Value); }
public void modifiers_applied_in_custom_sorting_order() { UnitStat stat = new UnitStat(10); stat.AddModifier(new StatModifier(0.4f, StatModType.PercentAdd, 1)); stat.AddModifier(new StatModifier(-0.3f, StatModType.PercentMult, 2)); Assert.AreEqual(10 * 1.4f * 0.7f, stat.Value); stat.AddModifier(new StatModifier(-5, StatModType.Flat, 3)); Assert.AreEqual(10 * 1.4f * 0.7f - 5, stat.Value); stat.AddModifier(new StatModifier(0.3f, StatModType.PercentMult, 4)); Assert.AreEqual(1.3f * (10 * 1.4f * 0.7f - 5), stat.Value); }
public void ResetStats() { health = healthMax; rage = 0; UnitStat unitStat = new UnitStat(); unitStat.DisplayStats(PlayerMovement.tilePos); keyObtained = false; bossKilled = false; }
public void DamagePlayer(int damage, int tile, Type type) { Rng rng = new Rng(); damage = rng.Range(Mathf.FloorToInt(damage * 0.5f), Mathf.FloorToInt(damage * 1.5f) + 1); PlayerStat playerStat = new PlayerStat(); playerStat.TakeDamage(damage); UnitStat unitStat = new UnitStat(); unitStat.DisplayStats(tile); }
public void Shop_Goto(UnitStat stat) { this.gameObject.SetActive(true); info.text = stat.name + "\n공격속도: " + stat.attackSpeed.ToString() + "\n공격력: " + stat.power.ToString() + "\n이동속도:" + stat.moveSpeed.ToString() + "\n가격: " + stat.price.ToString(); Vector3 pos = stat.transform.position; transform.position = pos; }
void Awake() { instance = this; states.Add(UnitState.IDLE, GetComponent <UnitIDLE>()); states.Add(UnitState.MOVE, GetComponent <UnitMOVE>()); states.Add(UnitState.ATTACK, GetComponent <UnitATTACK>()); states.Add(UnitState.DEAD, GetComponent <UnitDEAD>()); states.Add(UnitState.READY, GetComponent <UnitREADY>()); cc = GetComponent <CharacterController>(); anim = GetComponentInChildren <Animator>(); stat = GetComponent <UnitStat>(); tag = stat.type.ToString(); }
public void modifiers_applied_in_sorting_order() { UnitStat stat = new UnitStat(10); stat.AddModifier(new StatModifier(0.4f, StatModType.PercentAdd)); stat.AddModifier(new StatModifier(-0.3f, StatModType.PercentMult)); Assert.AreEqual(10 * 1.4f * 0.7f, stat.Value); stat.AddModifier(new StatModifier(-5, StatModType.Flat)); Assert.AreEqual((10 - 5) * 1.4f * 0.7f, stat.Value); stat.AddModifier(new StatModifier(0.3f, StatModType.PercentMult)); Assert.AreEqual((10 - 5) * 1.4f * 0.91f, stat.Value); stat.AddModifier(new StatModifier(0.3f, StatModType.PercentAdd)); Assert.AreEqual((10 - 5) * 1.7f * 0.7f * 1.3f, stat.Value); }
public void CreateUnits(int index) { Stage current = stages[index]; for (int i = 0; i < current.unit.Count; i++) { GameObject obj = Instantiate(current.unit[i]); obj.transform.position = new Vector3(Random.Range(-10, 10), 0, Random.Range(-10, 10)); UnitStat stat = obj.GetComponent <UnitStat>(); stat.type = UnitType.ENEMY; stat.tag = stat.type.ToString(); stat.manager.SetBodyColor(); stat.currentHp = stat.hp; } }
public static void SetStat(UnitType subject, UnitStat stat, float value) { if (stat == UnitStat.Level || stat == UnitStat.Experience) return; mUnitStats [(int)subject, (int)stat] = value; }
protected override void Awake() { base.Awake(); mStats = GetComponentInChildren<UnitStat>(); mFlockUnit = GetComponentInChildren<FlockUnit>(); mListener = GetComponentInChildren<ActionListener>(); mActTarget = GetComponentInChildren<ActionTarget>(); mSpriteControl = GetComponentInChildren<UnitSpriteController>(); mWeapon = GetComponentInChildren<Weapon>(); mSpellCaster = GetComponentInChildren<SpellCaster>(); //hook calls up mStats.statChangeCallback += OnStatChange; if(mFlockUnit != null) { mFlockUnit.groupMoveEnabled = false; } if(mListener != null) { mListener.enterCallback += OnActionEnter; mListener.hitEnterCallback += OnActionHitEnter; mListener.hitExitCallback += OnActionHitExit; mListener.finishCallback += OnActionFinish; } }
public static float GetStat(UnitType unit, UnitStat stat) { Era currentEra = GameState.GameEra; if (stat == UnitStat.Level) return mUnitLevels[(int) unit, (int) currentEra]; if (stat == UnitStat.Experience) return mUnitExperience[(int) unit, (int) currentEra]; return mUnitStats [(int)unit, (int)stat]; }