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); }
public CreatureGroup(CreatureType type, GameWorld gameWorld) { this.gameWorld = gameWorld; this.type = type; this.id = next_id; next_id++; }
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; }
/// <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; }
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(); }
/* * 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); }
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) { }
public Enemy(string name, CreatureType creatureType) : base(name, creatureType) { }
public Hero(string name, CreatureType creatureType) : base(name, creatureType) { }
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)); }