using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Zorkr.BLObs
{
class Character
{
public string twitterId { get; private set; }
public string initialStats { get; private set; }
public string levelTimeline { get; private set; }
public Character(string TwitterID, string InitialStats, string LevelTimeline)
{
this.twitterId = TwitterID;
this.initialStats = InitialStats;
this.levelTimeline = LevelTimeline;
}
public uint level { get; private set; }
public jobs job { get; private set; }
public specs specialty { get; private set; }
public uint base_ability_Str { get; private set; }
public uint base_ability_Con { get; private set; }
public uint base_ability_Dex { get; private set; }
public uint base_ability_Int { get; private set; }
public uint base_ability_Wis { get; private set; }
public uint base_ability_Cha { get; private set; }
public uint base_skill_Stealth { get; private set; }
public uint base_skill_Forging { get; private set; }
public uint base_skill_Perception { get; private set; }
public uint base_skill_Diplomacy { get; private set; }
public buffs Buff { get; private set; }
public debuffs DeBuff { get; private set; }
}
public class PlayerCharacter : Character
{
public uint current_Hp { get; set; }
public uint max_Hp { get; }
public uint defense_Armor { get; }
public uint defense_Reflex { get; }
public uint defense_Will { get; }
public uint actual_ability_Str { get; }
public uint actual_ability_Con { get; }
public uint actual_ability_Dex { get; }
public uint actual_ability_Int { get; }
public uint actual_ability_Wis { get; }
public uint actual_ability_Cha { get; }
public uint actual_skill_Stealth { get; } // Dex-dependent
public uint actual_skill_Forging { get; } // Int-dependent
public uint actual_skill_Perception { get; } // Wis-dependent
public uint actual_skill_Diplomacy { get; } // Cha-dependent
}
public class EnemyCharacter : Character
{
public uint current_Hp { get; set; }
public uint max_Hp { get; }
public uint defense_Armor { get; }
public uint defense_Reflex { get; }
public uint defense_Will { get; }
public uint actual_ability_Str { get; }
public uint actual_ability_Con { get; }
public uint actual_ability_Dex { get; }
public uint actual_ability_Int { get; }
public uint actual_ability_Wis { get; }
public uint actual_ability_Cha { get; }
public uint actual_skill_Stealth { get; } // Dex-dependent
public uint actual_skill_Forging { get; } // Int-dependent
public uint actual_skill_Perception { get; } // Wis-dependent
public uint actual_skill_Diplomacy { get; } // Cha-dependent
}
public enum abilities // Max ability score is 9
{
Strength = 0,
Constitution = 1,
Dexterity = 2,
Intelligence = 3,
Wisdom = 4,
Charisma = 5
}
public enum skills // Max skill score is 5
{
Stealth = 6,
Perception = 7,
Forging = 8,
Diplomacy = 9
}
public enum jobs
{
Guardian = 1, //Defender, Skill: Taunt (d+Dpl+Cha vs d+Wil, Target's next Attack targets guardian if Hit!)
Healer = 2, //Leader, Skill: Heal (Wis HP restored to target)
Mage = 3, //Controller, Skill: Cascade (Auto hit all enemies, Damage = level/10, Element of Weapon)
Cutthroat = 4 //Striker, Skill: Backstab (d+Stl+Dex vs d+Ref, Double Damage if Hit!, Free Attack vs Player if Fail)
}
public enum specs // A player can choose only specs with his job role (7 available specs per role)
{
Templar = 11, //Defender-Defender, Skill: Cover (Next damage to target hits templar)
Paladin = 12, //Defender-Leader, Skill: Empathy (1/2 Wis HP restored to self and target)
Gladiator = 13, //Defender-Controller, Skill: Whirlwind (Auto hit all enemies, Damage = level/5, Force Element)
Reaver = 14, //Defender-Striker, Skill: Counter (When enemy misses, Auto hit)
Bard = 21, //Leader-Defender, Skill: Inspire (+Wis to All Def next turn)
Phoenix = 22, //Leader-Leader, Skill: Revive
Shaman = 23, //Leader-Controller, Skill: Sacrifice (1/2 Wis HP restored to allies)
Warlord = 24, // Leader-Striker, Skill: Warcry (+Wis to All Attack next turn)
AntiMage = 31, // Controller-Defender, Skill: Cancel (d+Dpl+Cha vs d+Wil, Target makes No Action if Hit!)
Elementalist = 32, // Controller-Leader, Skill: Channel (All allies' damage gains Element of Weapon)
ArchMage = 33, // Controller-Controller, Skill: Storm (d+Int vs d+Arm, All enemies Int Damage , Element of Weapon)
Unknown34 = 34, // Controller-Striker, Skill: ???
Unknown41 = 41, // Striker-Defender, Skill: ???
Inquisitor = 42, // Striker-Leader, Skill: BlindingLight (All Stealth attempts by enemies this turn automatically fail)
Unknown43 = 43, // Striker-Controller, Skill: ???
Assassin = 44 // Striker-Striker, Skill: Assassinate (d+Stl+Dex vs d+Ref, Double Damage if Hit!, 1/2 Dex Damage if Fail)
}
public enum buffs // All buffs automatically expire after the current round
{
Inspire0 = 210,
Inspire1 = 211,
Inspire2 = 212,
Inspire3 = 213,
Inspire4 = 214,
Inspire5 = 215,
Inspire6 = 216,
Inspire7 = 217,
Inspire8 = 218,
Inspire9 = 219,
Warcry0 = 240,
Warcry1 = 241,
Warcry2 = 242,
Warcry3 = 243,
Warcry4 = 244,
Warcry5 = 245,
Warcry6 = 246,
Warcry7 = 247,
Warcry8 = 248,
Warcry9 = 249,
ChannelForce = 320, // Weak against Mind, Immune against Force (Default Damage eg. 'Nonelemental'; Ghosts are Force-typed Enemies)
ChannelFire = 321, // Weak against Water, Immune against Wind
ChannelWind = 322, // Weak against Fire, Immune against Earth
ChannelEarth = 323, // Weak against Earth, Immune against Water
ChannelWater = 324, // Weak against Earth, Immune against Fire
ChannelHoly = 325, // Weak against Dark, Immune against Holy
ChannelDark = 326, // Weak against Holy, Immune against Dark
ChannelMind = 327 // Weak against Force, Immune against Mind
}
public enum debuffs // All debuffs automatically expire after the current round
{
Cancel = 310,
BlindingLight = 420
}
}