void HandleConditionMenuItemClicked(object sender, ButtonStringPopover.PopoverEventArgs e) { ButtonStringPopover p = (ButtonStringPopover)sender; ActiveCondition ac = (ActiveCondition)p.Data; if (e.Tag is int) { int turns = (int)e.Tag; if (turns > 0) { _CombatState.AddConditionTurns(_Character, ac, turns); } else { _CombatState.RemoveConditionTurns(_Character, ac, -turns); } } else if (e.Tag is string) { string text = (string)e.Tag; if (text == "delete") { _Character.Monster.RemoveCondition(ac); } else if (text == "deleteall") { foreach (Character ch in _CombatState.Characters) { ch.RemoveConditionByName(ac.Condition.Name); } } } }
protected virtual void SetActiveConditionIfNull() { if (activeCondition == null) { activeCondition = DefaultCondition; } }
private void BuildConditionMenu(ButtonStringPopover p, ActiveCondition c) { p.Data = c; p.Items.Add(new ButtonStringPopoverItem() { Text = "Add 5 Turns", Icon = "arrowsup", Tag = 5 }); p.Items.Add(new ButtonStringPopoverItem() { Text = "Add Turn", Icon = "arrowup", Tag = 1 }); p.Items.Add(new ButtonStringPopoverItem() { Text = "Remove Turn", Icon = "arrowdown", Tag = -1 }); p.Items.Add(new ButtonStringPopoverItem() { Text = "Remove 5 Turns", Icon = "arrowsdown", Tag = -5 }); p.Items.Add(new ButtonStringPopoverItem()); p.Items.Add(new ButtonStringPopoverItem() { Text = "Delete", Icon = "delete", Tag = "delete" }); p.Items.Add(new ButtonStringPopoverItem() { Text = "Delete From All Characters", Tag = "deleteall" }); p.ItemClicked += HandleConditionMenuItemClicked; }
void ConditionApplied(object sender, ConditionViewEventArgs args) { Condition c = args.Condition; ActiveCondition a = new ActiveCondition(); a.Condition = c; _Character.Stats.AddCondition(a); Condition.PushRecentCondition(a.Condition); }
public void ApplyNewCondition(Condition NewCondition, Character SourceCharacter, ItemSkill SourceItemSkill, float Duration) { // If the maximum Instances of this Condition is reached, one is removed and the new one applied: if (CheckIfConditionExists(NewCondition) >= NewCondition.GetInstanceMaximum()) { RemoveCondition(NewCondition); } ActiveCondition NewActiveCondition = new ActiveCondition(this, SourceCharacter, SourceItemSkill, NewCondition, Duration); ActiveConditions.Add(NewActiveCondition); }
public static RemoteActiveCondition ToRemote(this ActiveCondition activeCondition) { if (activeCondition == null) { return(null); } RemoteActiveCondition remoteActiveCondition = new RemoteActiveCondition(); remoteActiveCondition.Conditon = activeCondition.Condition.ToRemote(); remoteActiveCondition.Details = activeCondition.Details; remoteActiveCondition.InitiativeCount = activeCondition.InitiativeCount.ToRemote(); remoteActiveCondition.Turns = activeCondition.Turns; return(remoteActiveCondition); }
public void RemoveCondition(Condition ConditionToRemove) { ActiveCondition ActCondToRemove = null; for (int i = 0; i < ActiveConditions.Count; i++) { if (ActiveConditions[i].RepresentsThisCondition(ConditionToRemove)) { ActCondToRemove = ActiveConditions[i]; } } if (ActCondToRemove != null) { ActCondToRemove.RemoveThisCondition(); ActiveConditions.Remove(ActCondToRemove); } }
public async Task <bool> AddCondition() { return(await TakeCharacterPostAction <AddConditionRequest>((res, data, ch) => { Condition c = Condition.ByName(data.Name); if (c == null) { res.Failed = true; return; } ActiveCondition ac = new ActiveCondition(); ac.Condition = c; ac.InitiativeCount = state.CurrentInitiativeCount; ac.Turns = data.Turns; ch.Monster.AddCondition(ac); saveCallback(); res.Data = ch.ToRemote(); })); }
public ConditionButtonChangedHandler(View view, View b, Character character, ActiveCondition ac, CharacterListAdapter adp, ViewGroup parent) { _View = view; _Character = character; _Button = b; _Adp = adp; _Parent = parent; _ActiveCondition = ac; _ActiveCondition.PropertyChanged += HandlePropertyChanged; _View.ViewDetachedFromWindow += (object sender, View.ViewDetachedFromWindowEventArgs e) => { _ActiveCondition.PropertyChanged -= HandlePropertyChanged; _Adp._ButtonHandlers.Remove(this); }; b.ViewDetachedFromWindow += (object sender, View.ViewDetachedFromWindowEventArgs e) => { _ActiveCondition.PropertyChanged -= HandlePropertyChanged; _Adp._ButtonHandlers.Remove(this); }; }
public StaticAbility(ActiveCondition activeCondition, params Modification[] mods) { this.activeCondition = activeCondition; modifications.AddRange(mods); SetActiveConditionIfNull(); }
public ConditionDialog(Context context, CombatState state, Character character) : base(context) { RequestWindowFeature((int)WindowFeatures.NoTitle); SetContentView(Resource.Layout.ConditionDialog); SetCanceledOnTouchOutside(true); _State = state; _Character = character; deleteButton = FindViewById <Button>(Resource.Id.deleteButton); Button close = (Button)FindViewById(Resource.Id.cancelButton); close.Click += delegate { Dismiss(); }; Button okButton = (Button)FindViewById(Resource.Id.okButton); okButton.Click += delegate { if (SelectedCondition != null) { ActiveCondition ac = new ActiveCondition(); ac.Condition = SelectedCondition; ac.InitiativeCount = _State.CurrentInitiativeCount; _Character.Monster.ActiveConditions.Add(ac); Condition.PushRecentCondition(ac.Condition); Dismiss(); } }; Button b; b = FindViewById <Button>(Resource.Id.conditionsButton); b.Click += delegate { SetSelectedTab(0); }; b = FindViewById <Button>(Resource.Id.spellsButton); b.Click += delegate { SetSelectedTab(1); }; b = FindViewById <Button>(Resource.Id.afflictionsButton); b.Click += delegate { if (!Condition.MonsterConditionsLoaded) { Condition.LoadMonsterConditions(); } SetSelectedTab(2); }; EditText et = FindViewById <EditText>(Resource.Id.filterText); et.TextChanged += (object sender, Android.Text.TextChangedEventArgs e) => { RefreshList(); }; ListView lv = FindViewById <ListView>(Resource.Id.itemList); lv.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => { e.View.Selected = true; _SelectedIndex = e.Position; _Adapter.NotifyDataSetChanged(); ShowSelection(); }; deleteButton.Click += (sender, e) => { DeleteSelectedItem(); }; PrepareList(); }