public void IterateEndTurn() { List <Faction> facList = FactionManager.GetFactionList(); for (int i = 0; i < facList.Count; i++) { Faction fac = facList[i]; for (int n = 0; n < fac.abilityInfo.abilityList.Count; n++) { fac.abilityInfo.abilityList[n].currentCD.Iterate(); } for (int n = 0; n < fac.allUnitList.Count; n++) { Unit unit = fac.allUnitList[n]; for (int m = 0; m < unit.abilityList.Count; m++) { unit.abilityList[m].currentCD.Iterate(); } } } EffectTracker.IterateEffectDuration(); }
public void IterateEffectDuration() { bool changed = false; for (int i = 0; i < effectList.Count; i++) { effectList[i].Iterate(); if (effectList[i].Due()) { effectList.RemoveAt(i); i -= 1; changed = true; } } if (changed) { if (effectList.Count > 0) { UpdateActiveEffect(); } else { activeEffect = new Effect(); EffectTracker.Untrack(this); } } }
public void ApplyEffect(Effect eff) { if (eff.duration <= 0) { return; } eff.Init(); effectList.Add(eff); UpdateActiveEffect(); EffectTracker.Track(this); }
//called by EffectTracker public void IterateForcedVisibleDuration() { forcedVisibleDuration.Iterate(); if (forcedVisibleDuration.Due()) { SetVisible(FogOfWar.CheckTileVisibility(this)); EffectTracker.UntrackVisible(this); } //~ forcedVisible.Iterate(); //~ if(forcedVisible.duration<=0){ //~ SetVisible(FogOfWar.CheckTileVisibility(this)); //~ if(fogOfWarObj!=null) fogOfWarObj.SetActive(!visible); //~ //GameControl.onIterateTurnE -= IterateForcedVisible; //~ } }
//public DurationCounter forcedVisible=new DurationCounter(); public void ForceVisible(int dur = 1) { if (!GameControl.EnableFogOfWar()) { return; } SetVisible(true); //if(fogOfWarObj!=null) fogOfWarObj.SetActive(!visible); if (forcedVisibleDuration.duration < dur) { forcedVisibleDuration.Set(dur); EffectTracker.TrackVisible(this); } //forcedVisible.Count(dur); //GameControl.onIterateTurnE += IterateForcedVisible; }
void Awake() { instance = this; }