コード例 #1
0
ファイル: MainUI.cs プロジェクト: mindcloud69/CombatManager
        public static void LoadCombatState()
        {
            try
            {
                CombatState state = XmlLoader <CombatState> .Load("CombatState.xml", true);

                if (state != null)
                {
                    _CombatState.Copy(state);
                    _CombatState.SortCombatList(false, false, true);

                    _CombatState.FixInitiativeLinksList(new List <Character>(_CombatState.Characters));
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Failure loading combat state: " + ex.ToString());
            }

            if (_CombatState == null)
            {
                _CombatState = new CombatState();
            }
            _CombatState.CharacterAdded   += Handle_CombatStateCharacterAdded;
            _CombatState.CharacterRemoved += Handle_CombatStateCharacterRemoved;
        }
コード例 #2
0
        void HandleSortButtonTouchUpInside(object sender, EventArgs e)
        {
            ObservableCollection <Character> oldList = new ObservableCollection <Character>(CombatState.CombatList);

            CombatState.SortCombatList(true, true);
            ReloadList(oldList);
            MainUI.SaveCombatState();
        }
コード例 #3
0
 public async Task <bool> CombatRollInit()
 {
     return(await TakeAction((res) =>
     {
         state.RollInitiative();
         state.SortCombatList();
         saveCallback();
         res.Data = state.ToRemote();
     }
                             ));
 }
コード例 #4
0
        private void LoadCombatState()
        {
            CombatState state = XmlLoader <CombatState> .Load("CombatState.xml", true);

            if (state == null)
            {
                _CombatState = new CombatState();
            }
            else
            {
                _CombatState = state;
            }
            _CombatState.SortCombatList(false, false, true);
            _CombatState.FixInitiativeLinksList(new List <Character>(_CombatState.Characters));

            ISharedPreferences sp = Activity.GetSharedPreferences("CombatManager", 0);

            CombatState.use3d6 = sp.GetBoolean("use3d6", false);
        }
コード例 #5
0
        public static CharacterActionResult TakeAction(CombatState state, CharacterActionType action, Character primaryChar, List <Character> allChars, object param)
        {
            CharacterActionResult res = CharacterActionResult.None;

            switch (action)
            {
            case CharacterActionType.MakeIdle:
                foreach (Character ch in allChars)
                {
                    ch.IsIdle = true;
                }
                state.FilterList();
                break;

            case CharacterActionType.RemoveIdle:
                foreach (Character ch in allChars)
                {
                    ch.IsIdle = false;
                }
                state.FilterList();
                break;

            case CharacterActionType.Clone:
                foreach (Character ch in allChars)
                {
                    state.CloneCharacter(ch);
                }
                break;

            case CharacterActionType.Delete:
                foreach (Character ch in allChars)
                {
                    state.RemoveCharacter(ch);
                }
                break;

            case CharacterActionType.MoveToMonsters:
                foreach (Character ch in allChars)
                {
                    if (!ch.IsMonster)
                    {
                        state.RemoveCharacter(ch);
                        ch.IsMonster = true;
                        state.AddCharacter(ch);
                    }
                }
                state.FilterList();
                break;

            case CharacterActionType.MoveToParty:
                foreach (Character ch in allChars)
                {
                    if (ch.IsMonster)
                    {
                        state.RemoveCharacter(ch);
                        ch.IsMonster = false;
                        state.AddCharacter(ch);
                    }
                }
                state.FilterList();
                break;

            case CharacterActionType.MoveUpInitiative:
                state.MoveUpCharacter(primaryChar);
                break;

            case CharacterActionType.MoveDownInitiative:
                state.MoveDownCharacter(primaryChar);
                break;

            case CharacterActionType.MoveAfterInitiative:
                state.MoveCharacterAfter(primaryChar, (Character)param);
                break;

            case CharacterActionType.MoveBeforeInitiative:
                state.MoveCharacterBefore(primaryChar, (Character)param);
                break;

            case CharacterActionType.RollInitiative:
                state.RollIndividualInitiative(primaryChar);
                state.SortCombatList(false, false);
                break;

            case CharacterActionType.Ready:
                primaryChar.IsReadying = !primaryChar.IsReadying;
                if (primaryChar.IsReadying && primaryChar.IsDelaying)
                {
                    primaryChar.IsDelaying = false;
                }
                break;

            case CharacterActionType.Delay:
                primaryChar.IsDelaying = !primaryChar.IsDelaying;
                if (primaryChar.IsReadying && primaryChar.IsDelaying)
                {
                    primaryChar.IsReadying = false;
                }
                break;

            case CharacterActionType.ActNow:
                if (primaryChar.IsIdle)
                {
                    primaryChar.IsIdle = false;
                }
                state.CharacterActNow(primaryChar);
                break;

            case CharacterActionType.LinkInitiative:
                Character targetChar = (Character)param;
                if (primaryChar != targetChar && targetChar.InitiativeLeader == null)
                {
                    state.LinkInitiative(primaryChar, (Character)param);
                }
                break;

            case CharacterActionType.UnlinkInitiative:
                state.UnlinkLeader(primaryChar);
                break;

            case CharacterActionType.AddConditon:
                if (param != null)
                {
                    Condition c = (Condition)param;
                    foreach (Character ch in allChars)
                    {
                        ActiveCondition a = new ActiveCondition();
                        a.Condition = c;
                        ch.Stats.AddCondition(a);
                        Condition.PushRecentCondition(a.Condition);
                    }
                }
                else
                {
                    res = CharacterActionResult.NeedConditionDialog;
                }
                break;

            case CharacterActionType.EditNotes:
                res = CharacterActionResult.NeedNotesDialog;
                break;

            case CharacterActionType.EditMonster:
                res = CharacterActionResult.NeedMonsterEditorDialog;
                break;

            case CharacterActionType.RollAttack:
                res = CharacterActionResult.RollAttack;
                break;

            case CharacterActionType.RollAttackSet:
                res = CharacterActionResult.RollAttackSet;
                break;

            case CharacterActionType.RollSave:
                res = CharacterActionResult.RollSave;
                break;

            case CharacterActionType.RollSkill:
                res = CharacterActionResult.RollSkill;
                break;
            }
            return(res);
        }