コード例 #1
0
ファイル: EditCreature.cs プロジェクト: Mlorism/LastTemple
        }         // 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
コード例 #2
0
ファイル: EditCreature.cs プロジェクト: Mlorism/LastTemple
        }         // 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
コード例 #3
0
ファイル: EditCreature.cs プロジェクト: Mlorism/LastTemple
        }         // 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
コード例 #4
0
        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()
コード例 #5
0
ファイル: EditCreature.cs プロジェクト: Mlorism/LastTemple
        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