} // UpdateFull() updates creature's parameters and inventory public async Task <bool> UpdateCreature(Creature creature) { Creature target = _ctx.Creatures.Find(creature.Id); if (target == null) { return(false); } target.Name = creature.Name; target.Type = creature.Type; target.Level = creature.Level; target.Experience = creature.Experience; target.Strength = creature.Strength; target.Endurance = creature.Endurance; target.Willpower = creature.Willpower; target.Speed = creature.Speed; target.Agility = creature.Agility; await _ctx.SaveChangesAsync(); CalculateCreature.DerivedStatistics(creature, _ctx); return(true); } // UpdateCreature() updates only creature's parameters
} // UpdateCreature() updates only creature's parameters public async Task <bool> UpdateInventory(Creature creature) { Creature target = _ctx.Creatures.Find(creature.Id); if (target == null) { return(false); } if (creature.Weapon != null) { var weapon = creature.Weapon; target.Weapon = weapon; } if (creature.Armor != null) { var armor = creature.Armor; target.Armor = armor; } target.MagicBook = new List <Spell>(); target.Items = new List <CreatureItem>(); foreach (var spell in creature.MagicBook) { target.MagicBook.Add(new Spell { Name = spell.Name, Type = spell.Type, Level = spell.Level, ManaCost = spell.ManaCost, ActionCost = spell.ActionCost, Strength = spell.Strength }); } foreach (var item in creature.Items) { target.Items.Add(new CreatureItem { CreatureId = item.CreatureId, ItemId = item.ItemId, Qty = item.Qty, Creature = item.Creature, Item = item.Item }); } await _ctx.SaveChangesAsync(); CalculateCreature.DerivedStatistics(creature, _ctx); return(true); } // UpdateInventory() updates only creature's inventory
} // UpdateWeapon() updates only creature's weapon public async Task <bool> UpdateArmor(Creature creature) { Creature target = _ctx.Creatures.Find(creature.Id); if (target == null) { return(false); } var armor = creature.Armor; if (target.Armor == null) { target.Armor = armor; } await _ctx.SaveChangesAsync(); CalculateCreature.DerivedStatistics(creature, _ctx); return(true); } // UpdateArmor() updates only creature's armor
public async Task <bool> Create(Creature creature) { Creature target = new Creature { Name = creature.Name, Type = creature.Type, Level = creature.Level, Experience = creature.Experience, Alive = true, Strength = creature.Strength, Endurance = creature.Endurance, Willpower = creature.Willpower, Speed = creature.Speed, Agility = creature.Agility, MagicBook = new List <Spell>(), Items = new List <CreatureItem>() }; if (creature.Weapon != null) { target.Weapon = new Weapon { Name = creature.Weapon.Name, BaseDamage = creature.Weapon.BaseDamage, MagicDamage = creature.Weapon.MagicDamage, ActionCost = creature.Weapon.ActionCost, HitChance = creature.Weapon.HitChance }; } if (creature.Armor != null) { target.Armor = new Armor { Name = creature.Armor.Name, DamageResistance = creature.Armor.DamageResistance, MagicResistance = creature.Armor.MagicResistance }; } if (creature.MagicBook != null) { foreach (var spell in creature.MagicBook) { target.MagicBook.Add(new Spell { Name = spell.Name, Type = spell.Type, Level = spell.Level, ManaCost = spell.ManaCost, ActionCost = spell.ActionCost, Strength = spell.Strength }); } } if (creature.Items != null) { foreach (var item in creature.Items) { target.Items.Add(new CreatureItem { CreatureId = item.CreatureId, ItemId = item.ItemId, Qty = item.Qty, Creature = item.Creature, Item = item.Item }); } } _ctx.Creatures.Add(target); await _ctx.SaveChangesAsync(); CalculateCreature.DerivedStatistics(target, _ctx); return(true); } // Create()
public async Task <bool> UpdateFull(Creature creature) { Creature target = _ctx.Creatures.Find(creature.Id); if (target == null) { return(false); } target.Name = creature.Name; target.Type = creature.Type; target.Level = creature.Level; target.Experience = creature.Experience; target.Strength = creature.Strength; target.Endurance = creature.Endurance; target.Willpower = creature.Willpower; target.Speed = creature.Speed; target.Agility = creature.Agility; target.Weapon.Name = creature.Weapon.Name; target.Weapon.BaseDamage = creature.Weapon.BaseDamage; target.Weapon.MagicDamage = creature.Weapon.MagicDamage; target.Weapon.ActionCost = creature.Weapon.ActionCost; target.Weapon.HitChance = creature.Weapon.HitChance; target.Armor.Name = creature.Armor.Name; target.Armor.DamageResistance = creature.Armor.DamageResistance; target.Armor.MagicResistance = creature.Armor.MagicResistance; target.MagicBook = new List <Spell>(); target.Items = new List <CreatureItem>(); foreach (var spell in creature.MagicBook) { target.MagicBook.Add(new Spell { Name = spell.Name, Type = spell.Type, Level = spell.Level, ManaCost = spell.ManaCost, ActionCost = spell.ActionCost, Strength = spell.Strength }); } foreach (var item in creature.Items) { target.Items.Add(new CreatureItem { CreatureId = item.CreatureId, ItemId = item.ItemId, Qty = item.Qty, Creature = item.Creature, Item = item.Item }); } await _ctx.SaveChangesAsync(); CalculateCreature.DerivedStatistics(creature, _ctx); return(true); } // UpdateFull() updates creature's parameters and inventory