void AddRoundStatus <T>(Unit target, int num) where T : StatusEffect { Status s = target.GetComponent <Status>(); DurationStatusCondition d = s.Add <T, DurationStatusCondition>(); d.duration = num; }
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); }
void Add <T> (Unit target, int duration) where T : StatusEffect { DurationStatusCondition condition = target.GetComponent <Status>().Add <T, DurationStatusCondition>(); condition.duration = duration; }