Exemplo n.º 1
0
        void update_statblock()
        {
            int   level = (fCreature != null) ? fCreature.Level : 0;
            IRole role  = (fCreature != null) ? fCreature.Role : null;

            List <string> lines = HTML.GetHead(null, null, Session.Preferences.TextSize);

            lines.Add("<BODY>");

            lines.Add("<TABLE class=clear>");
            lines.Add("<TR class=clear>");
            lines.Add("<TD class=clear>");

            lines.Add("<P class=table>");
            lines.Add("<TABLE>");
            lines.AddRange(fPower.AsHTML(null, CardMode.Build, fFromFunctionalTemplate));
            lines.Add("</TABLE>");
            lines.Add("</P>");

            lines.Add("</TD>");
            lines.Add("<TD class=clear>");

            lines.Add("<P class=table>");
            lines.Add("<TABLE>");

            lines.Add("<TR class=heading>");
            lines.Add("<TD colspan=2><B>Power Advice</B></TD>");
            lines.Add("</TR>");

            lines.Add("<TR class=shaded>");
            lines.Add("<TD colspan=2><B>Attack Bonus</B></TD>");
            lines.Add("</TR>");

            lines.Add("<TR>");
            lines.Add("<TD>Attack vs Armour Class</TD>");
            lines.Add("<TD align=center>+" + Statistics.AttackBonus(DefenceType.AC, level, role) + "</TD>");
            lines.Add("</TR>");

            lines.Add("<TR>");
            lines.Add("<TD>Attack vs Other Defence</TD>");
            lines.Add("<TD align=center>+" + Statistics.AttackBonus(DefenceType.Fortitude, level, role) + "</TD>");
            lines.Add("</TR>");

            if (role != null)
            {
                lines.Add("<TR class=shaded>");
                lines.Add("<TD colspan=2><B>Damage</B></TD>");
                lines.Add("</TR>");

                if (role is Minion)
                {
                    lines.Add("<TR>");
                    lines.Add("<TD>Minion Damage</TD>");
                    lines.Add("<TD align=center>" + Statistics.Damage(level, DamageExpressionType.Minion) + "</TD>");
                    lines.Add("</TR>");
                }
                else
                {
                    lines.Add("<TR>");
                    lines.Add("<TD>Damage vs Single Targets</TD>");
                    lines.Add("<TD align=center>" + Statistics.Damage(level, DamageExpressionType.Normal) + "</TD>");
                    lines.Add("</TR>");

                    lines.Add("<TR>");
                    lines.Add("<TD>Damage vs Multiple Targets</TD>");
                    lines.Add("<TD align=center>" + Statistics.Damage(level, DamageExpressionType.Multiple) + "</TD>");
                    lines.Add("</TR>");
                }

                if (fExamples.Count != 0)
                {
                    lines.Add("<TR class=shaded>");
                    lines.Add("<TD><B>Example Power Details</B></TD>");
                    lines.Add("<TD align=center><A href=details:refresh>(refresh)</A></TD>");
                    lines.Add("</TR>");

                    foreach (string example in fExamples)
                    {
                        int index = fExamples.IndexOf(example);

                        lines.Add("<TR>");
                        lines.Add("<TD colspan=2>" + example + " <A href=details:" + index + ">(use this)</A></TD>");
                        lines.Add("</TR>");
                    }
                }
            }

            lines.Add("</TABLE>");
            lines.Add("</P>");

            lines.Add("</TD>");
            lines.Add("</TR>");
            lines.Add("</TABLE>");

            lines.Add("</BODY>");
            lines.Add("</HTML>");

            StatBlockBrowser.DocumentText = HTML.Concatenate(lines);
        }
Exemplo n.º 2
0
        void update_power()
        {
            List <string> lines = new List <string>();

            lines.AddRange(HTML.GetHead(fPower.Name, "", Session.Preferences.TextSize));

            lines.Add("<BODY>");

            lines.Add("<P class=table>");
            lines.Add("<TABLE>");
            lines.AddRange(fPower.AsHTML(null, CardMode.View, false));
            lines.Add("</TABLE>");
            lines.Add("</P>");

            lines.Add("<P class=instruction align=left>");
            lines.Add("Click to add an attack roll for:");
            string heroes = "";

            foreach (Hero hero in Session.Project.Heroes)
            {
                CombatData cd = hero.CombatData;

                if ((!roll_exists(hero.ID)) && (hero.GetState(cd.Damage) != CreatureState.Defeated))
                {
                    if (heroes != "")
                    {
                        heroes += " | ";
                    }

                    heroes += "<A href=hero:" + hero.ID + ">" + hero.Name + "</A>";
                }
            }
            if (heroes != "")
            {
                lines.Add("<BR>");
                lines.Add(heroes);
            }
            string creatures = "";

            foreach (EncounterSlot slot in fEncounter.Slots)
            {
                foreach (CombatData cd in slot.CombatData)
                {
                    if ((!roll_exists(cd.ID)) && (slot.GetState(cd) != CreatureState.Defeated))
                    {
                        if (creatures != "")
                        {
                            creatures += " | ";
                        }

                        creatures += "<A href=opponent:" + cd.ID + ">" + cd.DisplayName + "</A>";
                    }
                }
            }
            if (creatures != "")
            {
                lines.Add("<BR>");
                lines.Add(creatures);
            }
            lines.Add("<BR>");
            lines.Add("<A href=target:blank>An unnamed target</A>");
            lines.Add("</P>");

            lines.Add("</BODY>");
            lines.Add("</HTML>");

            PowerBrowser.DocumentText = HTML.Concatenate(lines);
        }