public Merchant(Game game, Player player) { Player = player; MerchantItems = game.GetMerchantItems(); this.game = game; name = game.GetCharacterName() + "'s shop"; }
public MonsterManager(Game game) { Game = game; monsters = new List<MonsterData>(); monstersByAreaType = new Dictionary<AreaType, List<MonsterData>>(); dropsByMonsterId = new Dictionary<string, List<string>>(); }
public IEnumerable<FightStep> Execute(Game game, Character initiator, Character target) { Player player = initiator as Player; if (player == null) throw new ArgumentException("Only players can eat!"); player.EatItem(item); yield break; }
public Monster(Game game, MonsterManager.MonsterData monster) : base(game, monster.Name, monster.BaseImageName, game.Roll(monster.HitDice), monster.Initiative, monster.AttackModifier, monster.ArmorClass) { ChallengeRating = monster.ChallengeRating; MonsterId = monster.Identifier; actions = new List<IAction>(); actions.Add(new WeaponAttack(monster.WeaponStats, null)); }
public IEnumerable<FightStep> Execute(Game game, Character initiator, Character target) { if (game.GetRandom(100) <= 75) { UINotifier.Get().NotifyFlee(initiator); } yield break; }
public MapViewer(Game game) { InitializeComponent(); this.game = game; locations = new List<Location>(); baseMap = GenerateMap(); UpdateCurrentLocation(locations[0]); game.TravelTo(locations[0]); }
public StartWindow() { InitializeComponent(); playerPictureBox.Image = Image.FromFile("player.png"); ambitionComboBox.SelectedIndex = 0; Game = new Game(); foreach (ClassType clas in Enum.GetValues(typeof(ClassType))) { classDropDown.Items.Add(new Class(clas)); } classDropDown.SelectedIndex = 0; }
public Character(Game game, string name, string baseImageName, int hitPoints, int initiative, int attackModifier, int armorClass) { Name = name; BaseImageName = baseImageName; MaxHitPoints = hitPoints; HitPoints = MaxHitPoints; Game = game; Initiative = initiative; ArmorClass = armorClass; AttackModifier = attackModifier; ActiveEffects = new List<Effect>(); }
public IEnumerable<FightStep> Execute(Game game, Character initiator, Character target) { // Go through types that have actions and perform them all. if (Types.Contains(FeatType.NORMAL_DAMAGE)) { initiator.GetMainAttack().Execute(game, initiator, target); } // Apply any effect. if (EffectParams != null) { target.AddEffect(game.GetEffect(EffectParams)); } yield break; }
public Fight(Game game, Player player, Monster enemy) { Player = player; Enemy = enemy; this.game = game; }
public IEnumerable<FightStep> Execute(Game game, Character initiator, Character target) { bool crit = false; if (initiator.IsDead()) throw new InvalidOperationException("Dead characters cannot attack!"); int roll = game.Roll(DiceRoll.D20(0)); int damage = 0; crit = false; if (roll >= stats.CritRangeStart) { roll = game.Roll(DiceRoll.D20(0)); if (roll + initiator.AttackModifier > target.ArmorClass) { crit = true; for (int i = 0; i < stats.CritModifier; ++i) { damage += Math.Max(game.Roll(stats.Damage), 1); } } else { damage = Math.Max(game.Roll(stats.Damage), 1); } } else if (roll + initiator.AttackModifier > target.ArmorClass) { damage = Math.Max(game.Roll(stats.Damage), 1); } // else miss if (damage > 0 && initiator is Player) { (initiator as Player).GainProficiency(target as Monster, weapon); } target.UpdateHitPoints(-damage); yield return new AttackStep(initiator); yield return new DamageStep(target, -damage, crit, target.HitPoints); }
public FeatManager(Game game) { featsById = new Dictionary<string, FeatData>(); }
public ItemManager(Game game) { Game = game; itemDatas = new Dictionary<string, ItemData>(); }
public EffectManager(Game game) { effectsById = new Dictionary<string, EffectData>(); }
public Treasure(Game game, Player player) { Player = player; Loot = new Character(game, "Chest", "chest", 1, 0, 0, 0); LootItems = game.GetRandomLoot(); }
public List<Item> GetStartingGeer(Game game) { List<Item> items = new List<Item>(); switch (Type) { case ClassType.FIGHTER: items.Add(game.GetItemById("CLOTH_SHIRT")); items.Add(game.GetItemById("CLOTH_PANTS")); items.Add(game.GetItemById("SHORT_SWORD")); break; case ClassType.WIZARD: items.Add(game.GetItemById("ROBE")); items.Add(game.GetItemById("CLOTH_PANTS")); items.Add(game.GetItemById("BASIC_WAND")); break; case ClassType.ROGUE: items.Add(game.GetItemById("BLACK_SHIRT")); items.Add(game.GetItemById("BLACK_PANTS")); items.Add(game.GetItemById("DAGGER")); break; case ClassType.ARCHER: items.Add(game.GetItemById("CLOTH_SHIRT")); items.Add(game.GetItemById("CLOTH_PANTS")); items.Add(game.GetItemById("SHORT_BOW")); break; case ClassType.DRUID: items.Add(game.GetItemById("LINEN_SHIRT")); items.Add(game.GetItemById("CLOTH_PANTS")); items.Add(game.GetItemById("PLAIN_STAFF")); break; } return items; }