Ejemplo n.º 1
0
    void AddRoundStatus <T>(Unit target, int num) where T : StatusEffect
    {
        Status s = target.GetComponent <Status>();
        DurationStatusCondition d = s.Add <T, DurationStatusCondition>();

        d.duration = num;
    }
Ejemplo n.º 2
0
 void PrepareDurationIndicator(StatusIndicatorEntry entry, DurationStatusCondition dur)
 {
     if (dur != null)
     {
         entry.Counter.SetActive(true);
         entry.Duration = dur.duration.ToString();
     }
     else
     {
         entry.Counter.SetActive(false);
     }
 }
    protected override int OnApply(Tile target)
    {
        Type statusType = Type.GetType(statusName);

        if (statusType == null || !statusType.IsSubclassOf(typeof(StatusEffect)))
        {
            Debug.LogError("Invalid Status Type");
            return(0);
        }

        MethodInfo mi = typeof(Status).GetMethod("Add");

        Type[]     types       = new Type[] { statusType, typeof(DurationStatusCondition) };
        MethodInfo constructed = mi.MakeGenericMethod(types);

        Status status   = target.content.GetComponent <Status>();
        object retValue = constructed.Invoke(status, null);

        DurationStatusCondition condition = retValue as DurationStatusCondition;

        condition.duration = duration;
        return(0);
    }
Ejemplo n.º 4
0
    void Add <T> (Unit target, int duration) where T : StatusEffect
    {
        DurationStatusCondition condition = target.GetComponent <Status>().Add <T, DurationStatusCondition>();

        condition.duration = duration;
    }