Beispiel #1
0
    public override void Load(XmlNode xnode)
    {
        type = LocalType.Get(xnode.Name);

        texture = new Texture();
        name = MyXml.GetString(xnode, "name");
        variations = MyXml.GetInt(xnode, "variations", 1);
        maxHP = MyXml.GetInt(xnode, "hp");
        damage = MyXml.GetInt(xnode, "damage");
        attack = MyXml.GetInt(xnode, "attack");
        defence = MyXml.GetInt(xnode, "defence");
        armor = MyXml.GetInt(xnode, "armor");
        movementTime = MyXml.GetFloat(xnode, "movementTime");
        attackTime = MyXml.GetFloat(xnode, "attackTime");
        isWalkable = MyXml.GetBool(xnode, "walkable");
        isFlat = MyXml.GetBool(xnode, "flat");

        if (xnode.Name == "Thing") isWalkable = true;

        string s = MyXml.GetString(xnode, "type");
        if (s != "") creatureType = CreatureType.Get(s);

        s = MyXml.GetString(xnode, "corpse");
        if (creatureType != null && (creatureType.name == "Animal" || creatureType.name == "Sentient")) s = "Blood";
        if (s != "") corpse = Get(s);

        s = MyXml.GetString(xnode, "onDeath");
        if (creatureType != null && creatureType.name == "Animal") s = "Large Chunk of Meat";
        if (s != "") onDeath = ItemShape.Get(s);

        for (xnode = xnode.FirstChild; xnode != null; xnode = xnode.NextSibling)
            abilities.Add(BigBase.Instance.abilities.Get(MyXml.GetString(xnode, "name")));
    }
 public CreatureContainer(CreatureType type, bool forwardOnSpecial, ContentRef<Material> combatSprite, params NameOfAbility[] abilities)
 {
     this.CombatSprite = combatSprite;
     this.forwardOnSpecial = forwardOnSpecial;
     this.CreatureType = type;
     this.AbilityNameStorage = new List<NameOfAbility>(abilities);
 }
Beispiel #3
0
 public CreatureGroup(CreatureType type, GameWorld gameWorld)
 {
     this.gameWorld = gameWorld;
     this.type = type;
     this.id = next_id;
     next_id++;
 }
Beispiel #4
0
 public Hero(string name, CreatureType creatureType, int x, int y, int minX, int maxX, int minY, int maxY)
     : this(name, creatureType, x, y)
 {
     this.MinWidth = minX;
     this.MaxWidth = maxX;
     this.MinHeight = minY;
     this.MaxHeight = maxY;
 }
 internal EnumCreatureType(CreatureType type, int maxNumberOfCreatures, Material material, bool isPeaceful, bool isAnimal)
 {
     this.Enum = type;
     this.MaxNumberOfCreatures = maxNumberOfCreatures;
     this.Material = material;
     this.IsPeaceful = isPeaceful;
     this.IsAnimal = isAnimal;
 }
Beispiel #6
0
		/// <summary>
		/// Damage bonus vs creature type in %
		/// </summary>
		public void ModDmgBonusVsCreatureTypePct(CreatureType type, int delta)
		{
			if (m_dmgBonusVsCreatureTypePct == null)
			{
				m_dmgBonusVsCreatureTypePct = new int[(int)CreatureType.End];
			}
			var val = m_dmgBonusVsCreatureTypePct[(int)type] + delta;
			m_dmgBonusVsCreatureTypePct[(int)type] = val;
		}
Beispiel #7
0
 public static Creature Create(CreatureType type)
 {
     Creature creature = null;
     switch (type) {
         case CreatureType.Zombie:
             return new Enemy.Zombie();
     }
     return creature;
 }
 public CreatureInfo(Dump.SQL.Custom.creature_template creature_template)
 {
     Entry = creature_template.entry.GetValueOrDefault();
     Name = creature_template.name;
     SubName = creature_template.subname;
     IconName = creature_template.iconname;
     TypeFlags = (CreatureTypeFlags)creature_template.flags_extra.GetValueOrDefault();
     Type = (CreatureType)creature_template.type.GetValueOrDefault();
     Family = (CreatureFamily)creature_template.family.GetValueOrDefault();
     Rank = (CreatureRank)creature_template.rank.GetValueOrDefault();
 }
Beispiel #9
0
        /*
         * Petar Nikov [note]: I think that this need to be moved inside Hero and Enemy classes
         * so in time of creation of Hero or Enemy to set their shape and/or position
         *
         * and this is begging for attribute :-)
        */
        //creature shape "*", positon of creature initialization
        //private const char cratureShape = '*';
        //private static int startPosRow = 11;
        //private static int startPosCol = 58;
        //public int CurrPosRow { get; private set; }
        //public int CurrPosCol { get; private set; }
        public Creature(string name, CreatureType creatureType)
        {
            this.Name = name;
            this.CreatureType = creatureType;

            CurrentExperience = InitialExperience;
            creatureInventory = new List<Items>();

            //this.CurrPosRow = startPosRow;
            //this.CurrPosCol = startPosCol;
        }
        public string GetCommand(int entry, string name, string subName, string iconName,
            CreatureTypeFlag typeFlags, CreatureType type, CreatureFamily family, CreatureRank rank,
            int[] killCredit, int[] dispId, float mod1, float mod2, bool racialLeader, int[] qItem,
            int moveId)
        {
            var builder = new CommandBuilder("creature_template");

            builder.AddColumnValue("entry", entry);

            for (var i = 0; i < 3; i++)
                builder.AddColumnValue("difficulty_entry_" + (i + 1), 0);

            for (var i = 0; i < 2; i++)
                builder.AddColumnValue("KillCredit" + (i + 1), killCredit[i]);

            if (Store.Format == SqlFormat.Trinity)
            {
                for (var i = 0; i < 4; i++)
                    builder.AddColumnValue("modelid" + (i + 1), dispId[i]);
            }
            else
            {
                builder.AddColumnValue("modelid_1", dispId[0]);
                builder.AddColumnValue("modelid_2", dispId[1]);
                builder.AddColumnValue("modelid_3", dispId[2]);
                builder.AddColumnValue("modelid_4", dispId[3]);
            }

            builder.AddColumnValue("name", name);
            builder.AddColumnValue("subname", subName);
            builder.AddColumnValue("IconName", iconName);
            builder.AddColumnValue("gossip_menu_id", 0);
            builder.AddColumnValue("minlevel", 1);
            builder.AddColumnValue("maxlevel", 1);

            if (Store.Format != SqlFormat.Trinity)
            {
                builder.AddColumnValue("minhealth", 0);
                builder.AddColumnValue("maxhealth", 0);
                builder.AddColumnValue("minmana", 0);
                builder.AddColumnValue("maxmana", 0);
                builder.AddColumnValue("armor", 0);
            }
            else
                builder.AddColumnValue("exp", 0);

            builder.AddColumnValue("faction_A", 35);
            builder.AddColumnValue("faction_H", 35);
            builder.AddColumnValue("npcflag", 0);
            builder.AddColumnValue("speed_walk", 1.0f);
            builder.AddColumnValue("speed_run", 1.14286f);
            builder.AddColumnValue("scale", 0.0f);
            builder.AddColumnValue("rank", (int)rank);
            builder.AddColumnValue("mindmg", 0);
            builder.AddColumnValue("maxdmg", 0);
            builder.AddColumnValue("dmgschool", 0);
            builder.AddColumnValue("attackpower", 0);
            builder.AddColumnValue("dmg_multiplier", 1.0f);
            builder.AddColumnValue("baseattacktime", 0);
            builder.AddColumnValue("rangeattacktime", 0);
            builder.AddColumnValue("unit_class", 1);
            builder.AddColumnValue("unit_flags", 0);
            builder.AddColumnValue("dynamicflags", 0);
            builder.AddColumnValue("family", (int)family);
            builder.AddColumnValue("trainer_type", 0);
            builder.AddColumnValue("trainer_spell", 0);
            builder.AddColumnValue("trainer_class", 0);
            builder.AddColumnValue("trainer_race", 0);
            builder.AddColumnValue("minrangedmg", 0.0f);
            builder.AddColumnValue("maxrangedmg", 0.0f);
            builder.AddColumnValue("rangedattackpower", 0);
            builder.AddColumnValue("type", (int)type);
            builder.AddColumnValue("type_flags", (int)typeFlags);
            builder.AddColumnValue("lootid", 0);
            builder.AddColumnValue("pickpocketloot", 0);
            builder.AddColumnValue("skinloot", 0);

            for (var i = 0; i < 6; i++)
                builder.AddColumnValue("resistance" + (i + 1), 0);

            var spellI = 4;
            if (Store.Format == SqlFormat.Trinity)
                spellI = 8;

            for (var i = 0; i < spellI; i++)
                builder.AddColumnValue("spell" + (i + 1), 0);

            builder.AddColumnValue("PetSpellDataId", 0);

            if (Store.Format == SqlFormat.Trinity)
                builder.AddColumnValue("VehicleId", 0);

            builder.AddColumnValue("mingold", 0);
            builder.AddColumnValue("maxgold", 0);
            builder.AddColumnValue("AIName", string.Empty);
            builder.AddColumnValue("MovementType", 0);
            builder.AddColumnValue("InhabitType", 0);

            if (Store.Format == SqlFormat.Trinity)
            {
                builder.AddColumnValue("Health_mod", mod1);
                builder.AddColumnValue("Mana_mod", mod2);
                builder.AddColumnValue("Armor_mod", 1);
            }
            else
            {
                builder.AddColumnValue("unk16", mod1);
                builder.AddColumnValue("unk17", mod2);
            }

            builder.AddColumnValue("RacialLeader", racialLeader.ToByte());

            for (var i = 0; i < 6; i++)
                builder.AddColumnValue("questItem" + (i + 1), qItem[0]);

            builder.AddColumnValue("movementId", moveId);
            builder.AddColumnValue("RegenHealth", 1);
            builder.AddColumnValue("equipment_id", 0);
            builder.AddColumnValue("mechanic_immune_mask", 0);
            builder.AddColumnValue("flags_extra", 0);
            builder.AddColumnValue("ScriptName", string.Empty);

            return builder.BuildInsert(true);
        }
Beispiel #11
0
 public Hero(string name, CreatureType creatureType, int x = 0, int y = 0)
     : base(name, creatureType, x, y)
 {
 }
 public CreatureContainer(CreatureType type, bool forwardOnSpecial, params NameOfAbility[] abilities)
     : this(type, forwardOnSpecial, null, abilities)
 {
 }
 public CreatureContainer(CreatureType type, params NameOfAbility[] abilities)
     : this(type, false, abilities)
 {
 }
Beispiel #14
0
 public Enemy(string name, CreatureType creatureType)
     : base(name, creatureType)
 {
 }
Beispiel #15
0
 public Hero(string name, CreatureType creatureType)
     : base(name, creatureType)
 {
 }
Beispiel #16
0
 public Creature(string name, CreatureType creatureType, int x, int y)
     : this(name, creatureType)
 {
     this.X = x;
     this.Y = y;
 }
 //private void TestComplexRole(IRole iRole, RoleType roleType, RoleFlag rf, bool isLeader)
 //{
 //    ComplexRole cr = iRole as ComplexRole;
 //    Assert.IsNotNull(cr);
 //    Assert.AreEqual(isLeader, cr.Leader);
 //    Assert.AreEqual(roleType, cr.Type);
 //    Assert.AreEqual(rf, cr.Flag);
 //}
 //private static void TestMinion(Creature c, bool HasRole, RoleType? roleType)
 //{
 //    Minion cr = (Minion)c.Role;
 //    Assert.AreEqual(HasRole, cr.HasRole);
 //    if (roleType != null)
 //    {
 //        Assert.IsTrue(cr.HasRole);
 //        Assert.AreEqual(roleType, cr.Type);
 //    }
 //    else
 //    {
 //        Assert.IsFalse(cr.HasRole);
 //    }
 //}
 private void TestSizeOriginType(Creature c, CreatureSize creatureSize, CreatureOrigin creatureOrigin, CreatureType creatureType, int level, string keyword)
 {
     Assert.AreEqual(creatureSize, c.Size);
     Assert.AreEqual(creatureOrigin, c.Origin);
     Assert.AreEqual(creatureType, c.Type);
     Assert.AreEqual(level, c.Level);
     Assert.AreEqual(CleanForCompare(keyword), CleanForCompare(c.Keywords));
 }