private void createStatPanel() { if (null == PrefStatPanel) { Log.Error("not found prefab stat panel"); return; } if (null == StatListPanel) { Log.Error("not found stat list panel"); return; } Array statTypeArray = Enum.GetValues(typeof(EStat)); const int NUM_STAT = (int)EStat.MAX; for (int i = 0; i < NUM_STAT; ++i) { GameObject o = Instantiate(PrefStatPanel); o.transform.SetParent(StatListPanel.transform, false); EStat stat = (EStat)statTypeArray.GetValue(i); StatPanel p = o.GetComponent <StatPanel>(); p.Set(stat); } }
protected override void AugmentStat(EStat stat) { switch (stat) { case EStat.AbilityPower: // break; case EStat.Armor: // break; case EStat.AttackDamage: // break; case EStat.AttackSpeed: // break; case EStat.CooldownReduction: // break; case EStat.CriticalChance: // break; case EStat.MagicResistance: // break; case EStat.MovementSpeed: // break; } }
protected float GetEffectMultiplier(EStat buff, EStat debuff, bool clamping = false, float clampMin = 0, float clampMax = 1) { float multiplier = 1.0f; if (m_effectsDictionary.ContainsKey(buff)) { foreach (var buffEffect in m_effectsDictionary[buff]) { multiplier += buffEffect.Magnitude; } } if (m_effectsDictionary.ContainsKey(debuff)) { foreach (var debuffEffect in m_effectsDictionary[debuff]) { multiplier -= debuffEffect.Magnitude; } } if (clamping) { multiplier = Mathf.Clamp(multiplier, clampMin, clampMax); } return(multiplier); }
public void ResetStat(EStat stat) { switch (stat) { case EStat.LOYALTY: ArticyGlobalVariables.Default.rep.loyalty = 0; break; case EStat.DEATH_TOTAL: ArticyGlobalVariables.Default.rep.death_total = 0; break; case EStat.DEATH_DAILY: ArticyGlobalVariables.Default.day.death_count = 0; break; case EStat.MAX: break; case EStat.ECOLOGY: ArticyGlobalVariables.Default.rep.ecology = 0; break; case EStat.HEALTH: ArticyGlobalVariables.Default.rep.health = 0; break; case EStat.PROSPERITY: ArticyGlobalVariables.Default.rep.prosperity = 0; break; case EStat.PEACE: ArticyGlobalVariables.Default.rep.peace = 0; break; case EStat.SPARE_TOTAL: ArticyGlobalVariables.Default.rep.spare_total = 0; break; case EStat.SPARE_DAILY: ArticyGlobalVariables.Default.day.spare_count = 0; break; case EStat.ECOLOGY_DAILY: ArticyGlobalVariables.Default.day.ecology_change = 0; break; case EStat.HEALTH_DAILY: ArticyGlobalVariables.Default.day.health_change = 0; break; case EStat.PROSPERITY_DAILY: ArticyGlobalVariables.Default.day.prosperity_change = 0; break; case EStat.PEACE_DAILY: ArticyGlobalVariables.Default.day.peace_change = 0; break; } }
public float GetStat(EStat stat, float divider = 1.0f) { if (CurrentStatDictionary.ContainsKey(stat)) { return(CurrentStatDictionary[stat] / divider); } return(0.0f); }
public void UpdateGlobeParticlesForStat(EStat stat) { EGoodBadNeutral status = EGoodBadNeutral.Neutral; float parameter = 0; PlayerState player = SaveManager.instance.GetCurrentPlayerState(); if (stat == EStat.MAX) { parameter = (player.GetStat(EStat.ECOLOGY) + player.GetStat(EStat.PEACE) + player.GetStat(EStat.PROSPERITY) + player.GetStat(EStat.HEALTH)) / 4; if (parameter > GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Good]) { status = EGoodBadNeutral.Good; } else if (parameter < GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Dire]) { status = EGoodBadNeutral.Bad; } } else { parameter = player.GetStat(stat); if (parameter > 0) { status = EGoodBadNeutral.Good; } else if (parameter < 0) { status = EGoodBadNeutral.Bad; } } switch (stat) { case EStat.MAX: ParticleInside.SetStatus(status); break; case EStat.ECOLOGY_DAILY: ParticleEcology.SetStatus(status); break; case EStat.HEALTH_DAILY: ParticleHealth.SetStatus(status); break; case EStat.PROSPERITY_DAILY: ParticleProsperity.SetStatus(status); break; case EStat.PEACE_DAILY: ParticlePeace.SetStatus(status); break; } }
public ConsumableItem merge(ConsumableItem other) { EStat childStat = (Random.value > 0.5) ? this.target : other.target; int childChange = (this.change < other.change) ? Random.Range(this.change, other.change + 1) : // range is max-exclusive so +1 Random.Range(other.change, this.change + 1); return(new ConsumableItem(childStat, childChange)); }
private void onCharacterStatChanged(EStat statType, int value) { if (_statType != statType) { return; } setValue(value); }
public int getStat(EStat targetStat) { if (!stats.ContainsKey(targetStat)) { // No stat => return(0); } return(stats[targetStat]); }
protected float GetEffectMultiplier(EStat effect, bool startsAt1 = true) { float multiplier = startsAt1 ? 1.0f: 0.0f; if (m_effectsDictionary.ContainsKey(effect)) { foreach (var buff in m_effectsDictionary[effect]) { multiplier += buff.Magnitude; } } return(multiplier); }
public int GetStat(EStat stat) { switch (stat) { case EStat.LOYALTY: return(ArticyGlobalVariables.Default.rep.loyalty); case EStat.DEATH_TOTAL: return(ArticyGlobalVariables.Default.rep.death_total); case EStat.DEATH_DAILY: return(ArticyGlobalVariables.Default.day.death_count); case EStat.ECOLOGY: return(ArticyGlobalVariables.Default.rep.ecology); case EStat.HEALTH: return(ArticyGlobalVariables.Default.rep.health); case EStat.PROSPERITY: return(ArticyGlobalVariables.Default.rep.prosperity); case EStat.PEACE: return(ArticyGlobalVariables.Default.rep.peace); case EStat.SPARE_TOTAL: return(ArticyGlobalVariables.Default.rep.spare_total); case EStat.SPARE_DAILY: return(ArticyGlobalVariables.Default.day.spare_count); case EStat.ECOLOGY_DAILY: return(ArticyGlobalVariables.Default.day.ecology_change); case EStat.HEALTH_DAILY: return(ArticyGlobalVariables.Default.day.health_change); case EStat.PROSPERITY_DAILY: return(ArticyGlobalVariables.Default.day.prosperity_change); case EStat.PEACE_DAILY: return(ArticyGlobalVariables.Default.day.peace_change); } Debug.LogError("Stat " + stat.ToString() + " did not return correct value!"); return(0); }
public void SetStat(EStat eStat, int stat) { switch (eStat) { case EStat.EXP: m_nExp += stat; break; case EStat.M_HP: m_nHp += stat; break; case EStat.STR: m_nStr += stat; break; case EStat.SHIELD: m_nShield += stat; break; case EStat.HITSPEED: m_nHitSpeed += stat; break; case EStat.CRITICALITY: m_nCriticality += stat; break; case EStat.CDMAGE: m_nCDamage += stat; break; case EStat.EFFECTRESIST: m_nEffectResist += stat; break; case EStat.EFFECTHIT: m_nEffectHit += stat; break; case EStat.LEVEL: m_nLevel += stat; break; case EStat.M_LEVEL: m_nMaxLevel = 10; break; case EStat.STAR: m_nStar = 1; break; case EStat.SKILLPOINTE: m_nSkillpointe = stat; break; case EStat.HP: m_nHp += stat; break; } }
public void Set(EStat statType, int value) { if (EStat.MAX == statType) { Log.Error("invalid stat type"); return; } _statType = statType; int statId = (int)statType; Stat stat = Manager.Instance.DT.Stat[statId]; setNameText(stat.name); setValue(value); }
public int GetStat(EStat eStat) { switch (eStat) { case EStat.EXP: return(m_nExp); case EStat.M_HP: return(m_nMaxHp); case EStat.HP: return(m_nHp); case EStat.STR: return(m_nStr); case EStat.SHIELD: return(m_nShield); case EStat.HITSPEED: return(m_nHitSpeed); case EStat.CRITICALITY: return(m_nCriticality); case EStat.CDMAGE: return(m_nCDamage); case EStat.EFFECTRESIST: return(m_nEffectResist); case EStat.EFFECTHIT: return(m_nEffectHit); case EStat.LEVEL: return(m_nLevel); case EStat.M_LEVEL: return(m_nMaxLevel); case EStat.STAR: return(m_nStar); } return(0); }
public int GetStat(EStat statType) { switch (statType) { case EStat.STRESS: return(Stress); case EStat.CHARM: return(Charm); case EStat.SENSIBILITY: return(Sensibility); case EStat.ARTS: return(Arts); default: Log.Error(string.Format("invalid stat type : {0}", statType)); return(Def.MIN_STAT); } }
public StatWeight(EStat statType, int weight) { _statType = statType; _weight = weight; }
public int GetParameterThresholdIndex(EStat stat, float parameter) { switch (stat) { case EStat.LOYALTY: { float avg = (ArticyGlobalVariables.Default.rep.ecology + ArticyGlobalVariables.Default.rep.peace + ArticyGlobalVariables.Default.rep.prosperity + ArticyGlobalVariables.Default.rep.health) / 4; if (parameter < 0) { return(Mathf.Max(GetParameterThresholdIndex(EStat.MAX, avg) - 1, 0)); } else if (parameter > 0) { return(Mathf.Min(GetParameterThresholdIndex(EStat.MAX, avg) + 1, 4)); } else { return(GetParameterThresholdIndex(EStat.MAX, avg)); } } case EStat.DEATH_TOTAL: break; case EStat.DEATH_DAILY: break; case EStat.SPARE_TOTAL: break; case EStat.SPARE_DAILY: break; case EStat.ECOLOGY: case EStat.HEALTH: case EStat.PROSPERITY: case EStat.PEACE: { if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Critical]) // -infinity to -350 { //shit return(0); } else if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Dire]) // -349 to -100 { //low return(1); } else if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Good]) // -99 to 100 { //med return(2); } else if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Utopian]) // 101 to 350 { //high return(3); } else // 351 to +infinity { //super return(4); } } case EStat.ECOLOGY_DAILY: { if (parameter < 0) { return(Mathf.Max(GetParameterThresholdIndex(EStat.ECOLOGY, ArticyGlobalVariables.Default.rep.ecology) - 1, 0)); } else if (parameter > 0) { return(Mathf.Min(GetParameterThresholdIndex(EStat.ECOLOGY, ArticyGlobalVariables.Default.rep.ecology) + 1, 4)); } else { return(GetParameterThresholdIndex(EStat.ECOLOGY, ArticyGlobalVariables.Default.rep.ecology)); } } case EStat.HEALTH_DAILY: { if (parameter < 0) { return(Mathf.Max(GetParameterThresholdIndex(EStat.HEALTH, ArticyGlobalVariables.Default.rep.health) - 1, 0)); } else if (parameter > 0) { return(Mathf.Min(GetParameterThresholdIndex(EStat.HEALTH, ArticyGlobalVariables.Default.rep.health) + 1, 4)); } else { return(GetParameterThresholdIndex(EStat.HEALTH, ArticyGlobalVariables.Default.rep.health)); } } case EStat.PROSPERITY_DAILY: { if (parameter < 0) { return(Mathf.Max(GetParameterThresholdIndex(EStat.PROSPERITY, ArticyGlobalVariables.Default.rep.prosperity) - 1, 0)); } else if (parameter > 0) { return(Mathf.Min(GetParameterThresholdIndex(EStat.PROSPERITY, ArticyGlobalVariables.Default.rep.prosperity) + 1, 4)); } else { return(GetParameterThresholdIndex(EStat.PROSPERITY, ArticyGlobalVariables.Default.rep.prosperity)); } } case EStat.PEACE_DAILY: { if (parameter < 0) { return(Mathf.Max(GetParameterThresholdIndex(EStat.PEACE, ArticyGlobalVariables.Default.rep.peace) - 1, 0)); } else if (parameter > 0) { return(Mathf.Min(GetParameterThresholdIndex(EStat.PEACE, ArticyGlobalVariables.Default.rep.peace) + 1, 4)); } else { return(GetParameterThresholdIndex(EStat.PEACE, ArticyGlobalVariables.Default.rep.peace)); } } case EStat.MAX: { if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Critical]) // -infinity to -350 { //shit return(0); } else if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Dire]) // -349 to -100 { //low return(1); } else if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Good]) // -99 to 100 { //med return(2); } else if (parameter <= GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Utopian]) // 101 to 350 { //high return(3); } else // 351 to +infinity { //super return(4); } } } return(0); }
public ConsumableItem(EStat target, int change) { this.target = target; this.change = change; }
//상태값 변경 public void ChangeStat(EStat s) { NowStat = s; }
public float GetFinalStat(EStat stat) { var statValue = 1 + m_data.Stats.GetStat(stat, 100.0f); //Default to 1.0f if stat does not have a base value return(statValue * GetEffectMultiplier(stat)); //TODO: Do I multiply buffs and debuffs or do I make them additive instead?!? }
protected abstract void AugmentStat(EStat stat);
public void Invoke(EStat statType, int value) { _event.Invoke(statType, value); }
// default handler private void onCharacterStatChanged(EStat statType, int value) { Log.Debug(string.Format("onCharacterStatChanged; {0}: {1}", statType, value)); }
public IEnumerator SwitchParameterSpriteRoutine(EStat stat, int targetSpriteIndex) { SpriteRenderer targetRenderer = null; SpriteRenderer baseRenderer = null; Sprite targetSprite = null; switch (stat) { case EStat.ECOLOGY: targetRenderer = EcologyTargetRenderer; baseRenderer = EcologyRenderer; targetSprite = EcologySprites[targetSpriteIndex]; break; case EStat.HEALTH: targetRenderer = HealthTargetRenderer; baseRenderer = HealthRenderer; targetSprite = HealthSprites[targetSpriteIndex]; break; case EStat.PROSPERITY: targetRenderer = ProsperityTargetRenderer; baseRenderer = ProsperityRenderer; targetSprite = ProsperitySprites[targetSpriteIndex]; break; case EStat.PEACE: targetRenderer = PeaceTargetRenderer; baseRenderer = PeaceRenderer; targetSprite = PeaceSprites[targetSpriteIndex]; break; case EStat.MAX: targetRenderer = InsideTargetRenderer; baseRenderer = InsideRenderer; targetSprite = InsideSprites[targetSpriteIndex]; break; } if (targetSprite != baseRenderer.sprite) { float elapsedTime = 0.0f; float duration = 1.0f; float alpha = 0.0f; Color col = baseRenderer.color; targetRenderer.sprite = targetSprite; while (elapsedTime < duration) { elapsedTime = Mathf.Clamp(elapsedTime + Time.deltaTime, 0.0f, duration); alpha = Mathf.Clamp(elapsedTime / duration, 0.0f, 1.0f); col.a = 1.0f - alpha; baseRenderer.color = col; col.a = alpha; targetRenderer.color = col; yield return(null); } baseRenderer.sprite = targetSprite; col.a = 1.0f; baseRenderer.color = col; col.a = 0.0f; targetRenderer.color = col; } else { yield return(null); } }
public void ModifyStat(EStat stat, int amount) { if (amount != 0) { switch (stat) { case EStat.LOYALTY: ArticyGlobalVariables.Default.rep.loyalty += amount; break; case EStat.DEATH_TOTAL: ArticyGlobalVariables.Default.rep.death_total += amount; break; case EStat.DEATH_DAILY: ArticyGlobalVariables.Default.day.death_count += amount; if (ArticyGlobalVariables.Default.day.death_count >= DesktopManager.instance.GetProfileCountForCurrentDay()) { ArticyGlobalVariables.Default.day.death_count = -1; //all } break; case EStat.MAX: break; case EStat.ECOLOGY: ArticyGlobalVariables.Default.rep.ecology += amount; break; case EStat.ECOLOGY_DAILY: ArticyGlobalVariables.Default.day.ecology_change += amount; break; case EStat.HEALTH: ArticyGlobalVariables.Default.rep.health += amount; break; case EStat.HEALTH_DAILY: ArticyGlobalVariables.Default.day.health_change += amount; break; case EStat.PROSPERITY: ArticyGlobalVariables.Default.rep.prosperity += amount; break; case EStat.PROSPERITY_DAILY: ArticyGlobalVariables.Default.day.prosperity_change += amount; break; case EStat.PEACE: ArticyGlobalVariables.Default.rep.peace += amount; break; case EStat.PEACE_DAILY: ArticyGlobalVariables.Default.day.peace_change += amount; break; case EStat.SPARE_TOTAL: ArticyGlobalVariables.Default.rep.spare_total += amount; break; case EStat.SPARE_DAILY: ArticyGlobalVariables.Default.day.spare_count += amount; if (ArticyGlobalVariables.Default.day.spare_count >= DesktopManager.instance.GetProfileCountForCurrentDay()) { ArticyGlobalVariables.Default.day.spare_count = -1; //all } break; } Debug.Log("Modified stat " + stat.ToString() + " by " + amount.ToString() + " from " + (GetStat(stat) - amount).ToString() + " to " + GetStat(stat).ToString()); } SaveManager.instance.MarkSavegameDirty(); }