Exemplo n.º 1
0
        void init(OngoingCondition condition, CombatData current_actor, int current_round)
        {
            fHeights[ConditionBtn] = ConditionPanel.Height;
            fHeights[DamageBtn]    = DamagePanel.Height;
            fHeights[DefenceBtn]   = DefencePanel.Height;
            fHeights[DamageModBtn] = DamageModPanel.Height;
            fHeights[RegenBtn]     = RegenPanel.Height;
            fHeights[AuraBtn]      = AuraPanel.Height;

            fCondition    = condition.Copy();
            fCurrentActor = current_actor;
            fCurrentRound = current_round;

            ConditionBtn.Checked = (fCondition.Type == OngoingType.Condition);
            ConditionBox.Text    = (fCondition.Data != "") ? fCondition.Data : BLANK_EFFECT;

            DamageBtn.Checked          = (fCondition.Type == OngoingType.Damage);
            DamageBox.Value            = fCondition.Value;
            DamageTypeBox.SelectedItem = fCondition.DamageType;

            DefenceBtn.Checked  = (fCondition.Type == OngoingType.DefenceModifier);
            DefenceModBox.Value = fCondition.DefenceMod;
            if (fCondition.Defences.Count == 0)
            {
                fCondition.Defences.Add(DefenceType.AC);
            }
            ACBox.Checked   = fCondition.Defences.Contains(DefenceType.AC);
            FortBox.Checked = fCondition.Defences.Contains(DefenceType.Fortitude);
            RefBox.Checked  = fCondition.Defences.Contains(DefenceType.Reflex);
            WillBox.Checked = fCondition.Defences.Contains(DefenceType.Will);

            if (fCondition.DamageModifier.Value < 0)
            {
                DamageModDirBox.SelectedItem = RESIST;
            }
            if (fCondition.DamageModifier.Value > 0)
            {
                DamageModDirBox.SelectedItem = VULNERABLE;
            }
            if (fCondition.DamageModifier.Value == 0)
            {
                DamageModDirBox.SelectedItem = IMMUNE;
            }
            DamageModValueBox.Value       = Math.Abs(fCondition.DamageModifier.Value);
            DamageModTypeBox.SelectedItem = fCondition.DamageModifier.Type;

            RegenValueBox.Value     = fCondition.Regeneration.Value;
            RegenConditionsBox.Text = fCondition.Regeneration.Details;

            AuraRadiusBox.Value = fCondition.Aura.Radius;
            AuraDetailsBox.Text = fCondition.Aura.Description;

            switch (fCondition.Duration)
            {
            case DurationType.Encounter:
                DurationBox.SelectedItem = ENCOUNTER;
                break;

            case DurationType.SaveEnds:
                DurationBox.SelectedItem = SAVE_ENDS;
                ModBox.Value             = fCondition.SavingThrowModifier;
                break;

            case DurationType.BeginningOfTurn:
                DurationBox.SelectedItem = START;
                break;

            case DurationType.EndOfTurn:
                DurationBox.SelectedItem = END;
                break;
            }

            if (fCondition.DurationCreatureID != Guid.Empty)
            {
                DurationCreatureBox.SelectedItem = get_item(fCondition.DurationCreatureID);
            }
            else
            {
                if (fCurrentActor != null)
                {
                    DurationCreatureBox.SelectedItem = get_item(fCurrentActor.ID);
                }
                else
                {
                    DurationCreatureBox.SelectedItem = DurationCreatureBox.Items[0];
                }
            }
        }