Esempio n. 1
0
    void Start()
    {
        stats = new RPGDefaultStats();

        var statTypes = Enum.GetValues(typeof(RPGStatType));

        foreach (var statType in statTypes)
        {
            RPGStat stat = stats.GetStat((RPGStatType)statType);
            if (stat != null)
            {
                Debug.Log(string.Format("Stat {0}'s value is {1}",
                                        stat.StatName, stat.StatValue));
            }
        }

        var health = stats.GetStat <RPGStatModifiable>(RPGStatType.Health);

        health.AddModifier(new RPGStatModBasePercent(1.0f));      // 200
        health.AddModifier(new RPGStatModBaseAdd(50f));           // 250
        health.AddModifier(new RPGStatModTotalPercent(1.0f));     // 500
        health.UpdateModifiers();

        foreach (var statType in statTypes)
        {
            RPGStat stat = stats.GetStat((RPGStatType)statType);
            if (stat != null)
            {
                Debug.Log(string.Format("Stat {0}'s value is {1}",
                                        stat.StatName, stat.StatValue));
            }
        }
    }
    /// <summary>
    /// Basic Constructor. Listens to the Stat's OnValueChange
    /// event if the stat implements IStatValueChange.
    /// </summary>
    public RPGStatLinker(RPGStat stat) {
        LinkedStat = stat;

        IStatValueChange iValueChange = LinkedStat as IStatValueChange;
        if (iValueChange != null) {
            iValueChange.OnValueChange += OnLinkedStatValueChange;
        }
    }
 public RPGStatLinker(RPGStat stat)
 {
     _stat = stat;
     IStatValueChange valueChange = stat as IStatValueChange;
     if (valueChange != null) {
         valueChange.OnValueChange += OnStatValueChange;
     }
 }
Esempio n. 4
0
 void DisplayStatValues()
 {
     ForEachEnum <RPGStatType>((statType) => {
         RPGStat stat = stats.GetStat((RPGStatType)statType);
         if (stat != null)
         {
             Debug.Log(string.Format("Stat {0}'s value is {1}", stat.StatName, stat.StatValue));
         }
     });
 }
Esempio n. 5
0
    public RPGStatLinker(RPGStat stat)
    {
        _stat = stat;
        IStatValueChange valueChange = stat as IStatValueChange;

        if (valueChange != null)
        {
            valueChange.OnValueChange += OnStatValueChange;
        }
    }
Esempio n. 6
0
    /// <summary>
    /// Basic Constructor. Listens to the Stat's OnValueChange
    /// event if the stat implements IStatValueChange.
    /// </summary>
    public RPGStatLinker(RPGStat stat)
    {
        LinkedStat = stat;

        IStatValueChange iValueChange = LinkedStat as IStatValueChange;

        if (iValueChange != null)
        {
            iValueChange.OnValueChange += OnLinkedStatValueChange;
        }
    }
Esempio n. 7
0
        public bool TryGetStatValue(RPGStatType statName, out int value)
        {
            RPGStat stat = null;

            value = 0;
            if (StatCollection.TryGetStat(statName, out stat))
            {
                value = stat.StatValue;
                return(true);
            }
            return(false);
        }
 void DisplayStatValues()
 {
     ForEachEnum <RPGStatType>((statType) => {
         RPGStat stat = stats.GetStat((RPGStatType)statType);
         if (stat != null)
         {
             RPGVital vital = stat as RPGVital;
             if (vital != null)
             {
                 Debug.Log(string.Format("Stat {0}'s value is {1}/{2}", stat.StatName, vital.StatCurrentValue, stat.StatValue));
             }
             else
             {
                 Debug.Log(string.Format("Stat {0}'s value is {1}", stat.StatName, stat.StatValue));
             }
         }
     });
 }
Esempio n. 9
0
    public void SetStat(StatTypeAsset asset, RPGStat stat)
    {
        if (this.stat != stat && this.stat != null)
        {
            this.stat.RemoveValueListener(OnStatValueChange);
        }

        this.stat  = stat;
        this.asset = asset;

        if (this.stat != null)
        {
            OnStatValueChange(this.stat);
            this.stat.AddValueListener(OnStatValueChange);
        }

        if (this.asset != null)
        {
            statIcon.sprite = asset.Icon;
            statName.text   = asset.Name;
        }
    }
Esempio n. 10
0
        public void ModifyStat(RPGStatType sourceStat, RPGStatType targetStat, float modifier, float flatValue, float baseValue)
        {
            float rawValue    = flatValue + modifier * baseValue;
            float bufferValue = 1.0f;

            if (sourceStat == RPGStatType.Power)
            {
                RPGStat stat = null;
                if (StatCollection.TryGetStat(RPGStatType.Defense, out stat))
                {
                    bufferValue = stat.StatValue;
                }
            }
            else if (sourceStat == RPGStatType.Mind)
            {
                RPGStat stat = null;
                if (StatCollection.TryGetStat(RPGStatType.Spirit, out stat))
                {
                    bufferValue = stat.StatValue;
                }
            }

            ModifyStat(targetStat, (int)((rawValue < 0) ? (-1) : (1) * rawValue * rawValue / bufferValue));
        }
Esempio n. 11
0
    void OnStatChange(object sender, EventArgs e)
    {
        RPGStat stat = sender as RPGStat;

        Debug.Log(string.Format("[RPGEntity.EntityStats] {0} value is {1}", stat.StatName, stat.StatValue));
    }
 /// <summary>
 /// Constructor that takes the linked stat and the ratio to use
 /// </summary>
 public RPGStatLinkerBasic(RPGStat stat, float ratio)
     : base(stat) {
     _ratio = ratio;
 }
 public static void AddRPGStat(this Player player, RPGStat statToAdd) => RPGStatManager.AllPlayerRPGStats.Add(statToAdd);
 public RPGStatLinkerBasic(RPGStat stat, float ratio)
     : base(stat)
 {
     _ratio = ratio;
 }