public void AddTimedEffect(ITimedEffect te, IEntity source) { int id = next_id++; effects_waiting_to_end[te.time_point].Add(id); sources.Add(id, source); effects.Add(id, te); }
/// <summary> /// Adds a single effect to the internal collection /// </summary> /// <param name="effect"></param> public void Add(ITimedEffect effect, int Level) { if (!Effects.ContainsKey(effect.GetTime(Level))) { Effects.Add(effect.GetTime(Level), new List <ITimedEffect>()); } Effects[effect.GetTime(Level)].Add(effect); }
public EditAbilityComponent(ITimedEffect effect) { InitializeComponent(); CurrentEffect = effect; AbilityEffectDefinition aed = AbilityEffectDefinition.GetDefinition(effect.EffectType); this.label1.Text = aed.FriendlyName; basetimevalue.Value = (decimal)CurrentEffect.BaseTime; basedurationvalue.Value = (decimal)CurrentEffect.BaseDuration; deltatimevalue.Value = (decimal)CurrentEffect.DeltaTime; deltadurationvalue.Value = (decimal)CurrentEffect.DeltaDuration; desclabel.Text = aed.Description; string[] values = effect.GetParamValues(); for (int i = 0; i < aed.parameters.Count; i++) { string name = aed.parameters[i].Item1; char ptype = aed.parameters[i].Item2; string[] bothvalues = values[i].Split(','); string basevalue = bothvalues[0]; string deltavalue = bothvalues.Length == 2?bothvalues[1]:""; int leftstart = 20; int topstart = 80; int topstride = 40; int leftinput = 200; int inputwidth = 64; Label l = new Label(); l.Text = name; l.AutoSize = true; l.Location = new Point(leftstart, topstart + topstride * i); this.Controls.Add(l); Control t1 = CraftInput(basevalue, ptype); t1.Width = inputwidth; t1.Height = 2; t1.Location = new Point(leftinput, topstart + topstride * i); this.Controls.Add(t1); this.Inputs.Add(t1); Control t2 = CraftInput(deltavalue, ptype); t2.Width = inputwidth; t2.Height = 2; t2.Location = new Point(leftinput + inputwidth, topstart + topstride * i); this.Controls.Add(t2); this.Inputs.Add(t2); } this.SuspendLayout(); //add controls here!! this.ResumeLayout(false); this.PerformLayout(); }
public void EndEffects(TimePoint time_point, Player player) { for (int i = effects_waiting_to_end[time_point].Count - 1; i >= 0; i--) { int id = effects_waiting_to_end[time_point][i]; ITimedEffect effect = effects[id]; if (sources[id].controller == player) { EndEffect(id); } } }
void WriteEffect(ITimedEffect effect) { writer.Write(effect.EffectType); writer.Write(effect.BaseTime); writer.Write(effect.DeltaTime); writer.Write(effect.BaseDuration); writer.Write(effect.DeltaDuration); writer.Write(effect.GetParamValues().Length); foreach (string s in effect.GetParamValues()) { writer.Write(s); } }
private void removeEffectToolStripMenuItem_Click(object sender, EventArgs e) { if (EffectList.SelectedItems.Count != 1) { return; } ListViewItem item = EffectList.SelectedItems[0]; ITimedEffect effect = (ITimedEffect)item.Tag; CurrentAbility.Effects.Remove(effect); EffectList.SelectedItems.Clear(); EffectList.Items.Remove(item); }
void EndEffect(int id) { ITimedEffect effect = effects[id]; if (targets.ContainsKey(id)) { effect.EndEffect(sources[id], targets[id]); targets.Remove(id); } else { effect.EndEffect(sources[id]); } effects_waiting_to_end[effect.time_point].Remove(id); sources.Remove(id); }
public ITimedEffect ReadEffect() { ITimedEffect result = EffectHelper.CreateEmpty(reader.ReadString()); result.BaseTime = reader.ReadSingle(); result.DeltaTime = reader.ReadSingle(); result.BaseDuration = reader.ReadSingle(); result.DeltaDuration = reader.ReadSingle(); int paramcount = reader.ReadInt32(); string[] eparams = new string[paramcount]; for (int i = 0; i < paramcount; i++) { eparams[i] = reader.ReadString(); } result.SetParamValues(eparams); return(result); }
public void TrackTimedEffect(ITimedEffect effect, IEntity source, IEntity target) { timed_effect_manager.AddTimedEffect(effect, source, target); }